improved sql parser. for issue #1919

This commit is contained in:
wenshao
2017-08-19 21:20:32 +08:00
parent b4479d515c
commit 75526cb351
16 changed files with 369 additions and 3 deletions
@@ -1853,9 +1853,21 @@ public class SQLStatementParser extends SQLParser {
lexer.reset(markBp, markChar, Token.CREATE);
return parseCreateDatabase();
} else if (identifierEquals("PUBLIC") || identifierEquals("SHARE")) {
} else if (identifierEquals("PUBLIC")) {
lexer.nextToken();
if (identifierEquals("SYNONYM")) {
lexer.reset(markBp, markChar, Token.CREATE);
return parseCreateSynonym();
} else {
lexer.reset(markBp, markChar, Token.CREATE);
return parseCreateDbLink();
}
} else if (identifierEquals("SHARE")) {
lexer.reset(markBp, markChar, Token.CREATE);
return parseCreateDbLink();
} else if (identifierEquals("SYNONYM")) {
lexer.reset(markBp, markChar, Token.CREATE);
return parseCreateSynonym();
} else if (token == Token.VIEW) {
return parseCreateView();
} else if (token == Token.TRIGGER) {
@@ -1963,6 +1975,10 @@ public class SQLStatementParser extends SQLParser {
throw new ParserException("TODO " + lexer.token());
}
public SQLStatement parseCreateSynonym() {
throw new ParserException("TODO " + lexer.token());
}
public SQLStatement parseCreateTrigger() {
accept(Token.CREATE);