Skip to content

Commit b59af8e

Browse files
committed
Merge branch 'v1.5.0_dev' into 'v1.8.0_dev'
V1.5.0 dev See merge request !100
2 parents 7c3d531 + 758d2e7 commit b59af8e

File tree

1 file changed

+10
-9
lines changed

1 file changed

+10
-9
lines changed

core/src/main/java/com/dtstack/flink/sql/util/DtStringUtil.java

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,13 @@ public static List<String> splitIgnoreQuota(String str, char delimiter){
5959
boolean inSingleQuotes = false;
6060
int bracketLeftNum = 0;
6161
StringBuilder b = new StringBuilder();
62-
for (char c : str.toCharArray()) {
62+
char[] chars = str.toCharArray();
63+
int idx = 0;
64+
for (char c : chars) {
65+
char flag = 0;
66+
if (idx > 0) {
67+
flag = chars[idx - 1];
68+
}
6369
if(c == delimiter){
6470
if (inQuotes) {
6571
b.append(c);
@@ -71,21 +77,16 @@ public static List<String> splitIgnoreQuota(String str, char delimiter){
7177
tokensList.add(b.toString());
7278
b = new StringBuilder();
7379
}
74-
}else if(c == '\"'){
80+
}else if(c == '\"' && '\\'!=flag && !inSingleQuotes){
7581
inQuotes = !inQuotes;
7682
b.append(c);
77-
}else if(c == '\''){
83+
}else if(c == '\'' && '\\'!=flag && !inQuotes){
7884
inSingleQuotes = !inSingleQuotes;
7985
b.append(c);
80-
}else if(c == '('){
81-
bracketLeftNum++;
82-
b.append(c);
83-
}else if(c == ')'){
84-
bracketLeftNum--;
85-
b.append(c);
8686
}else{
8787
b.append(c);
8888
}
89+
idx++;
8990
}
9091

9192
tokensList.add(b.toString());

0 commit comments

Comments
 (0)