improved mysql sql parser support

This commit is contained in:
高铁
2016-05-05 18:15:44 +08:00
parent 94eef043f5
commit 252c048fbf
5 changed files with 90 additions and 33 deletions
@@ -238,7 +238,7 @@ public class MySqlSelectParser extends SQLSelectParser {
return tableSrc;
}
private MySqlUpdateStatement parseUpdateStatment() {
protected MySqlUpdateStatement parseUpdateStatment() {
MySqlUpdateStatement update = new MySqlUpdateStatement();
lexer.nextToken();
@@ -242,37 +242,7 @@ public class MySqlStatementParser extends SQLStatementParser {
}
public SQLUpdateStatement parseUpdateStatement() {
MySqlUpdateStatement stmt = createUpdateStatement();
if (lexer.token() == Token.UPDATE) {
lexer.nextToken();
if (identifierEquals(LOW_PRIORITY)) {
lexer.nextToken();
stmt.setLowPriority(true);
}
if (identifierEquals(IGNORE)) {
lexer.nextToken();
stmt.setIgnore(true);
}
SQLTableSource tableSource = this.exprParser.createSelectParser().parseTableSource();
stmt.setTableSource(tableSource);
}
parseUpdateSet(stmt);
if (lexer.token() == (Token.WHERE)) {
lexer.nextToken();
stmt.setWhere(this.exprParser.expr());
}
stmt.setOrderBy(this.exprParser.parseOrderBy());
stmt.setLimit(parseLimit());
return stmt;
return new MySqlSelectParser(this.exprParser).parseUpdateStatment();
}
protected MySqlUpdateStatement createUpdateStatement() {