Skip to content

Commit 8fdc68b

Browse files
authored
Add supersql dbtype. (#6307)
* Add supersql dbtype. * Lint.
1 parent 2b3a3c8 commit 8fdc68b

File tree

10 files changed

+14
-4
lines changed

10 files changed

+14
-4
lines changed

core/src/main/java/com/alibaba/druid/DbType.java

+1
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@ public enum DbType {
8989
athena(1L << 52),
9090

9191
polardbx(1L << 53),
92+
supersql(1L << 54),
9293

9394
ingres(0),
9495
cloudscape(0),

core/src/main/java/com/alibaba/druid/sql/PagerUtils.java

+1
Original file line numberDiff line numberDiff line change
@@ -169,6 +169,7 @@ private static boolean limitQueryBlock(SQLSelect select, DbType dbType, int offs
169169
case hive:
170170
case odps:
171171
case presto:
172+
case supersql:
172173
return limitSQLQueryBlock(queryBlock, dbType, offset, count, check);
173174
case oracle:
174175
case oceanbase_oracle:

core/src/main/java/com/alibaba/druid/sql/SQLUtils.java

+1
Original file line numberDiff line numberDiff line change
@@ -568,6 +568,7 @@ public static SQLASTOutputVisitor createFormatOutputVisitor(
568568
return new SparkOutputVisitor(out);
569569
case presto:
570570
case trino:
571+
case supersql:
571572
return new PrestoOutputVisitor(out);
572573
case athena:
573574
return new AthenaOutputVisitor(out);

core/src/main/java/com/alibaba/druid/sql/ast/expr/SQLExprUtils.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ public static String quote(String str, DbType dbType, char quote) {
132132
if (quote == '`') {
133133
expr = new SQLIdentifierExpr(str);
134134
} else if (quote == '"') {
135-
if (dbType == DbType.oracle || dbType == DbType.presto || dbType == DbType.trino) {
135+
if (dbType == DbType.oracle || dbType == DbType.presto || dbType == DbType.trino || dbType == DbType.supersql) {
136136
expr = new SQLIdentifierExpr(str);
137137
} else {
138138
expr = new SQLCharExpr(str);

core/src/main/java/com/alibaba/druid/sql/ast/expr/SQLTimeExpr.java

+1
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,7 @@ public List<SQLObject> getChildren() {
147147
DbType.oracle,
148148
DbType.presto,
149149
DbType.trino,
150+
DbType.supersql,
150151
DbType.postgresql,
151152
DbType.mariadb,
152153
DbType.tidb,

core/src/main/java/com/alibaba/druid/sql/builder/SQLFunctionBuilder.java

+1
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ public SQLMethodInvokeExpr ifnull(SQLExpr expr1, SQLExpr expr2) {
6464
case presto:
6565
case trino:
6666
case odps:
67+
case supersql:
6768
return new SQLMethodInvokeExpr("coalesce", null, expr1, expr2);
6869
case oracle:
6970
return new SQLMethodInvokeExpr("nvl", null, expr1, expr2);

core/src/main/java/com/alibaba/druid/sql/dialect/mysql/parser/MySqlStatementParser.java

+1
Original file line numberDiff line numberDiff line change
@@ -2417,6 +2417,7 @@ private MySqlExplainStatement parseExplain(MySqlExplainStatement explain) {
24172417
switch (dbType) {
24182418
case mysql:
24192419
case ads:
2420+
case supersql:
24202421
case presto:
24212422
case trino:
24222423
Lexer.SavePoint mark = lexer.mark();

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

+3
Original file line numberDiff line numberDiff line change
@@ -187,6 +187,7 @@ public static SQLStatementParser createSQLStatementParser(String sql, DbType dbT
187187
return new HiveStatementParser(sql, features);
188188
case presto:
189189
case trino:
190+
case supersql:
190191
return new PrestoStatementParser(sql, features);
191192
case athena:
192193
return new AthenaStatementParser(sql, features);
@@ -255,6 +256,7 @@ public static SQLExprParser createExprParser(String sql, DbType dbType, SQLParse
255256
return new PhoenixExprParser(sql, features);
256257
case presto:
257258
case trino:
259+
case supersql:
258260
return new PrestoExprParser(sql, features);
259261
case athena:
260262
return new AthenaExprParser(sql, features);
@@ -322,6 +324,7 @@ public static Lexer createLexer(String sql, DbType dbType, SQLParserFeature... f
322324
return new PhoenixLexer(sql, features);
323325
case presto:
324326
case trino:
327+
case supersql:
325328
return new PrestoLexer(sql, features);
326329
case athena:
327330
return new AthenaLexer(sql, features);

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

+3-3
Original file line numberDiff line numberDiff line change
@@ -5361,7 +5361,7 @@ public boolean visit(SQLCreateDatabaseStatement x) {
53615361
|| dbType == DbType.mariadb) {
53625362
println();
53635363
print0(ucase ? "WITH (" : "with (");
5364-
} else if (dbType == DbType.hive || dbType == DbType.presto || dbType == DbType.trino) {
5364+
} else if (dbType == DbType.hive || dbType == DbType.presto || dbType == DbType.trino || dbType == DbType.supersql) {
53655365
println();
53665366
print0(ucase ? "WITH DBPROPERTIES (" : "with dbproperties (");
53675367
} else {
@@ -7581,7 +7581,7 @@ public boolean visit(SQLArrayExpr x) {
75817581
} else if (expr != null) {
75827582
expr.accept(this);
75837583
} else {
7584-
boolean trino = dbType == DbType.trino || dbType == DbType.presto;
7584+
boolean trino = dbType == DbType.trino || dbType == DbType.presto || dbType == DbType.supersql;
75857585
if (trino) {
75867586
print0(ucase ? "ARRAY" : "array");
75877587
}
@@ -9538,7 +9538,7 @@ public boolean visit(SQLIntervalExpr x) {
95389538
print0(ucase ? "INTERVAL " : "interval ");
95399539
SQLExpr value = x.getValue();
95409540

9541-
boolean quote = (dbType == DbType.presto || dbType == DbType.trino)
9541+
boolean quote = (dbType == DbType.presto || dbType == DbType.trino || dbType == DbType.supersql)
95429542
&& !(value instanceof SQLTextLiteralExpr);
95439543
if (quote) {
95449544
print('\'');

core/src/main/java/com/alibaba/druid/wall/WallFilter.java

+1
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,7 @@ static WallProvider initWallProviderInternal(DataSourceProxy dataSource, String
137137
case lealone:
138138
case presto:
139139
case trino:
140+
case supersql:
140141
case polardbx:
141142
if (config == null) {
142143
config = new WallConfig(MySqlWallProvider.DEFAULT_CONFIG_DIR);

0 commit comments

Comments
 (0)