sql parser refactor

This commit is contained in:
温少
2012-05-20 13:45:58 +08:00
parent 04130b96c5
commit 357dc07a29
4 changed files with 8 additions and 9 deletions
@@ -176,7 +176,7 @@ public class MySqlCreateTableParser extends SQLCreateTableParser {
}
if (lexer.token() == (Token.SELECT)) {
SQLSelect query = new MySqlSelectParser(this.lexer).select();
SQLSelect query = new MySqlSelectParser(this.exprParser).select();
stmt.setQuery(query);
}
@@ -454,7 +454,7 @@ public class MySqlExprParser extends SQLExprParser {
}
public SQLSelectParser createSelectParser() {
return new MySqlSelectParser(this.lexer);
return new MySqlSelectParser(this);
}
protected SQLExpr parseInterval() {
@@ -33,20 +33,19 @@ import com.alibaba.druid.sql.dialect.mysql.ast.statement.MySqlSelectGroupBy;
import com.alibaba.druid.sql.dialect.mysql.ast.statement.MySqlSelectQueryBlock;
import com.alibaba.druid.sql.dialect.mysql.ast.statement.MySqlSelectQueryBlock.Limit;
import com.alibaba.druid.sql.dialect.mysql.ast.statement.MySqlUnionQuery;
import com.alibaba.druid.sql.parser.Lexer;
import com.alibaba.druid.sql.parser.ParserException;
import com.alibaba.druid.sql.parser.SQLExprParser;
import com.alibaba.druid.sql.parser.SQLSelectParser;
import com.alibaba.druid.sql.parser.Token;
public class MySqlSelectParser extends SQLSelectParser {
public MySqlSelectParser(Lexer lexer){
super(lexer);
public MySqlSelectParser(SQLExprParser exprParser){
super(exprParser);
}
public MySqlSelectParser(String sql) throws ParserException{
this(new MySqlLexer(sql));
this.lexer.nextToken();
this(new MySqlExprParser(sql));
}
@Override
@@ -144,7 +144,7 @@ public class MySqlStatementParser extends SQLStatementParser {
}
public SQLSelectStatement parseSelect() throws ParserException {
return new SQLSelectStatement(new MySqlSelectParser(lexer).select());
return new SQLSelectStatement(new MySqlSelectParser(this.exprParser).select());
}
public SQLUpdateStatement parseUpdateStatement() throws ParserException {
@@ -1917,7 +1917,7 @@ public class MySqlStatementParser extends SQLStatementParser {
}
public SQLSelectParser createSQLSelectParser() {
return new MySqlSelectParser(this.lexer);
return new MySqlSelectParser(this.exprParser);
}
public SQLStatement parseSet() throws ParserException {