mirror of
https://github.com/alibaba/druid.git
synced 2023-03-04 19:17:16 +00:00
sql parser refactor
This commit is contained in:
+1
-1
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user