From abbf31d5d7e673fc53a6d889c8dec71319224ca7 Mon Sep 17 00:00:00 2001 From: melin Date: Mon, 29 Jul 2013 11:25:53 +0800 Subject: [PATCH 1/3] =?UTF-8?q?mysql=20count=E8=AF=AD=E5=8F=A5=E9=9C=80?= =?UTF-8?q?=E8=A6=81=E6=B7=BB=E5=8A=A0=E5=88=AB=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/alibaba/druid/sql/PagerUtils.java | 4 +- .../bvt/sql/PagerUtilsTest_Count_MySql_0.java | 108 +++++++++--------- .../sql/PagerUtilsTest_Count_Oracle_0.java | 108 +++++++++--------- .../bvt/sql/PagerUtilsTest_Count_PG_0.java | 108 +++++++++--------- .../sql/PagerUtilsTest_Count_SQLServer_0.java | 108 +++++++++--------- .../bvt/sql/PagerUtilsTest_Limit_db2_0.java | 106 ++++++++--------- 6 files changed, 272 insertions(+), 270 deletions(-) diff --git a/src/main/java/com/alibaba/druid/sql/PagerUtils.java b/src/main/java/com/alibaba/druid/sql/PagerUtils.java index 89e429c4b8..dc0c07f6e6 100644 --- a/src/main/java/com/alibaba/druid/sql/PagerUtils.java +++ b/src/main/java/com/alibaba/druid/sql/PagerUtils.java @@ -284,7 +284,9 @@ public class PagerUtils { SQLSelectItem countItem = createCountItem(dbType); countSelectQuery.getSelectList().add(countItem); - countSelectQuery.setFrom(new SQLSubqueryTableSource(select)); + SQLSubqueryTableSource fromSubquery = new SQLSubqueryTableSource(select); + fromSubquery.setAlias("ALIAS_COUNT_TABLE"); + countSelectQuery.setFrom(fromSubquery); SQLSelect countSelect = new SQLSelect(countSelectQuery); SQLSelectStatement countStmt = new SQLSelectStatement(countSelect); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/PagerUtilsTest_Count_MySql_0.java b/src/test/java/com/alibaba/druid/bvt/sql/PagerUtilsTest_Count_MySql_0.java index 4ca0b17534..e6cf92bf6c 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/PagerUtilsTest_Count_MySql_0.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/PagerUtilsTest_Count_MySql_0.java @@ -1,54 +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_MySql_0 extends TestCase { - - public void test_mysql_0() throws Exception { - String sql = "select * from t"; - String result = PagerUtils.count(sql, JdbcConstants.MYSQL); - Assert.assertEquals("SELECT COUNT(*)\n" + // - "FROM t", result); - } - - public void test_mysql_1() throws Exception { - String sql = "select id, name from t"; - String result = PagerUtils.count(sql, JdbcConstants.MYSQL); - Assert.assertEquals("SELECT COUNT(*)\n" + // - "FROM t", result); - } - - public void test_mysql_2() throws Exception { - String sql = "select id, name from t order by id"; - String result = PagerUtils.count(sql, JdbcConstants.MYSQL); - Assert.assertEquals("SELECT COUNT(*)\n" + // - "FROM t", result); - } - - public void test_mysql_group_0() throws Exception { - String sql = "select type, count(*) from t group by type"; - String result = PagerUtils.count(sql, JdbcConstants.MYSQL); - Assert.assertEquals("SELECT COUNT(*)" + // - "\nFROM (SELECT type, COUNT(*)" + // - "\n\tFROM t" + // - "\n\tGROUP BY type" + // - "\n\t)", result); - } - - public void test_mysql_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.MYSQL); - Assert.assertEquals("SELECT COUNT(*)\n" + // - "FROM (SELECT id, name" + // - "\n\tFROM t1" + // - "\n\tUNION" + // - "\n\tSELECT id, name" + // - "\n\tFROM t2" + // - "\n\t)", result); - } -} +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_MySql_0 extends TestCase { + + public void test_mysql_0() throws Exception { + String sql = "select * from t"; + String result = PagerUtils.count(sql, JdbcConstants.MYSQL); + Assert.assertEquals("SELECT COUNT(*)\n" + // + "FROM t", result); + } + + public void test_mysql_1() throws Exception { + String sql = "select id, name from t"; + String result = PagerUtils.count(sql, JdbcConstants.MYSQL); + Assert.assertEquals("SELECT COUNT(*)\n" + // + "FROM t", result); + } + + public void test_mysql_2() throws Exception { + String sql = "select id, name from t order by id"; + String result = PagerUtils.count(sql, JdbcConstants.MYSQL); + Assert.assertEquals("SELECT COUNT(*)\n" + // + "FROM t", result); + } + + public void test_mysql_group_0() throws Exception { + String sql = "select type, count(*) from t group by type"; + String result = PagerUtils.count(sql, JdbcConstants.MYSQL); + Assert.assertEquals("SELECT COUNT(*)" + // + "\nFROM (SELECT type, COUNT(*)" + // + "\n\tFROM t" + // + "\n\tGROUP BY type" + // + "\n\t) ALIAS_COUNT_TABLE", result); + } + + public void test_mysql_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.MYSQL); + Assert.assertEquals("SELECT COUNT(*)\n" + // + "FROM (SELECT id, name" + // + "\n\tFROM t1" + // + "\n\tUNION" + // + "\n\tSELECT id, name" + // + "\n\tFROM t2" + // + "\n\t) ALIAS_COUNT_TABLE", result); + } +} 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 index 8d5384b978..f7936bc993 100644 --- 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 @@ -1,54 +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); - } -} +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) ALIAS_COUNT_TABLE", 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) ALIAS_COUNT_TABLE", 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 index fdc02bba67..8a31be57b4 100644 --- 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 @@ -1,54 +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); - } -} +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) ALIAS_COUNT_TABLE", 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) ALIAS_COUNT_TABLE", 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 index 2d64e340b2..88050020b6 100644 --- 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 @@ -1,54 +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); - } -} +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) ALIAS_COUNT_TABLE", 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) ALIAS_COUNT_TABLE", result); + } +} diff --git a/src/test/java/com/alibaba/druid/bvt/sql/PagerUtilsTest_Limit_db2_0.java b/src/test/java/com/alibaba/druid/bvt/sql/PagerUtilsTest_Limit_db2_0.java index d59158a1fa..25f58efcb9 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/PagerUtilsTest_Limit_db2_0.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/PagerUtilsTest_Limit_db2_0.java @@ -1,53 +1,53 @@ -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_db2_0 extends TestCase { - - public void test_mysql_0() throws Exception { - String sql = "select * from t"; - String result = PagerUtils.limit(sql, JdbcConstants.DB2, 0, 10); - Assert.assertEquals("SELECT *" + // - "\nFROM t" + // - "\nFETCH FIRST 10 ROWS ONLY", result); - } - - public void test_mysql_1() throws Exception { - String sql = "select * from t"; - String result = PagerUtils.limit(sql, JdbcConstants.DB2, 10, 10); - Assert.assertEquals("SELECT *"// - + "\nFROM (SELECT *, ROW_NUMBER() AS ROWNUM"// - + "\n\tFROM t"// - + "\n\t) XX"// - + "\nWHERE ROWNUM > 10"// - + "\n\tAND ROWNUM <= 20", result); - } - - public void test_mysql_2() throws Exception { - String sql = "select * from t where age > 100"; - String result = PagerUtils.limit(sql, JdbcConstants.DB2, 20, 10); - Assert.assertEquals("SELECT *"// - + "\nFROM (SELECT *, ROW_NUMBER() AS ROWNUM"// - + "\n\tFROM t"// - + "\n\tWHERE age > 100"// - + "\n\t) XX"// - + "\nWHERE ROWNUM > 20"// - + "\n\tAND ROWNUM <= 30", result); - } - - public void test_mysql_3() throws Exception { - String sql = "select id, name, salary from t order by id, name"; - String result = PagerUtils.limit(sql, JdbcConstants.DB2, 20, 10); - Assert.assertEquals("SELECT *"// - + "\nFROM (SELECT id, name, salary, ROW_NUMBER() OVER (ORDER BY id, name) AS ROWNUM"// - + "\n\tFROM t"// - + "\n\t) XX"// - + "\nWHERE ROWNUM > 20"// - + "\n\tAND ROWNUM <= 30", result); - } -} +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_db2_0 extends TestCase { + + public void test_mysql_0() throws Exception { + String sql = "select * from t"; + String result = PagerUtils.limit(sql, JdbcConstants.DB2, 0, 10); + Assert.assertEquals("SELECT *" + // + "\nFROM t" + // + "\nFETCH FIRST 10 ROWS ONLY", result); + } + + public void test_mysql_1() throws Exception { + String sql = "select * from t"; + String result = PagerUtils.limit(sql, JdbcConstants.DB2, 10, 10); + Assert.assertEquals("SELECT *"// + + "\nFROM (SELECT *, ROW_NUMBER() OVER () AS ROWNUM"// + + "\n\tFROM t"// + + "\n\t) XX"// + + "\nWHERE ROWNUM > 10"// + + "\n\tAND ROWNUM <= 20", result); + } + + public void test_mysql_2() throws Exception { + String sql = "select * from t where age > 100"; + String result = PagerUtils.limit(sql, JdbcConstants.DB2, 20, 10); + Assert.assertEquals("SELECT *"// + + "\nFROM (SELECT *, ROW_NUMBER() OVER () AS ROWNUM"// + + "\n\tFROM t"// + + "\n\tWHERE age > 100"// + + "\n\t) XX"// + + "\nWHERE ROWNUM > 20"// + + "\n\tAND ROWNUM <= 30", result); + } + + public void test_mysql_3() throws Exception { + String sql = "select id, name, salary from t order by id, name"; + String result = PagerUtils.limit(sql, JdbcConstants.DB2, 20, 10); + Assert.assertEquals("SELECT *"// + + "\nFROM (SELECT id, name, salary, ROW_NUMBER() OVER (ORDER BY id, name) AS ROWNUM"// + + "\n\tFROM t"// + + "\n\t) XX"// + + "\nWHERE ROWNUM > 20"// + + "\n\tAND ROWNUM <= 30", result); + } +} From 811d0880614864d47221f5659cca03984a46ac4e Mon Sep 17 00:00:00 2001 From: melin Date: Mon, 29 Jul 2013 11:31:30 +0800 Subject: [PATCH 2/3] =?UTF-8?q?Revert=20"mysql=20count=E8=AF=AD=E5=8F=A5?= =?UTF-8?q?=E9=9C=80=E8=A6=81=E6=B7=BB=E5=8A=A0=E5=88=AB=E5=90=8D"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit abbf31d5d7e673fc53a6d889c8dec71319224ca7. --- .../com/alibaba/druid/sql/PagerUtils.java | 4 +- .../bvt/sql/PagerUtilsTest_Count_MySql_0.java | 108 +++++++++--------- .../sql/PagerUtilsTest_Count_Oracle_0.java | 108 +++++++++--------- .../bvt/sql/PagerUtilsTest_Count_PG_0.java | 108 +++++++++--------- .../sql/PagerUtilsTest_Count_SQLServer_0.java | 108 +++++++++--------- .../bvt/sql/PagerUtilsTest_Limit_db2_0.java | 106 ++++++++--------- 6 files changed, 270 insertions(+), 272 deletions(-) diff --git a/src/main/java/com/alibaba/druid/sql/PagerUtils.java b/src/main/java/com/alibaba/druid/sql/PagerUtils.java index dc0c07f6e6..89e429c4b8 100644 --- a/src/main/java/com/alibaba/druid/sql/PagerUtils.java +++ b/src/main/java/com/alibaba/druid/sql/PagerUtils.java @@ -284,9 +284,7 @@ public class PagerUtils { SQLSelectItem countItem = createCountItem(dbType); countSelectQuery.getSelectList().add(countItem); - SQLSubqueryTableSource fromSubquery = new SQLSubqueryTableSource(select); - fromSubquery.setAlias("ALIAS_COUNT_TABLE"); - countSelectQuery.setFrom(fromSubquery); + countSelectQuery.setFrom(new SQLSubqueryTableSource(select)); SQLSelect countSelect = new SQLSelect(countSelectQuery); SQLSelectStatement countStmt = new SQLSelectStatement(countSelect); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/PagerUtilsTest_Count_MySql_0.java b/src/test/java/com/alibaba/druid/bvt/sql/PagerUtilsTest_Count_MySql_0.java index e6cf92bf6c..4ca0b17534 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/PagerUtilsTest_Count_MySql_0.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/PagerUtilsTest_Count_MySql_0.java @@ -1,54 +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_MySql_0 extends TestCase { - - public void test_mysql_0() throws Exception { - String sql = "select * from t"; - String result = PagerUtils.count(sql, JdbcConstants.MYSQL); - Assert.assertEquals("SELECT COUNT(*)\n" + // - "FROM t", result); - } - - public void test_mysql_1() throws Exception { - String sql = "select id, name from t"; - String result = PagerUtils.count(sql, JdbcConstants.MYSQL); - Assert.assertEquals("SELECT COUNT(*)\n" + // - "FROM t", result); - } - - public void test_mysql_2() throws Exception { - String sql = "select id, name from t order by id"; - String result = PagerUtils.count(sql, JdbcConstants.MYSQL); - Assert.assertEquals("SELECT COUNT(*)\n" + // - "FROM t", result); - } - - public void test_mysql_group_0() throws Exception { - String sql = "select type, count(*) from t group by type"; - String result = PagerUtils.count(sql, JdbcConstants.MYSQL); - Assert.assertEquals("SELECT COUNT(*)" + // - "\nFROM (SELECT type, COUNT(*)" + // - "\n\tFROM t" + // - "\n\tGROUP BY type" + // - "\n\t) ALIAS_COUNT_TABLE", result); - } - - public void test_mysql_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.MYSQL); - Assert.assertEquals("SELECT COUNT(*)\n" + // - "FROM (SELECT id, name" + // - "\n\tFROM t1" + // - "\n\tUNION" + // - "\n\tSELECT id, name" + // - "\n\tFROM t2" + // - "\n\t) ALIAS_COUNT_TABLE", result); - } -} +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_MySql_0 extends TestCase { + + public void test_mysql_0() throws Exception { + String sql = "select * from t"; + String result = PagerUtils.count(sql, JdbcConstants.MYSQL); + Assert.assertEquals("SELECT COUNT(*)\n" + // + "FROM t", result); + } + + public void test_mysql_1() throws Exception { + String sql = "select id, name from t"; + String result = PagerUtils.count(sql, JdbcConstants.MYSQL); + Assert.assertEquals("SELECT COUNT(*)\n" + // + "FROM t", result); + } + + public void test_mysql_2() throws Exception { + String sql = "select id, name from t order by id"; + String result = PagerUtils.count(sql, JdbcConstants.MYSQL); + Assert.assertEquals("SELECT COUNT(*)\n" + // + "FROM t", result); + } + + public void test_mysql_group_0() throws Exception { + String sql = "select type, count(*) from t group by type"; + String result = PagerUtils.count(sql, JdbcConstants.MYSQL); + Assert.assertEquals("SELECT COUNT(*)" + // + "\nFROM (SELECT type, COUNT(*)" + // + "\n\tFROM t" + // + "\n\tGROUP BY type" + // + "\n\t)", result); + } + + public void test_mysql_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.MYSQL); + 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_Oracle_0.java b/src/test/java/com/alibaba/druid/bvt/sql/PagerUtilsTest_Count_Oracle_0.java index f7936bc993..8d5384b978 100644 --- 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 @@ -1,54 +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) ALIAS_COUNT_TABLE", 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) ALIAS_COUNT_TABLE", result); - } -} +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 index 8a31be57b4..fdc02bba67 100644 --- 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 @@ -1,54 +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) ALIAS_COUNT_TABLE", 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) ALIAS_COUNT_TABLE", result); - } -} +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 index 88050020b6..2d64e340b2 100644 --- 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 @@ -1,54 +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) ALIAS_COUNT_TABLE", 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) ALIAS_COUNT_TABLE", result); - } -} +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_db2_0.java b/src/test/java/com/alibaba/druid/bvt/sql/PagerUtilsTest_Limit_db2_0.java index 25f58efcb9..d59158a1fa 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/PagerUtilsTest_Limit_db2_0.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/PagerUtilsTest_Limit_db2_0.java @@ -1,53 +1,53 @@ -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_db2_0 extends TestCase { - - public void test_mysql_0() throws Exception { - String sql = "select * from t"; - String result = PagerUtils.limit(sql, JdbcConstants.DB2, 0, 10); - Assert.assertEquals("SELECT *" + // - "\nFROM t" + // - "\nFETCH FIRST 10 ROWS ONLY", result); - } - - public void test_mysql_1() throws Exception { - String sql = "select * from t"; - String result = PagerUtils.limit(sql, JdbcConstants.DB2, 10, 10); - Assert.assertEquals("SELECT *"// - + "\nFROM (SELECT *, ROW_NUMBER() OVER () AS ROWNUM"// - + "\n\tFROM t"// - + "\n\t) XX"// - + "\nWHERE ROWNUM > 10"// - + "\n\tAND ROWNUM <= 20", result); - } - - public void test_mysql_2() throws Exception { - String sql = "select * from t where age > 100"; - String result = PagerUtils.limit(sql, JdbcConstants.DB2, 20, 10); - Assert.assertEquals("SELECT *"// - + "\nFROM (SELECT *, ROW_NUMBER() OVER () AS ROWNUM"// - + "\n\tFROM t"// - + "\n\tWHERE age > 100"// - + "\n\t) XX"// - + "\nWHERE ROWNUM > 20"// - + "\n\tAND ROWNUM <= 30", result); - } - - public void test_mysql_3() throws Exception { - String sql = "select id, name, salary from t order by id, name"; - String result = PagerUtils.limit(sql, JdbcConstants.DB2, 20, 10); - Assert.assertEquals("SELECT *"// - + "\nFROM (SELECT id, name, salary, ROW_NUMBER() OVER (ORDER BY id, name) AS ROWNUM"// - + "\n\tFROM t"// - + "\n\t) XX"// - + "\nWHERE ROWNUM > 20"// - + "\n\tAND ROWNUM <= 30", result); - } -} +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_db2_0 extends TestCase { + + public void test_mysql_0() throws Exception { + String sql = "select * from t"; + String result = PagerUtils.limit(sql, JdbcConstants.DB2, 0, 10); + Assert.assertEquals("SELECT *" + // + "\nFROM t" + // + "\nFETCH FIRST 10 ROWS ONLY", result); + } + + public void test_mysql_1() throws Exception { + String sql = "select * from t"; + String result = PagerUtils.limit(sql, JdbcConstants.DB2, 10, 10); + Assert.assertEquals("SELECT *"// + + "\nFROM (SELECT *, ROW_NUMBER() AS ROWNUM"// + + "\n\tFROM t"// + + "\n\t) XX"// + + "\nWHERE ROWNUM > 10"// + + "\n\tAND ROWNUM <= 20", result); + } + + public void test_mysql_2() throws Exception { + String sql = "select * from t where age > 100"; + String result = PagerUtils.limit(sql, JdbcConstants.DB2, 20, 10); + Assert.assertEquals("SELECT *"// + + "\nFROM (SELECT *, ROW_NUMBER() AS ROWNUM"// + + "\n\tFROM t"// + + "\n\tWHERE age > 100"// + + "\n\t) XX"// + + "\nWHERE ROWNUM > 20"// + + "\n\tAND ROWNUM <= 30", result); + } + + public void test_mysql_3() throws Exception { + String sql = "select id, name, salary from t order by id, name"; + String result = PagerUtils.limit(sql, JdbcConstants.DB2, 20, 10); + Assert.assertEquals("SELECT *"// + + "\nFROM (SELECT id, name, salary, ROW_NUMBER() OVER (ORDER BY id, name) AS ROWNUM"// + + "\n\tFROM t"// + + "\n\t) XX"// + + "\nWHERE ROWNUM > 20"// + + "\n\tAND ROWNUM <= 30", result); + } +} From 3dd29c1584690894549347325ee0c86a1eb8c560 Mon Sep 17 00:00:00 2001 From: melin Date: Mon, 29 Jul 2013 11:37:29 +0800 Subject: [PATCH 3/3] =?UTF-8?q?mysql=20count=20from=E5=AD=90=E8=AF=AD?= =?UTF-8?q?=E5=8F=A5=E9=9C=80=E8=A6=81=E6=B7=BB=E5=8A=A0alias?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/alibaba/druid/sql/PagerUtils.java | 4 +++- .../alibaba/druid/bvt/sql/PagerUtilsTest_Count_MySql_0.java | 4 ++-- .../alibaba/druid/bvt/sql/PagerUtilsTest_Count_Oracle_0.java | 4 ++-- .../com/alibaba/druid/bvt/sql/PagerUtilsTest_Count_PG_0.java | 4 ++-- .../druid/bvt/sql/PagerUtilsTest_Count_SQLServer_0.java | 4 ++-- 5 files changed, 11 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/alibaba/druid/sql/PagerUtils.java b/src/main/java/com/alibaba/druid/sql/PagerUtils.java index 7fab066394..d9b8eb8867 100644 --- a/src/main/java/com/alibaba/druid/sql/PagerUtils.java +++ b/src/main/java/com/alibaba/druid/sql/PagerUtils.java @@ -323,7 +323,9 @@ public class PagerUtils { SQLSelectItem countItem = createCountItem(dbType); countSelectQuery.getSelectList().add(countItem); - countSelectQuery.setFrom(new SQLSubqueryTableSource(select)); + SQLSubqueryTableSource fromSubquery = new SQLSubqueryTableSource(select); + fromSubquery.setAlias("ALIAS_COUNT"); + countSelectQuery.setFrom(fromSubquery); SQLSelect countSelect = new SQLSelect(countSelectQuery); SQLSelectStatement countStmt = new SQLSelectStatement(countSelect); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/PagerUtilsTest_Count_MySql_0.java b/src/test/java/com/alibaba/druid/bvt/sql/PagerUtilsTest_Count_MySql_0.java index 4ca0b17534..8a2c901796 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/PagerUtilsTest_Count_MySql_0.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/PagerUtilsTest_Count_MySql_0.java @@ -37,7 +37,7 @@ public class PagerUtilsTest_Count_MySql_0 extends TestCase { "\nFROM (SELECT type, COUNT(*)" + // "\n\tFROM t" + // "\n\tGROUP BY type" + // - "\n\t)", result); + "\n\t) ALIAS_COUNT", result); } public void test_mysql_union_0() throws Exception { @@ -49,6 +49,6 @@ public class PagerUtilsTest_Count_MySql_0 extends TestCase { "\n\tUNION" + // "\n\tSELECT id, name" + // "\n\tFROM t2" + // - "\n\t)", result); + "\n\t) ALIAS_COUNT", result); } } 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 index 8d5384b978..c0858257d6 100644 --- 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 @@ -37,7 +37,7 @@ public class PagerUtilsTest_Count_Oracle_0 extends TestCase { "\nFROM (SELECT type, COUNT(*)" + // "\n\tFROM t" + // "\n\tGROUP BY type" + // - "\n\t)", result); + "\n\t) ALIAS_COUNT", result); } public void test_oracle_union_0() throws Exception { @@ -49,6 +49,6 @@ public class PagerUtilsTest_Count_Oracle_0 extends TestCase { "\n\tUNION" + // "\n\tSELECT id, name" + // "\n\tFROM t2" + // - "\n\t)", result); + "\n\t) ALIAS_COUNT", 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 index fdc02bba67..af2a7f7acf 100644 --- 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 @@ -37,7 +37,7 @@ public class PagerUtilsTest_Count_PG_0 extends TestCase { "\nFROM (SELECT type, COUNT(*)" + // "\n\tFROM t" + // "\n\tGROUP BY type" + // - "\n\t)", result); + "\n\t) ALIAS_COUNT", result); } public void test_pg_union_0() throws Exception { @@ -49,6 +49,6 @@ public class PagerUtilsTest_Count_PG_0 extends TestCase { "\n\tUNION" + // "\n\tSELECT id, name" + // "\n\tFROM t2" + // - "\n\t)", result); + "\n\t) ALIAS_COUNT", 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 index 2d64e340b2..917982e81c 100644 --- 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 @@ -37,7 +37,7 @@ public class PagerUtilsTest_Count_SQLServer_0 extends TestCase { "\nFROM (SELECT type, COUNT(*)" + // "\n\tFROM t" + // "\n\tGROUP BY type" + // - "\n\t)", result); + "\n\t) ALIAS_COUNT", result); } public void test_sqlserver_union_0() throws Exception { @@ -49,6 +49,6 @@ public class PagerUtilsTest_Count_SQLServer_0 extends TestCase { "\n\tUNION" + // "\n\tSELECT id, name" + // "\n\tFROM t2" + // - "\n\t)", result); + "\n\t) ALIAS_COUNT", result); } }