improve SQL Eval support

This commit is contained in:
wenshao
2013-03-30 23:05:08 +08:00
parent 54e3ec9323
commit 275e4b68b7
50 changed files with 1163 additions and 51 deletions
@@ -15,6 +15,9 @@
*/
package com.alibaba.druid.sql.dialect.postgresql.parser;
import com.alibaba.druid.sql.ast.SQLExpr;
import com.alibaba.druid.sql.ast.expr.SQLBinaryOpExpr;
import com.alibaba.druid.sql.ast.expr.SQLBinaryOperator;
import com.alibaba.druid.sql.dialect.postgresql.ast.PGOrderBy;
import com.alibaba.druid.sql.parser.Lexer;
import com.alibaba.druid.sql.parser.SQLExprParser;
@@ -68,4 +71,16 @@ public class PGExprParser extends SQLExprParser {
return null;
}
public SQLExpr primaryRest(SQLExpr expr) {
if (lexer.token() == Token.COLONCOLON) {
lexer.nextToken();
SQLExpr typeExpr = this.expr();
SQLBinaryOpExpr castExpr = new SQLBinaryOpExpr(expr, SQLBinaryOperator.PostgresStyleTypeCast, typeExpr);
return primaryRest(castExpr);
}
return super.primaryRest(expr);
}
}