diff --git a/src/main/java/com/alibaba/druid/sql/dialect/postgresql/ast/stmt/PGDeleteStatement.java b/src/main/java/com/alibaba/druid/sql/dialect/postgresql/ast/stmt/PGDeleteStatement.java index b22b3744c9..da62309652 100644 --- a/src/main/java/com/alibaba/druid/sql/dialect/postgresql/ast/stmt/PGDeleteStatement.java +++ b/src/main/java/com/alibaba/druid/sql/dialect/postgresql/ast/stmt/PGDeleteStatement.java @@ -48,7 +48,11 @@ public class PGDeleteStatement extends SQLDeleteStatement implements PGSQLStatem } protected void accept0(SQLASTVisitor visitor) { - accept0((PGASTVisitor) visitor); + if (visitor instanceof PGASTVisitor) { + accept0((PGASTVisitor) visitor); + } else { + super.accept0(visitor); + } } @Override diff --git a/src/test/java/com/alibaba/druid/bvt/sql/postgresql/PGDeleteTest.java b/src/test/java/com/alibaba/druid/bvt/sql/postgresql/PGDeleteTest.java index 917f1783c6..0b12e5e376 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/postgresql/PGDeleteTest.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/postgresql/PGDeleteTest.java @@ -17,6 +17,7 @@ package com.alibaba.druid.bvt.sql.postgresql; import java.util.List; +import com.alibaba.druid.sql.visitor.SchemaStatVisitor; import org.junit.Assert; import com.alibaba.druid.sql.PGTest; @@ -33,13 +34,18 @@ public class PGDeleteTest extends PGTest { PGSQLStatementParser parser = new PGSQLStatementParser(sql); List statementList = parser.parseStatementList(); - SQLStatement statemen = statementList.get(0); + SQLStatement stmt = statementList.get(0); // print(statementList); Assert.assertEquals(1, statementList.size()); + { + SchemaStatVisitor v = new SchemaStatVisitor(); + stmt.accept(v); + } + PGSchemaStatVisitor visitor = new PGSchemaStatVisitor(); - statemen.accept(visitor); + stmt.accept(visitor); // System.out.println("Tables : " + visitor.getTables()); // System.out.println("fields : " + visitor.getColumns());