improve sqlwall

This commit is contained in:
kiki
2014-02-21 15:11:39 +08:00
parent 80ac7841ec
commit d9d6b2a29f
15 changed files with 105 additions and 26 deletions
@@ -281,6 +281,9 @@ public class MySqlSelectQueryBlock extends SQLSelectQueryBlock implements MySqlO
}
public void setRowCount(SQLExpr rowCount) {
if (rowCount != null) {
rowCount.setParent(this);
}
this.rowCount = rowCount;
}
@@ -289,6 +292,9 @@ public class MySqlSelectQueryBlock extends SQLSelectQueryBlock implements MySqlO
}
public void setOffset(SQLExpr offset) {
if (offset != null) {
offset.setParent(this);
}
this.offset = offset;
}
@@ -235,7 +235,7 @@ public class MySqlSelectParser extends SQLSelectParser {
accept(Token.BY);
while (true) {
groupBy.getItems().add(this.exprParser.expr());
groupBy.addItem(this.exprParser.expr());
if (!(lexer.token() == (Token.COMMA))) {
break;
}
@@ -247,7 +247,9 @@ public class MySqlSelectParser extends SQLSelectParser {
acceptIdentifier("ROLLUP");
MySqlSelectGroupBy mySqlGroupBy = new MySqlSelectGroupBy();
mySqlGroupBy.getItems().addAll(groupBy.getItems());
for (SQLExpr sqlExpr : groupBy.getItems()) {
mySqlGroupBy.addItem(sqlExpr);
}
mySqlGroupBy.setRollUp(true);
groupBy = mySqlGroupBy;
@@ -86,6 +86,8 @@ public class OracleExprParser extends SQLExprParser {
public boolean allowStringAdditive = false;
/**
@@ -729,11 +731,11 @@ public class OracleExprParser extends SQLExprParser {
accept(Token.BY);
orderBy.getItems().add(parseSelectOrderByItem());
orderBy.addItem(parseSelectOrderByItem());
while (lexer.token() == (Token.COMMA)) {
lexer.nextToken();
orderBy.getItems().add(parseSelectOrderByItem());
orderBy.addItem(parseSelectOrderByItem());
}
return orderBy;
@@ -244,7 +244,7 @@ public class OracleSelectParser extends SQLSelectParser {
OracleSelectQueryBlock queryBlock = new OracleSelectQueryBlock();
if (lexer.token() == Token.SELECT) {
lexer.nextToken();
if (lexer.token() == Token.COMMENT) {
lexer.nextToken();
}
@@ -575,9 +575,9 @@ public class OracleSelectParser extends SQLSelectParser {
accept(Token.LPAREN);
exprParser.exprList(groupingSet.getParameters());
accept(Token.RPAREN);
groupBy.getItems().add(groupingSet);
groupBy.addItem(groupingSet);
} else {
groupBy.getItems().add(this.exprParser.expr());
groupBy.addItem(this.exprParser.expr());
}
if (!(lexer.token() == (Token.COMMA))) {
@@ -612,9 +612,9 @@ public class OracleSelectParser extends SQLSelectParser {
accept(Token.LPAREN);
exprParser.exprList(groupingSet.getParameters());
accept(Token.RPAREN);
groupBy.getItems().add(groupingSet);
groupBy.addItem(groupingSet);
} else {
groupBy.getItems().add(this.exprParser.expr());
groupBy.addItem(this.exprParser.expr());
}
if (!(lexer.token() == (Token.COMMA))) {
@@ -50,11 +50,11 @@ public class PGExprParser extends SQLExprParser {
accept(Token.BY);
orderBy.getItems().add(parseSelectOrderByItem());
orderBy.addItem(parseSelectOrderByItem());
while (lexer.token() == (Token.COMMA)) {
lexer.nextToken();
orderBy.getItems().add(parseSelectOrderByItem());
orderBy.addItem(parseSelectOrderByItem());
}
return orderBy;