From 84f30ff2edf6aed744a7a0c7aa3bccde1d0a079f Mon Sep 17 00:00:00 2001 From: wenshao Date: Sat, 2 Feb 2013 15:53:36 +0800 Subject: [PATCH] add PagerUtils oracle support --- .../sql/PagerUtilsTest_Count_Oracle_0.java | 54 ++++++++++++++ .../bvt/sql/PagerUtilsTest_Count_PG_0.java | 54 ++++++++++++++ .../sql/PagerUtilsTest_Count_SQLServer_0.java | 54 ++++++++++++++ .../sql/PagerUtilsTest_Limit_oracle_0.java | 70 +++++++++++++++++++ 4 files changed, 232 insertions(+) create mode 100644 src/test/java/com/alibaba/druid/bvt/sql/PagerUtilsTest_Count_Oracle_0.java create mode 100644 src/test/java/com/alibaba/druid/bvt/sql/PagerUtilsTest_Count_PG_0.java create mode 100644 src/test/java/com/alibaba/druid/bvt/sql/PagerUtilsTest_Count_SQLServer_0.java create mode 100644 src/test/java/com/alibaba/druid/bvt/sql/PagerUtilsTest_Limit_oracle_0.java diff --git a/src/test/java/com/alibaba/druid/bvt/sql/PagerUtilsTest_Count_Oracle_0.java b/src/test/java/com/alibaba/druid/bvt/sql/PagerUtilsTest_Count_Oracle_0.java new file mode 100644 index 0000000000..8d5384b978 --- /dev/null +++ b/src/test/java/com/alibaba/druid/bvt/sql/PagerUtilsTest_Count_Oracle_0.java @@ -0,0 +1,54 @@ +package com.alibaba.druid.bvt.sql; + +import junit.framework.TestCase; + +import org.junit.Assert; + +import com.alibaba.druid.sql.PagerUtils; +import com.alibaba.druid.util.JdbcConstants; + +public class PagerUtilsTest_Count_Oracle_0 extends TestCase { + + public void test_oracle_0() throws Exception { + String sql = "select * from t"; + String result = PagerUtils.count(sql, JdbcConstants.ORACLE); + Assert.assertEquals("SELECT COUNT(*)\n" + // + "FROM t", result); + } + + public void test_oracle_1() throws Exception { + String sql = "select id, name from t"; + String result = PagerUtils.count(sql, JdbcConstants.ORACLE); + Assert.assertEquals("SELECT COUNT(*)\n" + // + "FROM t", result); + } + + public void test_oracle_2() throws Exception { + String sql = "select id, name from t order by id"; + String result = PagerUtils.count(sql, JdbcConstants.ORACLE); + Assert.assertEquals("SELECT COUNT(*)\n" + // + "FROM t", result); + } + + public void test_oracle_group_0() throws Exception { + String sql = "select type, count(*) from t group by type"; + String result = PagerUtils.count(sql, JdbcConstants.ORACLE); + Assert.assertEquals("SELECT COUNT(*)" + // + "\nFROM (SELECT type, COUNT(*)" + // + "\n\tFROM t" + // + "\n\tGROUP BY type" + // + "\n\t)", result); + } + + public void test_oracle_union_0() throws Exception { + String sql = "select id, name from t1 union select id, name from t2 order by id"; + String result = PagerUtils.count(sql, JdbcConstants.ORACLE); + Assert.assertEquals("SELECT COUNT(*)\n" + // + "FROM (SELECT id, name" + // + "\n\tFROM t1" + // + "\n\tUNION" + // + "\n\tSELECT id, name" + // + "\n\tFROM t2" + // + "\n\t)", result); + } +} diff --git a/src/test/java/com/alibaba/druid/bvt/sql/PagerUtilsTest_Count_PG_0.java b/src/test/java/com/alibaba/druid/bvt/sql/PagerUtilsTest_Count_PG_0.java new file mode 100644 index 0000000000..fdc02bba67 --- /dev/null +++ b/src/test/java/com/alibaba/druid/bvt/sql/PagerUtilsTest_Count_PG_0.java @@ -0,0 +1,54 @@ +package com.alibaba.druid.bvt.sql; + +import junit.framework.TestCase; + +import org.junit.Assert; + +import com.alibaba.druid.sql.PagerUtils; +import com.alibaba.druid.util.JdbcConstants; + +public class PagerUtilsTest_Count_PG_0 extends TestCase { + + public void test_pg_0() throws Exception { + String sql = "select * from t"; + String result = PagerUtils.count(sql, JdbcConstants.POSTGRESQL); + Assert.assertEquals("SELECT COUNT(*)\n" + // + "FROM t", result); + } + + public void test_pg_1() throws Exception { + String sql = "select id, name from t"; + String result = PagerUtils.count(sql, JdbcConstants.POSTGRESQL); + Assert.assertEquals("SELECT COUNT(*)\n" + // + "FROM t", result); + } + + public void test_pg_2() throws Exception { + String sql = "select id, name from t order by id"; + String result = PagerUtils.count(sql, JdbcConstants.POSTGRESQL); + Assert.assertEquals("SELECT COUNT(*)\n" + // + "FROM t", result); + } + + public void test_pg_group_0() throws Exception { + String sql = "select type, count(*) from t group by type"; + String result = PagerUtils.count(sql, JdbcConstants.POSTGRESQL); + Assert.assertEquals("SELECT COUNT(*)" + // + "\nFROM (SELECT type, COUNT(*)" + // + "\n\tFROM t" + // + "\n\tGROUP BY type" + // + "\n\t)", result); + } + + public void test_pg_union_0() throws Exception { + String sql = "select id, name from t1 union select id, name from t2 order by id"; + String result = PagerUtils.count(sql, JdbcConstants.POSTGRESQL); + Assert.assertEquals("SELECT COUNT(*)\n" + // + "FROM (SELECT id, name" + // + "\n\tFROM t1" + // + "\n\tUNION" + // + "\n\tSELECT id, name" + // + "\n\tFROM t2" + // + "\n\t)", result); + } +} diff --git a/src/test/java/com/alibaba/druid/bvt/sql/PagerUtilsTest_Count_SQLServer_0.java b/src/test/java/com/alibaba/druid/bvt/sql/PagerUtilsTest_Count_SQLServer_0.java new file mode 100644 index 0000000000..2d64e340b2 --- /dev/null +++ b/src/test/java/com/alibaba/druid/bvt/sql/PagerUtilsTest_Count_SQLServer_0.java @@ -0,0 +1,54 @@ +package com.alibaba.druid.bvt.sql; + +import junit.framework.TestCase; + +import org.junit.Assert; + +import com.alibaba.druid.sql.PagerUtils; +import com.alibaba.druid.util.JdbcConstants; + +public class PagerUtilsTest_Count_SQLServer_0 extends TestCase { + + public void test_sqlserver_0() throws Exception { + String sql = "select * from t"; + String result = PagerUtils.count(sql, JdbcConstants.SQL_SERVER); + Assert.assertEquals("SELECT COUNT(*)\n" + // + "FROM t", result); + } + + public void test_sqlserver_1() throws Exception { + String sql = "select id, name from t"; + String result = PagerUtils.count(sql, JdbcConstants.SQL_SERVER); + Assert.assertEquals("SELECT COUNT(*)\n" + // + "FROM t", result); + } + + public void test_sqlserver_2() throws Exception { + String sql = "select id, name from t order by id"; + String result = PagerUtils.count(sql, JdbcConstants.SQL_SERVER); + Assert.assertEquals("SELECT COUNT(*)\n" + // + "FROM t", result); + } + + public void test_sqlserver_group_0() throws Exception { + String sql = "select type, count(*) from t group by type"; + String result = PagerUtils.count(sql, JdbcConstants.SQL_SERVER); + Assert.assertEquals("SELECT COUNT(*)" + // + "\nFROM (SELECT type, COUNT(*)" + // + "\n\tFROM t" + // + "\n\tGROUP BY type" + // + "\n\t)", result); + } + + public void test_sqlserver_union_0() throws Exception { + String sql = "select id, name from t1 union select id, name from t2 order by id"; + String result = PagerUtils.count(sql, JdbcConstants.SQL_SERVER); + Assert.assertEquals("SELECT COUNT(*)\n" + // + "FROM (SELECT id, name" + // + "\n\tFROM t1" + // + "\n\tUNION" + // + "\n\tSELECT id, name" + // + "\n\tFROM t2" + // + "\n\t)", result); + } +} diff --git a/src/test/java/com/alibaba/druid/bvt/sql/PagerUtilsTest_Limit_oracle_0.java b/src/test/java/com/alibaba/druid/bvt/sql/PagerUtilsTest_Limit_oracle_0.java new file mode 100644 index 0000000000..6481dca199 --- /dev/null +++ b/src/test/java/com/alibaba/druid/bvt/sql/PagerUtilsTest_Limit_oracle_0.java @@ -0,0 +1,70 @@ +package com.alibaba.druid.bvt.sql; + +import junit.framework.TestCase; + +import org.junit.Assert; + +import com.alibaba.druid.sql.PagerUtils; +import com.alibaba.druid.util.JdbcConstants; + +public class PagerUtilsTest_Limit_oracle_0 extends TestCase { + + public void test_oracle_oderby_0() throws Exception { + String sql = "select * from t order by id"; + String result = PagerUtils.limit(sql, JdbcConstants.ORACLE, 0, 10); + Assert.assertEquals("SELECT _X.*, ROWNUM AS _RN" + // + "\nFROM (SELECT *" + // + "\n\tFROM t" + // + "\n\tORDER BY id" + // + "\n\t) _X" + // + "\nWHERE ROWNUM <= 10", result); + } + + public void test_oracle_0() throws Exception { + String sql = "select * from t"; + String result = PagerUtils.limit(sql, JdbcConstants.ORACLE, 0, 10); + Assert.assertEquals("SELECT *" + // + "\nFROM t" + // + "\nWHERE ROWNUM <= 10", result); + } + + public void test_oracle_1() throws Exception { + String sql = "select * from t"; + String result = PagerUtils.limit(sql, JdbcConstants.ORACLE, 10, 10); + Assert.assertEquals("SELECT *" + // + "\nFROM (SELECT _X.*, ROWNUM AS _RN" + // + "\n\tFROM (SELECT *" + // + "\n\t\tFROM t" + // + "\n\t\t) _X" + // + "\n\tWHERE ROWNUM <= 20" + // + "\n\t) _XX" + // + "\nWHERE _RN > 10", result); + } + + public void test_oracle_2() throws Exception { + String sql = "select * from t"; + String result = PagerUtils.limit(sql, JdbcConstants.ORACLE, 20, 10); + Assert.assertEquals("SELECT *" + // + "\nFROM (SELECT _X.*, ROWNUM AS _RN" + // + "\n\tFROM (SELECT *" + // + "\n\t\tFROM t" + // + "\n\t\t) _X" + // + "\n\tWHERE ROWNUM <= 30" + // + "\n\t) _XX" + // + "\nWHERE _RN > 20", result); + } + + public void test_oracle_3() throws Exception { + String sql = "select id, name, salary from t order by id, name"; + String result = PagerUtils.limit(sql, JdbcConstants.ORACLE, 20, 10); + Assert.assertEquals("SELECT *" + // + "\nFROM (SELECT _X.*, ROWNUM AS _RN" + // + "\n\tFROM (SELECT id, name, salary" + // + "\n\t\tFROM t" + // + "\n\t\tORDER BY id, name" + // + "\n\t\t) _X" + // + "\n\tWHERE ROWNUM <= 30" + // + "\n\t) _XX" + // + "\nWHERE _RN > 20", result); + } +}