-
Notifications
You must be signed in to change notification settings - Fork 8.6k
[BUG] java.lang.ClassCastException: com.alibaba.druid.sql.visitor.SQLEvalVisitorImpl cannot be cast to com.alibaba.druid.sql.dialect.postgresql.visitor.PGASTVisitor #6633
Description
Database Type
postgresql
Database Version
postgresql 13.3
Druid Version
1.2.22
JDK Version
8
Error SQL
当extract(epoch from current_date)::bigint在where后,如下
select * from a where extract(epoch from current_date)::bigint > 1
就会报错,但是如果直接select后就不会报错,如下
select extract(epoch from current_date)::bigint
Testcase Code
No response
Stacktrace Info
堆栈如下
java.lang.ClassCastException: com.alibaba.druid.sql.visitor.SQLEvalVisitorImpl cannot be cast to com.alibaba.druid.sql.dialect.postgresql.visitor.PGASTVisitor at com.alibaba.druid.sql.dialect.postgresql.ast.expr.PGExprImpl.accept0(PGExprImpl.java:29) at com.alibaba.druid.sql.ast.SQLObjectImpl.accept(SQLObjectImpl.java:48) at com.alibaba.druid.sql.ast.expr.SQLCastExpr.accept0(SQLCastExpr.java:71) at com.alibaba.druid.sql.dialect.postgresql.ast.expr.PGTypeCastExpr.accept0(PGTypeCastExpr.java:40) at com.alibaba.druid.sql.ast.SQLObjectImpl.accept(SQLObjectImpl.java:48) at com.alibaba.druid.sql.visitor.SQLEvalVisitorUtils.visit(SQLEvalVisitorUtils.java:811) at com.alibaba.druid.sql.visitor.SQLEvalVisitorImpl.visit(SQLEvalVisitorImpl.java:68) at com.alibaba.druid.sql.ast.expr.SQLBinaryOpExpr.accept0(SQLBinaryOpExpr.java:162) at com.alibaba.druid.sql.ast.SQLObjectImpl.accept(SQLObjectImpl.java:48) at com.alibaba.druid.wall.spi.WallVisitorUtils.eval(WallVisitorUtils.java:1589) at com.alibaba.druid.wall.spi.WallVisitorUtils.getValue(WallVisitorUtils.java:1070) at com.alibaba.druid.wall.spi.WallVisitorUtils.getValue(WallVisitorUtils.java:1481) at com.alibaba.druid.wall.spi.WallVisitorUtils.getConditionValue(WallVisitorUtils.java:1418) at com.alibaba.druid.wall.spi.WallVisitorUtils.checkSelelct(WallVisitorUtils.java:219) at com.alibaba.druid.wall.spi.PGWallVisitor.visit(PGWallVisitor.java:55) at com.alibaba.druid.sql.dialect.postgresql.ast.stmt.PGSelectQueryBlock.accept0(PGSelectQueryBlock.java:63) at com.alibaba.druid.sql.dialect.postgresql.ast.stmt.PGSelectQueryBlock.accept0(PGSelectQueryBlock.java:55) at com.alibaba.druid.sql.ast.SQLObjectImpl.accept(SQLObjectImpl.java:48) at com.alibaba.druid.sql.ast.statement.SQLSelect.accept0(SQLSelect.java:116) at com.alibaba.druid.sql.ast.SQLObjectImpl.accept(SQLObjectImpl.java:48) at com.alibaba.druid.sql.ast.SQLObjectImpl.acceptChild(SQLObjectImpl.java:70) at com.alibaba.druid.sql.dialect.postgresql.ast.stmt.PGSelectStatement.accept0(PGSelectStatement.java:43) at com.alibaba.druid.sql.dialect.postgresql.ast.stmt.PGSelectStatement.accept0(PGSelectStatement.java:35) at com.alibaba.druid.sql.ast.SQLObjectImpl.accept(SQLObjectImpl.java:48)
Error Info
No response