mirror of
https://github.com/alibaba/druid.git
synced 2023-03-04 19:17:16 +00:00
improved sql parser.
This commit is contained in:
@@ -1273,12 +1273,7 @@ public class SQLExprParser extends SQLParser {
|
||||
|
||||
accept(Token.BY);
|
||||
|
||||
orderBy.addItem(parseSelectOrderByItem());
|
||||
|
||||
while (lexer.token() == Token.COMMA) {
|
||||
lexer.nextToken();
|
||||
orderBy.addItem(parseSelectOrderByItem());
|
||||
}
|
||||
orderBy(orderBy.getItems(), orderBy);
|
||||
|
||||
return orderBy;
|
||||
}
|
||||
@@ -1286,6 +1281,18 @@ public class SQLExprParser extends SQLParser {
|
||||
return null;
|
||||
}
|
||||
|
||||
public void orderBy(List<SQLSelectOrderByItem> items, SQLObject parent) {
|
||||
SQLSelectOrderByItem item = parseSelectOrderByItem();
|
||||
item.setParent(parent);
|
||||
items.add(item);
|
||||
while (lexer.token() == Token.COMMA) {
|
||||
lexer.nextToken();
|
||||
item = parseSelectOrderByItem();
|
||||
item.setParent(parent);
|
||||
items.add(item);
|
||||
}
|
||||
}
|
||||
|
||||
public SQLSelectOrderByItem parseSelectOrderByItem() {
|
||||
SQLSelectOrderByItem item = new SQLSelectOrderByItem();
|
||||
|
||||
@@ -2135,7 +2142,7 @@ public class SQLExprParser extends SQLParser {
|
||||
|
||||
SQLPrimaryKeyImpl pk = new SQLPrimaryKeyImpl();
|
||||
accept(Token.LPAREN);
|
||||
exprList(pk.getColumns(), pk);
|
||||
orderBy(pk.getColumns(), pk);
|
||||
accept(Token.RPAREN);
|
||||
|
||||
return pk;
|
||||
@@ -2146,7 +2153,7 @@ public class SQLExprParser extends SQLParser {
|
||||
|
||||
SQLUnique unique = new SQLUnique();
|
||||
accept(Token.LPAREN);
|
||||
exprList(unique.getColumns(), unique);
|
||||
orderBy(unique.getColumns(), unique);
|
||||
accept(Token.RPAREN);
|
||||
|
||||
if (lexer.token() == Token.DISABLE) {
|
||||
|
||||
Reference in New Issue
Block a user