Skip to content

Commit cf165de

Browse files
committed
优化适配 适配gaussdb #5845
优化适配 适配gaussdb #5845
1 parent c0f62d2 commit cf165de

File tree

3 files changed

+57
-0
lines changed

3 files changed

+57
-0
lines changed

core/src/main/java/com/alibaba/druid/sql/parser/SQLParserUtils.java

+3
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,8 @@ public static SQLStatementParser createSQLStatementParser(String sql, DbType dbT
118118
case mysql:
119119
case tidb:
120120
case mariadb:
121+
case goldendb:
122+
case oceanbase:
121123
case drds: {
122124
return new MySqlStatementParser(sql, features);
123125
}
@@ -130,6 +132,7 @@ public static SQLStatementParser createSQLStatementParser(String sql, DbType dbT
130132
case postgresql:
131133
case greenplum:
132134
case edb:
135+
case gaussdb:
133136
return new PGSQLStatementParser(sql, features);
134137
case sqlserver:
135138
case jtds:

core/src/main/java/com/alibaba/druid/sql/visitor/ParameterizedOutputVisitorUtils.java

+4
Original file line numberDiff line numberDiff line change
@@ -409,13 +409,17 @@ public static ParameterizedVisitor createParameterizedOutputVisitor(StringBuilde
409409
case mysql:
410410
case tidb:
411411
case mariadb:
412+
case goldendb:
413+
case oceanbase:
414+
case drds:
412415
case elastic_search:
413416
return new MySqlOutputVisitor(out, true);
414417
case h2:
415418
return new H2OutputVisitor(out, true);
416419
case postgresql:
417420
case greenplum:
418421
case edb:
422+
case gaussdb:
419423
return new PGOutputVisitor(out, true);
420424
case sqlserver:
421425
case jtds:
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
package com.alibaba.druid.bvt.bug;
2+
3+
import java.util.ArrayList;
4+
import java.util.List;
5+
6+
import com.alibaba.druid.DbType;
7+
import com.alibaba.druid.sql.visitor.ParameterizedOutputVisitorUtils;
8+
9+
import junit.framework.TestCase;
10+
11+
/**
12+
*
13+
*/
14+
public class Issue5845 extends TestCase {
15+
16+
public void test_for_issue() throws Exception {
17+
String sql = "delete from table01 t where t.id=1";
18+
List<DbType> dbTypes = new ArrayList<>();
19+
for (DbType dbType : DbType.values()) {
20+
try {
21+
String mergeSql = ParameterizedOutputVisitorUtils.parameterize(sql, dbType);
22+
System.out.println(dbType + "==" + mergeSql);
23+
dbTypes.add(dbType);
24+
} catch (Exception e) {
25+
System.out.println(dbType + "==" + e.getMessage());
26+
}
27+
}
28+
for (DbType dbT : dbTypes) {
29+
System.out.println("DbType." + dbT + ",");
30+
}
31+
for (DbType dbType : new DbType[]{DbType.db2,
32+
DbType.postgresql,
33+
DbType.oracle,
34+
DbType.mysql,
35+
DbType.mariadb,
36+
DbType.oceanbase,
37+
DbType.edb,
38+
DbType.elastic_search,
39+
DbType.drds,
40+
DbType.oceanbase_oracle,
41+
DbType.greenplum,
42+
DbType.gaussdb,
43+
DbType.tidb,
44+
DbType.goldendb,}) {
45+
String mergeSql = ParameterizedOutputVisitorUtils.parameterize(sql, dbType);
46+
System.out.println(dbType + "==" + mergeSql);
47+
dbTypes.add(dbType);
48+
}
49+
}
50+
}

0 commit comments

Comments
 (0)