File tree Expand file tree Collapse file tree 7 files changed +41
-1
lines changed
common/src/main/java/com/tencent/supersonic/common
core/src/main/java/com/tencent/supersonic/headless/core/adaptor/db
server/src/main/java/com/tencent/supersonic/headless/server/pojo Expand file tree Collapse file tree 7 files changed +41
-1
lines changed Original file line number Diff line number Diff line change @@ -80,6 +80,9 @@ public static SqlParser.Config getParserConfig(EngineType engineType) {
8080 .setQuoting (Quoting .SINGLE_QUOTE ).setQuotedCasing (Casing .TO_UPPER )
8181 .setUnquotedCasing (Casing .TO_UPPER ).setConformance (sqlDialect .getConformance ())
8282 .setLex (Lex .BIG_QUERY );
83+ if (EngineType .HANADB .equals (engineType )) {
84+ parserConfig = parserConfig .setQuoting (Quoting .DOUBLE_QUOTE );
85+ }
8386 parserConfig = parserConfig .setQuotedCasing (Casing .UNCHANGED );
8487 parserConfig = parserConfig .setUnquotedCasing (Casing .UNCHANGED );
8588 return parserConfig .build ();
Original file line number Diff line number Diff line change @@ -21,6 +21,10 @@ public class SqlDialectFactory {
2121 .withDatabaseProduct (DatabaseProduct .BIG_QUERY ).withLiteralQuoteString ("'" )
2222 .withLiteralEscapedQuoteString ("''" ).withUnquotedCasing (Casing .UNCHANGED )
2323 .withQuotedCasing (Casing .UNCHANGED ).withCaseSensitive (false );
24+ public static final Context HANADB_CONTEXT = SqlDialect .EMPTY_CONTEXT
25+ .withDatabaseProduct (DatabaseProduct .BIG_QUERY ).withLiteralQuoteString ("'" )
26+ .withIdentifierQuoteString ("\" " ).withLiteralEscapedQuoteString ("''" ).withUnquotedCasing (Casing .UNCHANGED )
27+ .withQuotedCasing (Casing .UNCHANGED ).withCaseSensitive (true );
2428 private static Map <EngineType , SemanticSqlDialect > sqlDialectMap ;
2529
2630 static {
@@ -29,6 +33,7 @@ public class SqlDialectFactory {
2933 sqlDialectMap .put (EngineType .MYSQL , new SemanticSqlDialect (DEFAULT_CONTEXT ));
3034 sqlDialectMap .put (EngineType .H2 , new SemanticSqlDialect (DEFAULT_CONTEXT ));
3135 sqlDialectMap .put (EngineType .POSTGRESQL , new SemanticSqlDialect (POSTGRESQL_CONTEXT ));
36+ sqlDialectMap .put (EngineType .HANADB , new SemanticSqlDialect (HANADB_CONTEXT ));
3237 }
3338
3439 public static SemanticSqlDialect getSqlDialect (EngineType engineType ) {
Original file line number Diff line number Diff line change @@ -9,7 +9,8 @@ public enum EngineType {
99 H2 (5 , "h2" ),
1010 POSTGRESQL (6 , "postgresql" ),
1111 OTHER (7 , "other" ),
12- DUCKDB (8 , "duckdb" );
12+ DUCKDB (8 , "duckdb" ),
13+ HANADB (9 , "hanadb" );
1314
1415 private Integer code ;
1516
Original file line number Diff line number Diff line change @@ -17,6 +17,7 @@ public class DbAdaptorFactory {
1717 dbAdaptorMap .put (EngineType .POSTGRESQL .getName (), new PostgresqlAdaptor ());
1818 dbAdaptorMap .put (EngineType .OTHER .getName (), new DefaultDbAdaptor ());
1919 dbAdaptorMap .put (EngineType .DUCKDB .getName (), new DuckdbAdaptor ());
20+ dbAdaptorMap .put (EngineType .HANADB .getName (), new HanadbAdaptor ());
2021 }
2122
2223 public static DbAdaptor getEngineAdaptor (String engineType ) {
Original file line number Diff line number Diff line change 1+ package com .tencent .supersonic .headless .core .adaptor .db ;
2+
3+ import lombok .extern .slf4j .Slf4j ;
4+
5+ @ Slf4j
6+ public class HanadbAdaptor extends DefaultDbAdaptor {
7+
8+ @ Override
9+ public String rewriteSql (String sql ) {
10+ return sql .replaceAll ("`" , "\" " );
11+ }
12+
13+ }
Original file line number Diff line number Diff line change @@ -15,6 +15,7 @@ public class DbParameterFactory {
1515 parametersBuilder .put (EngineType .CLICKHOUSE .getName (), new ClickHouseParametersBuilder ());
1616 parametersBuilder .put (EngineType .MYSQL .getName (), new MysqlParametersBuilder ());
1717 parametersBuilder .put (EngineType .POSTGRESQL .getName (), new PostgresqlParametersBuilder ());
18+ parametersBuilder .put (EngineType .HANADB .getName (), new HanadbParametersBuilder ());
1819 parametersBuilder .put (EngineType .OTHER .getName (), new OtherParametersBuilder ());
1920 }
2021
Original file line number Diff line number Diff line change 1+ package com .tencent .supersonic .headless .server .pojo ;
2+
3+ import lombok .extern .slf4j .Slf4j ;
4+ import org .springframework .stereotype .Service ;
5+
6+ import java .util .List ;
7+
8+ @ Service
9+ @ Slf4j
10+ public class HanadbParametersBuilder extends DefaultParametersBuilder {
11+
12+ @ Override
13+ public List <DatabaseParameter > build () {
14+ return super .build ();
15+ }
16+ }
You can’t perform that action at this time.
0 commit comments