mirror of
https://github.com/tencentmusic/supersonic.git
synced 2026-04-30 13:04:27 +08:00
Compare commits
4 Commits
master
...
0569b1f100
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0569b1f100 | ||
|
|
f764236657 | ||
|
|
b1dadb4a1a | ||
|
|
158a0a802a |
@@ -78,7 +78,8 @@ public abstract class SemanticNode {
|
|||||||
scope.getValidator().getCatalogReader().getRootSchema(), engineType);
|
scope.getValidator().getCatalogReader().getRootSchema(), engineType);
|
||||||
if (Configuration.getSqlAdvisor(sqlValidatorWithHints, engineType).getReservedAndKeyWords()
|
if (Configuration.getSqlAdvisor(sqlValidatorWithHints, engineType).getReservedAndKeyWords()
|
||||||
.contains(expression.toUpperCase())) {
|
.contains(expression.toUpperCase())) {
|
||||||
if (engineType == EngineType.HANADB || engineType == EngineType.PRESTO || engineType == EngineType.TRINO) {
|
if (engineType == EngineType.HANADB || engineType == EngineType.PRESTO
|
||||||
|
|| engineType == EngineType.TRINO) {
|
||||||
expression = String.format("\"%s\"", expression);
|
expression = String.format("\"%s\"", expression);
|
||||||
} else {
|
} else {
|
||||||
expression = String.format("`%s`", expression);
|
expression = String.format("`%s`", expression);
|
||||||
@@ -166,9 +167,9 @@ public abstract class SemanticNode {
|
|||||||
if (sqlNode instanceof SqlBasicCall) {
|
if (sqlNode instanceof SqlBasicCall) {
|
||||||
SqlBasicCall sqlBasicCall = (SqlBasicCall) sqlNode;
|
SqlBasicCall sqlBasicCall = (SqlBasicCall) sqlNode;
|
||||||
if (sqlBasicCall.getOperator().getKind().equals(SqlKind.AS)) {
|
if (sqlBasicCall.getOperator().getKind().equals(SqlKind.AS)) {
|
||||||
if (sqlBasicCall.getOperandList().get(0) instanceof SqlSelect) {
|
SqlNode innerQuery = sqlBasicCall.getOperandList().get(0);
|
||||||
SqlSelect table = (SqlSelect) sqlBasicCall.getOperandList().get(0);
|
if (innerQuery instanceof SqlCall) {
|
||||||
return table;
|
return innerQuery;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -69,7 +69,13 @@ public class SqlBuilder {
|
|||||||
SqlNode parserNode = tableView.build();
|
SqlNode parserNode = tableView.build();
|
||||||
DatabaseResp database = queryStatement.getOntology().getDatabase();
|
DatabaseResp database = queryStatement.getOntology().getDatabase();
|
||||||
EngineType engineType = EngineType.fromString(database.getType());
|
EngineType engineType = EngineType.fromString(database.getType());
|
||||||
|
try {
|
||||||
parserNode = optimizeParseNode(parserNode, engineType);
|
parserNode = optimizeParseNode(parserNode, engineType);
|
||||||
|
} catch (Exception e) {
|
||||||
|
// failure in optimization phase doesn't affect the query result,
|
||||||
|
// just ignore it
|
||||||
|
log.error("optimizeParseNode error", e);
|
||||||
|
}
|
||||||
return SemanticNode.getSql(parserNode, engineType);
|
return SemanticNode.getSql(parserNode, engineType);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
2
pom.xml
2
pom.xml
@@ -37,7 +37,7 @@
|
|||||||
<pagehelper.spring.version>2.1.0</pagehelper.spring.version>
|
<pagehelper.spring.version>2.1.0</pagehelper.spring.version>
|
||||||
<mybatis.version>3.5.3</mybatis.version>
|
<mybatis.version>3.5.3</mybatis.version>
|
||||||
<guava.version>32.0.0-jre</guava.version>
|
<guava.version>32.0.0-jre</guava.version>
|
||||||
<hanlp.version>portable-1.8.3</hanlp.version>
|
<hanlp.version>portable-1.8.4</hanlp.version>
|
||||||
<hadoop.version>2.7.2</hadoop.version>
|
<hadoop.version>2.7.2</hadoop.version>
|
||||||
<commons.lang.version>2.6</commons.lang.version>
|
<commons.lang.version>2.6</commons.lang.version>
|
||||||
<commons.lang3.version>3.7</commons.lang3.version>
|
<commons.lang3.version>3.7</commons.lang3.version>
|
||||||
|
|||||||
Reference in New Issue
Block a user