Loading sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/integrate/sql/sqlserver/SQLServerSQLTestSQL.java +3 −3 Original line number Diff line number Diff line Loading @@ -22,10 +22,10 @@ import com.dangdang.ddframe.rdb.integrate.sql.AbstractDatabaseTestSQL; public final class SQLServerSQLTestSQL extends AbstractDatabaseTestSQL { private static final String SELECT_LIMIT_WITH_BINDING_TABLE_SQL = "SELECT * FROM" + " (SELECT TOP (%s) row_number() OVER (ORDER BY i.item_id DESC) AS rownum_, o.order_id as order_id, o.status as status, o.user_id as user_id" + " (SELECT TOP (%s) row_number() OVER (ORDER BY i.item_id DESC) AS rownum, o.order_id as order_id, o.status as status, o.user_id as user_id" + " FROM t_order o JOIN t_order_item i ON o.user_id = i.user_id AND o.order_id = i.order_id" + " WHERE o.user_id IN (%s, %s) AND o.order_id BETWEEN %s AND %s) AS row_" + " WHERE row_.rownum_ > %s"; + " WHERE o.user_id IN (%s, %s) AND o.order_id BETWEEN %s AND %s ORDER BY i.item_id DESC) AS row_" + " WHERE row_.rownum > %s"; @Override public String getSelectLimitWithBindingTableSql() { Loading sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/integrate/tbl/pstatement/ShardingTablesOnlyForPreparedStatementWithSelectTest.java +9 −5 Original line number Diff line number Diff line Loading @@ -72,6 +72,14 @@ public final class ShardingTablesOnlyForPreparedStatementWithSelectTest extends @Test public void assertSelectLimitWithBindingTable() throws SQLException, DatabaseUnitException { if (SQLServer.name().equalsIgnoreCase(currentDbType())) { String expectedDataSetFile = TABLE_ONLY_PREFIX + "/expect/select/sqlserver/SelectLimitWithBindingTable.xml"; assertDataSet(expectedDataSetFile, getShardingDataSource().getConnection(), "t_order_item", replacePreparedStatement(getDatabaseTestSQL().getSelectLimitWithBindingTableSql()), 2, 10, 19, 1000, 1909, 2); assertDataSet("integrate/dataset/Empty.xml", getShardingDataSource().getConnection(), "t_order_item", replacePreparedStatement(getDatabaseTestSQL().getSelectLimitWithBindingTableSql()), 2, 10, 19, 1000, 1909, 20); return; } if (PostgreSQL.name().equalsIgnoreCase(currentDbType())) { String expectedDataSetFile = TABLE_ONLY_PREFIX + "/expect/select/postgresql/SelectLimitWithBindingTable.xml"; assertDataSet(expectedDataSetFile, getShardingDataSource().getConnection(), Loading @@ -80,17 +88,13 @@ public final class ShardingTablesOnlyForPreparedStatementWithSelectTest extends String expectedDataSetFile = TABLE_ONLY_PREFIX + "/expect/select/oracle/SelectLimitWithBindingTable.xml"; assertDataSet(expectedDataSetFile, getShardingDataSource().getConnection(), "t_order_item", replacePreparedStatement(getDatabaseTestSQL().getSelectLimitWithBindingTableSql()), 10, 19, 1000, 1909, 2, 2); } else if (SQLServer.name().equalsIgnoreCase(currentDbType())) { String expectedDataSetFile = TABLE_ONLY_PREFIX + "/expect/select/sqlserver/SelectLimitWithBindingTable.xml"; assertDataSet(expectedDataSetFile, getShardingDataSource().getConnection(), "t_order_item", replacePreparedStatement(getDatabaseTestSQL().getSelectLimitWithBindingTableSql()), 2, 10, 19, 1000, 1909, 2); } else { String expectedDataSetFile = TABLE_ONLY_PREFIX + "/expect/select/SelectLimitWithBindingTable.xml"; assertDataSet(expectedDataSetFile, getShardingDataSource().getConnection(), "t_order_item", replacePreparedStatement(getDatabaseTestSQL().getSelectLimitWithBindingTableSql()), 10, 19, 1000, 1909, 2, 2); } assertDataSet("integrate/dataset/Empty.xml", getShardingDataSource().getConnection(), "t_order_item", replacePreparedStatement(getDatabaseTestSQL().getSelectLimitWithBindingTableSql()), 10, 19, 1000, 1909, 1000, 2000); "t_order_item", replacePreparedStatement(getDatabaseTestSQL().getSelectLimitWithBindingTableSql()), 10, 19, 1000, 1909, 100, 200); } @Test Loading Loading
sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/integrate/sql/sqlserver/SQLServerSQLTestSQL.java +3 −3 Original line number Diff line number Diff line Loading @@ -22,10 +22,10 @@ import com.dangdang.ddframe.rdb.integrate.sql.AbstractDatabaseTestSQL; public final class SQLServerSQLTestSQL extends AbstractDatabaseTestSQL { private static final String SELECT_LIMIT_WITH_BINDING_TABLE_SQL = "SELECT * FROM" + " (SELECT TOP (%s) row_number() OVER (ORDER BY i.item_id DESC) AS rownum_, o.order_id as order_id, o.status as status, o.user_id as user_id" + " (SELECT TOP (%s) row_number() OVER (ORDER BY i.item_id DESC) AS rownum, o.order_id as order_id, o.status as status, o.user_id as user_id" + " FROM t_order o JOIN t_order_item i ON o.user_id = i.user_id AND o.order_id = i.order_id" + " WHERE o.user_id IN (%s, %s) AND o.order_id BETWEEN %s AND %s) AS row_" + " WHERE row_.rownum_ > %s"; + " WHERE o.user_id IN (%s, %s) AND o.order_id BETWEEN %s AND %s ORDER BY i.item_id DESC) AS row_" + " WHERE row_.rownum > %s"; @Override public String getSelectLimitWithBindingTableSql() { Loading
sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/integrate/tbl/pstatement/ShardingTablesOnlyForPreparedStatementWithSelectTest.java +9 −5 Original line number Diff line number Diff line Loading @@ -72,6 +72,14 @@ public final class ShardingTablesOnlyForPreparedStatementWithSelectTest extends @Test public void assertSelectLimitWithBindingTable() throws SQLException, DatabaseUnitException { if (SQLServer.name().equalsIgnoreCase(currentDbType())) { String expectedDataSetFile = TABLE_ONLY_PREFIX + "/expect/select/sqlserver/SelectLimitWithBindingTable.xml"; assertDataSet(expectedDataSetFile, getShardingDataSource().getConnection(), "t_order_item", replacePreparedStatement(getDatabaseTestSQL().getSelectLimitWithBindingTableSql()), 2, 10, 19, 1000, 1909, 2); assertDataSet("integrate/dataset/Empty.xml", getShardingDataSource().getConnection(), "t_order_item", replacePreparedStatement(getDatabaseTestSQL().getSelectLimitWithBindingTableSql()), 2, 10, 19, 1000, 1909, 20); return; } if (PostgreSQL.name().equalsIgnoreCase(currentDbType())) { String expectedDataSetFile = TABLE_ONLY_PREFIX + "/expect/select/postgresql/SelectLimitWithBindingTable.xml"; assertDataSet(expectedDataSetFile, getShardingDataSource().getConnection(), Loading @@ -80,17 +88,13 @@ public final class ShardingTablesOnlyForPreparedStatementWithSelectTest extends String expectedDataSetFile = TABLE_ONLY_PREFIX + "/expect/select/oracle/SelectLimitWithBindingTable.xml"; assertDataSet(expectedDataSetFile, getShardingDataSource().getConnection(), "t_order_item", replacePreparedStatement(getDatabaseTestSQL().getSelectLimitWithBindingTableSql()), 10, 19, 1000, 1909, 2, 2); } else if (SQLServer.name().equalsIgnoreCase(currentDbType())) { String expectedDataSetFile = TABLE_ONLY_PREFIX + "/expect/select/sqlserver/SelectLimitWithBindingTable.xml"; assertDataSet(expectedDataSetFile, getShardingDataSource().getConnection(), "t_order_item", replacePreparedStatement(getDatabaseTestSQL().getSelectLimitWithBindingTableSql()), 2, 10, 19, 1000, 1909, 2); } else { String expectedDataSetFile = TABLE_ONLY_PREFIX + "/expect/select/SelectLimitWithBindingTable.xml"; assertDataSet(expectedDataSetFile, getShardingDataSource().getConnection(), "t_order_item", replacePreparedStatement(getDatabaseTestSQL().getSelectLimitWithBindingTableSql()), 10, 19, 1000, 1909, 2, 2); } assertDataSet("integrate/dataset/Empty.xml", getShardingDataSource().getConnection(), "t_order_item", replacePreparedStatement(getDatabaseTestSQL().getSelectLimitWithBindingTableSql()), 10, 19, 1000, 1909, 1000, 2000); "t_order_item", replacePreparedStatement(getDatabaseTestSQL().getSelectLimitWithBindingTableSql()), 10, 19, 1000, 1909, 100, 200); } @Test Loading