mirror of
https://github.com/alibaba/druid.git
synced 2023-03-04 19:17:16 +00:00
improved sql parser. for issue #2079
This commit is contained in:
@@ -3164,6 +3164,10 @@ public class SQLStatementParser extends SQLParser {
|
||||
expr = new SQLIntegerExpr(lexer.integerValue());
|
||||
}
|
||||
lexer.nextTokenComma();
|
||||
|
||||
if (lexer.token != Token.COMMA && lexer.token != Token.RPAREN) {
|
||||
expr = this.exprParser.exprRest(expr);
|
||||
}
|
||||
} else if (lexer.token() == Token.LITERAL_CHARS) {
|
||||
if (optimizedForParameterized) {
|
||||
expr = new SQLVariantRefExpr("?");
|
||||
@@ -3172,6 +3176,9 @@ public class SQLStatementParser extends SQLParser {
|
||||
expr = new SQLCharExpr(lexer.stringVal());
|
||||
}
|
||||
lexer.nextTokenComma();
|
||||
if (lexer.token != Token.COMMA && lexer.token != Token.RPAREN) {
|
||||
expr = this.exprParser.exprRest(expr);
|
||||
}
|
||||
} else if (lexer.token() == Token.LITERAL_NCHARS) {
|
||||
if (optimizedForParameterized) {
|
||||
expr = new SQLVariantRefExpr("?");
|
||||
@@ -3180,6 +3187,20 @@ public class SQLStatementParser extends SQLParser {
|
||||
expr = new SQLNCharExpr(lexer.stringVal());
|
||||
}
|
||||
lexer.nextTokenComma();
|
||||
if (lexer.token != Token.COMMA && lexer.token != Token.RPAREN) {
|
||||
expr = this.exprParser.exprRest(expr);
|
||||
}
|
||||
} else if (lexer.token == Token.NULL) {
|
||||
if (optimizedForParameterized) {
|
||||
expr = new SQLVariantRefExpr("?");
|
||||
values.incrementReplaceCount();
|
||||
} else {
|
||||
expr = new SQLNullExpr();
|
||||
}
|
||||
lexer.nextTokenComma();
|
||||
if (lexer.token != Token.COMMA && lexer.token != Token.RPAREN) {
|
||||
expr = this.exprParser.exprRest(expr);
|
||||
}
|
||||
} else {
|
||||
expr = exprParser.expr();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user