improved odps sql parser, support true/false/close, fixed issue #1294

This commit is contained in:
高铁
2016-06-25 17:11:51 +08:00
parent 7808fe9118
commit ee31a42afc
6 changed files with 217 additions and 92 deletions
@@ -77,6 +77,7 @@ public class OdpsExprParser extends SQLExprParser {
expr = expr();
}
String alias = null;
if (lexer.token() == Token.AS) {
lexer.nextToken();
@@ -88,7 +89,7 @@ public class OdpsExprParser extends SQLExprParser {
selectItem.setExpr(expr);
for (;;) {
String alias = lexer.stringVal();
alias = lexer.stringVal();
lexer.nextToken();
selectItem.getAliasList().add(alias);
@@ -103,10 +104,12 @@ public class OdpsExprParser extends SQLExprParser {
accept(Token.RPAREN);
return selectItem;
} else {
alias = alias();
}
} else {
alias = as();
}
final String alias = as();
SQLSelectItem item = new SQLSelectItem(expr, alias);
@@ -45,6 +45,8 @@ public class OdpsLexer extends Lexer {
map.put("LIMIT", Token.LIMIT);
map.put("IF", Token.IF);
map.put("DISTRIBUTE", Token.DISTRIBUTE);
map.put("TRUE", Token.TRUE);
map.put("FALSE", Token.FALSE);
DEFAULT_ODPS_KEYWORDS = new Keywords(map);
}