diff --git a/pom.xml b/pom.xml index 7bb1b608ff..9fcba3cc34 100644 --- a/pom.xml +++ b/pom.xml @@ -552,6 +552,12 @@ tbdatasource 2.0.2 test + + + jboss + jboss-j2ee + + diff --git a/src/main/java/com/alibaba/druid/sql/dialect/postgresql/parser/PGLexer.java b/src/main/java/com/alibaba/druid/sql/dialect/postgresql/parser/PGLexer.java index 313ecc2a11..8f3fc4f5ad 100644 --- a/src/main/java/com/alibaba/druid/sql/dialect/postgresql/parser/PGLexer.java +++ b/src/main/java/com/alibaba/druid/sql/dialect/postgresql/parser/PGLexer.java @@ -62,6 +62,7 @@ public class PGLexer extends Lexer { map.put("TRUE", Token.TRUE); map.put("FALSE", Token.FALSE); map.put("ARRAY", Token.ARRAY); + map.put("IF", Token.IF); DEFAULT_PG_KEYWORDS = new Keywords(map); } diff --git a/src/test/java/com/alibaba/druid/bvt/pool/exception/OracleExceptionSorterTest_stmt_setFetchDirection.java b/src/test/java/com/alibaba/druid/bvt/pool/exception/OracleExceptionSorterTest_stmt_setFetchDirection.java index f9ba2f65e6..a72c607fd9 100644 --- a/src/test/java/com/alibaba/druid/bvt/pool/exception/OracleExceptionSorterTest_stmt_setFetchDirection.java +++ b/src/test/java/com/alibaba/druid/bvt/pool/exception/OracleExceptionSorterTest_stmt_setFetchDirection.java @@ -1,11 +1,10 @@ package com.alibaba.druid.bvt.pool.exception; import java.sql.PreparedStatement; +import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; -import javax.resource.cci.ResultSet; - import junit.framework.TestCase; import org.junit.Assert; diff --git a/src/test/java/com/alibaba/druid/bvt/sql/postgresql/ddl/PGDropTableIfExistsTest.java b/src/test/java/com/alibaba/druid/bvt/sql/postgresql/ddl/PGDropTableIfExistsTest.java new file mode 100644 index 0000000000..150ca9b9f8 --- /dev/null +++ b/src/test/java/com/alibaba/druid/bvt/sql/postgresql/ddl/PGDropTableIfExistsTest.java @@ -0,0 +1,37 @@ +package com.alibaba.druid.bvt.sql.postgresql.ddl; + +import java.util.List; + +import org.junit.Assert; + +import com.alibaba.druid.sql.PGTest; +import com.alibaba.druid.sql.ast.SQLStatement; +import com.alibaba.druid.sql.dialect.postgresql.parser.PGSQLStatementParser; +import com.alibaba.druid.sql.dialect.postgresql.visitor.PGSchemaStatVisitor; +import com.alibaba.druid.stat.TableStat; + + +public class PGDropTableIfExistsTest extends PGTest { + public void test_0 () throws Exception { + String sql = "DROP TABLE IF EXISTS t_report_1_19"; + + PGSQLStatementParser parser = new PGSQLStatementParser(sql); + List statementList = parser.parseStatementList(); + SQLStatement statemen = statementList.get(0); + print(statementList); + + Assert.assertEquals(1, statementList.size()); + + PGSchemaStatVisitor visitor = new PGSchemaStatVisitor(); + statemen.accept(visitor); + + System.out.println("Tables : " + visitor.getTables()); + System.out.println("fields : " + visitor.getColumns()); + + Assert.assertTrue(visitor.getTables().containsKey(new TableStat.Name("t_report_1_19"))); + + Assert.assertTrue(visitor.getTables().get(new TableStat.Name("t_report_1_19")).getDropCount() == 1); + + Assert.assertTrue(visitor.getColumns().size() == 0); + } +}