diff --git a/src/test/java/com/alibaba/druid/bvt/pool/SpringFilterTest.java b/src/test/java/com/alibaba/druid/bvt/pool/SpringFilterTest.java index 1268fe310b..8c2ddf4702 100644 --- a/src/test/java/com/alibaba/druid/bvt/pool/SpringFilterTest.java +++ b/src/test/java/com/alibaba/druid/bvt/pool/SpringFilterTest.java @@ -54,9 +54,11 @@ public class SpringFilterTest extends TestCase { } { Connection conn = dataSource.getConnection(); + conn.setAutoCommit(false); Statement stmt = conn.createStatement(); stmt.execute("insert into sequence_seed (value ,name) values (0, 'druid-spring-test')"); stmt.close(); + conn.commit(); conn.close(); } diff --git a/src/test/java/com/alibaba/druid/bvt/sql/mysql/MySqlFormatTest.java b/src/test/java/com/alibaba/druid/bvt/sql/mysql/MySqlFormatTest.java new file mode 100644 index 0000000000..feda0491e4 --- /dev/null +++ b/src/test/java/com/alibaba/druid/bvt/sql/mysql/MySqlFormatTest.java @@ -0,0 +1,19 @@ +package com.alibaba.druid.bvt.sql.mysql; + +import com.alibaba.druid.sql.SQLUtils; +import com.alibaba.druid.util.JdbcUtils; + +import junit.framework.Assert; +import junit.framework.TestCase; + +public class MySqlFormatTest extends TestCase { + + public void test_0() throws Exception { + String text = "CREATE TABLE customer (a INT, b CHAR (20), INDEX (a));"; + Assert.assertEquals("CREATE TABLE customer (\n" + // + "\ta INT, \n" + // + "\tb CHAR(20), \n" + // + "\tINDEX(a)\n" + // + ")", SQLUtils.format(text, JdbcUtils.MYSQL)); + } +} diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleFormatTest2.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleFormatTest2.java new file mode 100644 index 0000000000..2bf5dd9537 --- /dev/null +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleFormatTest2.java @@ -0,0 +1,16 @@ +package com.alibaba.druid.bvt.sql.oracle; + +import com.alibaba.druid.sql.SQLUtils; +import com.alibaba.druid.util.JdbcUtils; + +import junit.framework.TestCase; + +public class OracleFormatTest2 extends TestCase { + + public void test_formatOracle() throws Exception { + String text = "SELECT count(*) FROM T1, (SELECT DISTINCT parent_id AS parentId FROM T2 a1 WHERE FSEQ IN (?) AND NOT order_from = ? AND status IN (?) ) b WHERE ID = b.parentId AND GMT_CREATE >= to_date(?, ?) AND GMT_CREATE <= to_date(?, ?)"; + + String formatedText = SQLUtils.format(text, JdbcUtils.ORACLE); + System.out.println(formatedText); + } +} diff --git a/src/test/java/com/alibaba/druid/bvt/sql/postgresql/PGFormatTest.java b/src/test/java/com/alibaba/druid/bvt/sql/postgresql/PGFormatTest.java new file mode 100644 index 0000000000..e6f898ff55 --- /dev/null +++ b/src/test/java/com/alibaba/druid/bvt/sql/postgresql/PGFormatTest.java @@ -0,0 +1,20 @@ +package com.alibaba.druid.bvt.sql.postgresql; + +import junit.framework.Assert; +import junit.framework.TestCase; + +import com.alibaba.druid.sql.SQLUtils; +import com.alibaba.druid.util.JdbcUtils; + +public class PGFormatTest extends TestCase { + + public void test_0() throws Exception { + String sql = "CREATE TABLE foo (fooid int, foosubid int, fooname text);"; + String formatedSql = SQLUtils.format(sql, JdbcUtils.POSTGRESQL); + Assert.assertEquals("CREATE TABLE foo (\n" + // + "\tfooid int, \n" + // + "\tfoosubid int, \n" + // + "\tfooname text\n" + // + ")", formatedSql); + } +} diff --git a/src/test/java/com/alibaba/druid/bvt/sql/postgresql/PGSelectTest1.java b/src/test/java/com/alibaba/druid/bvt/sql/postgresql/PGSelectTest1.java new file mode 100644 index 0000000000..fa6a39e172 --- /dev/null +++ b/src/test/java/com/alibaba/druid/bvt/sql/postgresql/PGSelectTest1.java @@ -0,0 +1,41 @@ +package com.alibaba.druid.bvt.sql.postgresql; + +import java.util.List; + +import junit.framework.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; + +public class PGSelectTest1 extends PGTest { + + public void test_0() throws Exception { + String sql = "SELECT * FROM t1 CROSS JOIN t2;"; + + 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()); + System.out.println("coditions : " + visitor.getConditions()); + + Assert.assertEquals(0, visitor.getColumns().size()); + Assert.assertEquals(2, visitor.getTables().size()); + } + +} + +// select categoryId , offerIds from cnres.function_select_get_spt_p4p_offer_list (' 1031918 , 1031919 , 1037004 ') as +// a(categoryId numeric,offerIds character varying(4000)) +// select memberId , offerIds from cnres.function_select_get_seller_hot_offer_list('\'gzyyd168\'') as a(memberId +// character varying(20),offerIds character varying(4000)) + diff --git a/src/test/java/com/alibaba/druid/bvt/sql/postgresql/PGSelectTest2.java b/src/test/java/com/alibaba/druid/bvt/sql/postgresql/PGSelectTest2.java new file mode 100644 index 0000000000..77e92c775c --- /dev/null +++ b/src/test/java/com/alibaba/druid/bvt/sql/postgresql/PGSelectTest2.java @@ -0,0 +1,41 @@ +package com.alibaba.druid.bvt.sql.postgresql; + +import java.util.List; + +import junit.framework.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; + +public class PGSelectTest2 extends PGTest { + + public void test_0() throws Exception { + String sql = "SELECT * FROM t1 NATURAL INNER JOIN t2;"; + + 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()); + System.out.println("coditions : " + visitor.getConditions()); + + Assert.assertEquals(0, visitor.getColumns().size()); + Assert.assertEquals(2, visitor.getTables().size()); + } + +} + +// select categoryId , offerIds from cnres.function_select_get_spt_p4p_offer_list (' 1031918 , 1031919 , 1037004 ') as +// a(categoryId numeric,offerIds character varying(4000)) +// select memberId , offerIds from cnres.function_select_get_seller_hot_offer_list('\'gzyyd168\'') as a(memberId +// character varying(20),offerIds character varying(4000)) +