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
@@ -223,7 +223,7 @@ public class OracleCreateTableParser extends SQLCreateTableParser {
|
||||
if (lexer.token() == Token.AS) {
|
||||
lexer.nextToken();
|
||||
|
||||
OracleSelect select = new OracleSelectParser(lexer).select();
|
||||
OracleSelect select = new OracleSelectParser(exprParser).select();
|
||||
stmt.setSelect(select);
|
||||
}
|
||||
|
||||
|
||||
@@ -633,7 +633,7 @@ public class OracleExprParser extends SQLExprParser {
|
||||
|
||||
@Override
|
||||
public OracleSelectParser createSelectParser() {
|
||||
return new OracleSelectParser(this.lexer);
|
||||
return new OracleSelectParser(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -63,8 +63,8 @@ import com.alibaba.druid.sql.dialect.oracle.ast.stmt.OracleSelectSubqueryTableSo
|
||||
import com.alibaba.druid.sql.dialect.oracle.ast.stmt.OracleSelectTableReference;
|
||||
import com.alibaba.druid.sql.dialect.oracle.ast.stmt.OracleSelectTableSource;
|
||||
import com.alibaba.druid.sql.dialect.oracle.ast.stmt.OracleSelectUnPivot;
|
||||
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.SQLParseException;
|
||||
import com.alibaba.druid.sql.parser.SQLSelectParser;
|
||||
import com.alibaba.druid.sql.parser.Token;
|
||||
@@ -72,12 +72,11 @@ import com.alibaba.druid.sql.parser.Token;
|
||||
public class OracleSelectParser extends SQLSelectParser {
|
||||
|
||||
public OracleSelectParser(String sql){
|
||||
this(new OracleLexer(sql));
|
||||
this.lexer.nextToken();
|
||||
super (new OracleExprParser(sql));
|
||||
}
|
||||
|
||||
public OracleSelectParser(Lexer lexer){
|
||||
super(lexer);
|
||||
public OracleSelectParser(SQLExprParser exprParser){
|
||||
super(exprParser);
|
||||
}
|
||||
|
||||
protected OracleExprParser createExprParser() {
|
||||
|
||||
+3
-3
@@ -161,7 +161,7 @@ public class OracleStatementParser extends SQLStatementParser {
|
||||
}
|
||||
|
||||
if (lexer.token() == (Token.SELECT)) {
|
||||
statementList.add(new SQLSelectStatement(new OracleSelectParser(this.lexer).select()));
|
||||
statementList.add(new SQLSelectStatement(new OracleSelectParser(this.exprParser).select()));
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -197,7 +197,7 @@ public class OracleStatementParser extends SQLStatementParser {
|
||||
}
|
||||
|
||||
if (lexer.token() == Token.WITH) {
|
||||
statementList.add(new SQLSelectStatement(new OracleSelectParser(this.lexer).select()));
|
||||
statementList.add(new SQLSelectStatement(new OracleSelectParser(this.exprParser).select()));
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -1106,7 +1106,7 @@ public class OracleStatementParser extends SQLStatementParser {
|
||||
}
|
||||
|
||||
public OracleSelectParser createSQLSelectParser() {
|
||||
return new OracleSelectParser(this.lexer);
|
||||
return new OracleSelectParser(this.exprParser);
|
||||
}
|
||||
|
||||
public OracleMergeStatement parseMerge() throws ParserException {
|
||||
|
||||
+3
-5
@@ -6,7 +6,6 @@ import com.alibaba.druid.sql.ast.statement.SQLSelectQuery;
|
||||
import com.alibaba.druid.sql.dialect.sqlserver.ast.SQLServerSelect;
|
||||
import com.alibaba.druid.sql.dialect.sqlserver.ast.SQLServerSelectQueryBlock;
|
||||
import com.alibaba.druid.sql.dialect.sqlserver.ast.Top;
|
||||
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;
|
||||
@@ -15,12 +14,11 @@ import com.alibaba.druid.sql.parser.Token;
|
||||
public class SQLServerSelectParser extends SQLSelectParser {
|
||||
|
||||
public SQLServerSelectParser(String sql){
|
||||
super(new SQLServerLexer(sql));
|
||||
this.lexer.nextToken();
|
||||
super(new SQLServerExprParser(sql));
|
||||
}
|
||||
|
||||
public SQLServerSelectParser(Lexer lexer){
|
||||
super(lexer);
|
||||
public SQLServerSelectParser(SQLExprParser exprParser){
|
||||
super(exprParser);
|
||||
}
|
||||
|
||||
public SQLSelect select() throws ParserException {
|
||||
|
||||
+1
-1
@@ -28,7 +28,7 @@ public class SQLServerStatementParser extends SQLStatementParser {
|
||||
}
|
||||
|
||||
public SQLSelectParser createSQLSelectParser() {
|
||||
return new SQLServerSelectParser(this.lexer);
|
||||
return new SQLServerSelectParser(this.exprParser);
|
||||
}
|
||||
|
||||
public SQLServerStatementParser(Lexer lexer){
|
||||
|
||||
Reference in New Issue
Block a user