Commit 86663ceb authored by haocao's avatar haocao
Browse files

Add sqlserver top test cases.

parent bfc04ca5
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -21,8 +21,11 @@ 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 i.* 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 ORDER BY i.item_id DESC OFFSET %s LIMIT %s";
    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"
            + " 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";
    
    @Override
    public String getSelectLimitWithBindingTableSql() {
+18 −16
Original line number Diff line number Diff line
@@ -72,7 +72,6 @@ public final class ShardingTablesOnlyForPreparedStatementWithSelectTest extends
    
    @Test
    public void assertSelectLimitWithBindingTable() throws SQLException, DatabaseUnitException {
        if (!SQLServer.name().equalsIgnoreCase(currentDbType())) {
        if (PostgreSQL.name().equalsIgnoreCase(currentDbType())) {
            String expectedDataSetFile = TABLE_ONLY_PREFIX + "/expect/select/postgresql/SelectLimitWithBindingTable.xml";
            assertDataSet(expectedDataSetFile, getShardingDataSource().getConnection(),
@@ -81,6 +80,10 @@ 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(),
@@ -89,7 +92,6 @@ public final class ShardingTablesOnlyForPreparedStatementWithSelectTest extends
        assertDataSet("integrate/dataset/Empty.xml", getShardingDataSource().getConnection(),
                "t_order_item", replacePreparedStatement(getDatabaseTestSQL().getSelectLimitWithBindingTableSql()), 10, 19, 1000, 1909, 1000, 2000);
    }
    }
    
    @Test
    public void assertSelectLimitWithBindingTableWithRowCount() throws SQLException, DatabaseUnitException {
+4 −0
Original line number Diff line number Diff line
<dataset>
    <t_order_item order_by_derived_0="100801" order_id="1008" rownum="1" user_id="10" status="init" />
    <t_order_item order_by_derived_0="100800" order_id="1008" rownum="2" user_id="10" status="init" />
</dataset>