improved sql parser.

This commit is contained in:
wenshao
2017-08-25 00:29:12 +08:00
parent 026295ddbd
commit 76c441949f
35 changed files with 1442 additions and 211 deletions
@@ -44,6 +44,7 @@ import com.alibaba.druid.sql.ast.statement.SQLSelectOrderByItem;
import com.alibaba.druid.sql.ast.statement.SQLUnique;
import com.alibaba.druid.sql.ast.statement.SQLUpdateSetItem;
import com.alibaba.druid.sql.dialect.postgresql.ast.expr.PGPolygonExpr;
import com.alibaba.druid.util.FNVUtils;
import com.alibaba.druid.util.JdbcConstants;
public class SQLExprParser extends SQLParser {
@@ -791,7 +792,7 @@ public class SQLExprParser extends SQLParser {
expr = dotRest(expr);
return primaryRest(expr);
} else if (identifierEquals("SETS") //
} else if (lexer.identifierEquals("SETS") //
&& expr.getClass() == SQLIdentifierExpr.class //
&& "GROUPING".equalsIgnoreCase(((SQLIdentifierExpr) expr).getName())) {
SQLGroupingSetExpr groupingSets = new SQLGroupingSetExpr();
@@ -1661,7 +1662,7 @@ public class SQLExprParser extends SQLParser {
rightExp = primary();
expr = new SQLBinaryOpExpr(expr, SQLBinaryOperator.Escape, rightExp, getDbType());
}
} else if (identifierEquals("RLIKE")) {
} else if (lexer.identifierEquals(FNVUtils.RLIKE)) {
lexer.nextToken();
rightExp = equality();