mirror of
https://github.com/alibaba/druid.git
synced 2023-03-04 19:17:16 +00:00
improve sql parser hive & odps support
This commit is contained in:
@@ -90,6 +90,11 @@ public class HiveExprParser extends SQLExprParser {
|
||||
lexer.nextToken();
|
||||
Number num = ((SQLNumericLiteralExpr) expr).getNumber();
|
||||
expr = new SQLDecimalExpr(num.toString());
|
||||
} else if (lexer.identifierEquals(FnvHash.Constants.DAYS)) { // hortonworks
|
||||
lexer.nextToken();
|
||||
SQLIntervalExpr intervalExpr = new SQLIntervalExpr();
|
||||
intervalExpr.setValue(expr);
|
||||
intervalExpr.setUnit(SQLIntervalUnit.DAY);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
|
||||
@@ -2580,8 +2580,17 @@ public class Lexer {
|
||||
}
|
||||
|
||||
int start = pos;
|
||||
for (;;) {
|
||||
for (; ; ) {
|
||||
if (ch == ' ' || ch == '\r' || ch == '\n' || ch == EOI) {
|
||||
while (pos < text.length() - 1) {
|
||||
char c1 = text.charAt(pos);
|
||||
if (c1 == ' ' || c1 == '\r' || c1 == '\n' || c1 == '\t') {
|
||||
pos++;
|
||||
continue;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
String arg = text.substring(start, pos);
|
||||
arg = arg.trim();
|
||||
if (arg.length() > 0) {
|
||||
|
||||
Reference in New Issue
Block a user