mirror of
https://github.com/alibaba/druid.git
synced 2023-03-04 19:17:16 +00:00
0.2.15
This commit is contained in:
@@ -169,14 +169,14 @@ public class SQLSelectParser extends SQLParser {
|
||||
protected void withSubquery(SQLSelect select) {
|
||||
if (lexer.token() == Token.WITH) {
|
||||
lexer.nextToken();
|
||||
|
||||
|
||||
SQLWithSubqueryClause withQueryClause = new SQLWithSubqueryClause();
|
||||
|
||||
|
||||
if (lexer.token == Token.RECURSIVE || identifierEquals("RECURSIVE")) {
|
||||
lexer.nextToken();
|
||||
withQueryClause.setRecursive(true);
|
||||
}
|
||||
|
||||
|
||||
for (;;) {
|
||||
SQLWithSubqueryClause.Entry entry = new SQLWithSubqueryClause.Entry();
|
||||
entry.setName((SQLIdentifierExpr) this.exprParser.name());
|
||||
@@ -252,7 +252,7 @@ public class SQLSelectParser extends SQLParser {
|
||||
if (lexer.token() == Token.IDENTIFIER) {
|
||||
expr = new SQLIdentifierExpr(lexer.stringVal());
|
||||
lexer.nextTokenComma();
|
||||
|
||||
|
||||
if (lexer.token() != Token.COMMA) {
|
||||
expr = this.exprParser.primaryRest(expr);
|
||||
expr = this.exprParser.exprRest(expr);
|
||||
@@ -261,13 +261,13 @@ public class SQLSelectParser extends SQLParser {
|
||||
expr = expr();
|
||||
}
|
||||
final String alias = as();
|
||||
|
||||
|
||||
final SQLSelectItem selectItem = new SQLSelectItem(expr, alias);
|
||||
selectList.add(selectItem);
|
||||
if (lexer.token() != Token.COMMA) {
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
lexer.nextToken();
|
||||
}
|
||||
}
|
||||
@@ -388,9 +388,13 @@ public class SQLSelectParser extends SQLParser {
|
||||
join.setCondition(expr());
|
||||
} else if (identifierEquals("USING")) {
|
||||
lexer.nextToken();
|
||||
accept(Token.LPAREN);
|
||||
this.exprParser.exprList(join.getUsing());
|
||||
accept(Token.RPAREN);
|
||||
if (lexer.token() == Token.LPAREN) {
|
||||
lexer.nextToken();
|
||||
this.exprParser.exprList(join.getUsing());
|
||||
accept(Token.RPAREN);
|
||||
} else {
|
||||
join.getUsing().add(this.expr());
|
||||
}
|
||||
}
|
||||
|
||||
return parseTableSourceRest(join);
|
||||
|
||||
Reference in New Issue
Block a user