diff --git a/src/main/java/com/alibaba/druid/sql/dialect/mysql/parser/MySqlCreateTableParser.java b/src/main/java/com/alibaba/druid/sql/dialect/mysql/parser/MySqlCreateTableParser.java index 4772c9f797..c993e29286 100644 --- a/src/main/java/com/alibaba/druid/sql/dialect/mysql/parser/MySqlCreateTableParser.java +++ b/src/main/java/com/alibaba/druid/sql/dialect/mysql/parser/MySqlCreateTableParser.java @@ -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); } diff --git a/src/main/java/com/alibaba/druid/sql/dialect/mysql/parser/MySqlExprParser.java b/src/main/java/com/alibaba/druid/sql/dialect/mysql/parser/MySqlExprParser.java index 5b883c9b54..7d9a2e90a8 100644 --- a/src/main/java/com/alibaba/druid/sql/dialect/mysql/parser/MySqlExprParser.java +++ b/src/main/java/com/alibaba/druid/sql/dialect/mysql/parser/MySqlExprParser.java @@ -454,7 +454,7 @@ public class MySqlExprParser extends SQLExprParser { } public SQLSelectParser createSelectParser() { - return new MySqlSelectParser(this.lexer); + return new MySqlSelectParser(this); } protected SQLExpr parseInterval() { diff --git a/src/main/java/com/alibaba/druid/sql/dialect/mysql/parser/MySqlSelectParser.java b/src/main/java/com/alibaba/druid/sql/dialect/mysql/parser/MySqlSelectParser.java index 6a0c6fa9a8..af7b63acb6 100644 --- a/src/main/java/com/alibaba/druid/sql/dialect/mysql/parser/MySqlSelectParser.java +++ b/src/main/java/com/alibaba/druid/sql/dialect/mysql/parser/MySqlSelectParser.java @@ -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 diff --git a/src/main/java/com/alibaba/druid/sql/dialect/mysql/parser/MySqlStatementParser.java b/src/main/java/com/alibaba/druid/sql/dialect/mysql/parser/MySqlStatementParser.java index 202bcaca6e..490499a803 100644 --- a/src/main/java/com/alibaba/druid/sql/dialect/mysql/parser/MySqlStatementParser.java +++ b/src/main/java/com/alibaba/druid/sql/dialect/mysql/parser/MySqlStatementParser.java @@ -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 {