16
16
* limitations under the License.
17
17
*/
18
18
19
-
20
-
21
19
package com .dtstack .flink .sql .parser ;
22
20
23
21
import com .dtstack .flink .sql .util .DtStringUtil ;
@@ -41,8 +39,6 @@ public class CreateTableParser implements IParser {
41
39
42
40
private static final Pattern PATTERN = Pattern .compile (PATTERN_STR );
43
41
44
- private static final Pattern PROP_PATTERN = Pattern .compile ("^'\\ s*(.+)\\ s*'$" );
45
-
46
42
public static CreateTableParser newInstance (){
47
43
return new CreateTableParser ();
48
44
}
@@ -70,28 +66,19 @@ public void parseSql(String sql, SqlTree sqlTree) {
70
66
}
71
67
}
72
68
73
- private Map parseProp (String propsStr ){
74
- propsStr = propsStr .replaceAll ("'\\ s*," , "'|" );
75
- String [] strs = propsStr .trim ().split ("\\ |" );
69
+ private Map <String , Object > parseProp (String propsStr ){
70
+ List <String > strings = DtStringUtil .splitIgnoreQuota (propsStr .trim (), ',' );
76
71
Map <String , Object > propMap = Maps .newHashMap ();
77
- for (String str : strs ) {
72
+ for (String str : strings ) {
78
73
List <String > ss = DtStringUtil .splitIgnoreQuota (str , '=' );
79
74
String key = ss .get (0 ).trim ();
80
- String value = extractValue ( ss .get (1 ).trim ());
75
+ String value = ss .get (1 ).trim (). replaceAll ( "'" , "" ). trim ( );
81
76
propMap .put (key , value );
82
77
}
83
78
84
79
return propMap ;
85
80
}
86
81
87
- private String extractValue (String value ) {
88
- Matcher matcher = PROP_PATTERN .matcher (value );
89
- if (matcher .find ()) {
90
- return matcher .group (1 );
91
- }
92
- throw new RuntimeException ("[" + value + "] format is invalid" );
93
- }
94
-
95
82
public static class SqlParserResult {
96
83
97
84
private String tableName ;
0 commit comments