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);
+ }
+}