improved oracle parser, fix #4138

This commit is contained in:
高铁
2021-01-27 13:57:33 +08:00
parent 13458aeed8
commit aad886f314
3 changed files with 18 additions and 1 deletions
@@ -620,7 +620,8 @@ public class OracleSelectParser extends SQLSelectParser {
tableSource = new OracleSelectSubqueryTableSource(select());
} else if (lexer.token() == Token.LPAREN) {
tableSource = (OracleSelectTableSource) parseTableSource();
} else if (lexer.token() == Token.IDENTIFIER) {
} else if (lexer.token() == Token.IDENTIFIER
|| lexer.token() == Token.LITERAL_ALIAS) {
SQLTableSource identTable = parseTableSource();
accept(Token.RPAREN);
parsePivot((OracleSelectTableSource) identTable);
@@ -271,7 +271,11 @@ public class OracleOutputVisitor extends SQLASTOutputVisitor implements OracleAS
if (right instanceof SQLJoinTableSource) {
print('(');
incrementIndent();
println();
right.accept(this);
decrementIndent();
println();
print(')');
} else {
right.accept(this);
@@ -0,0 +1,12 @@
SELECT *
FROM "CUSTOM_LABEL" "cl"
LEFT JOIN ( "CUSTOM_LABEL_BAK" "clb"
LEFT JOIN "DATA_SOURCE_INFO" "dsi" ON "clb"."CUSTOM_LABEL_VALUE" = "dsi"."REMARK"
) ON "cl"."ACCURACY_TYPE" = "clb"."CUSTOM_LABEL_NAME"
---------------------------
SELECT *
FROM "CUSTOM_LABEL" "cl"
LEFT JOIN (
"CUSTOM_LABEL_BAK" "clb"
LEFT JOIN "DATA_SOURCE_INFO" "dsi" ON "clb"."CUSTOM_LABEL_VALUE" = "dsi"."REMARK"
) ON "cl"."ACCURACY_TYPE" = "clb"."CUSTOM_LABEL_NAME"