improved sql parser ads support.

This commit is contained in:
wenshao
2018-02-04 13:36:44 +08:00
parent 8c3783310c
commit 9ff64e48ed
3 changed files with 138 additions and 1 deletions
@@ -172,7 +172,21 @@ public class MySqlCreateTableParser extends SQLCreateTableParser {
stmt.getTableElementList().add(idx);
} else if (lexer.token() == (Token.KEY)) {
stmt.getTableElementList().add(parseConstraint());
Lexer.SavePoint savePoint = lexer.mark();
lexer.nextToken();
boolean isColumn = false;
if (lexer.identifierEquals(FnvHash.Constants.VARCHAR)) {
isColumn = true;
}
lexer.reset(savePoint);
if (isColumn) {
column = this.exprParser.parseColumn();
stmt.getTableElementList().add(column);
} else {
stmt.getTableElementList().add(parseConstraint());
}
} else if (lexer.token() == (Token.PRIMARY)) {
SQLTableConstraint pk = parseConstraint();
pk.setParent(stmt);
@@ -1333,6 +1333,7 @@ public class SQLExprParser extends SQLParser {
case SCHEMA:
case INTERVAL:
case EXPLAIN:
case PARTITION:
case SET:
identName = lexer.stringVal();
lexer.nextToken();