PGDeleteStatement accept support SQLASTVisitor

This commit is contained in:
高铁
2020-12-26 06:19:07 +08:00
parent 17de1ccf75
commit ff9a671fea
2 changed files with 13 additions and 3 deletions
@@ -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
@@ -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<SQLStatement> 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());