BATCH-1691: Implemented group by functionality not impacted by paging
This commit is contained in:
@@ -37,29 +37,32 @@ public class Db2PagingQueryProviderTests extends AbstractSqlPagingQueryProviderT
|
||||
assertEquals(sql, s);
|
||||
}
|
||||
|
||||
@Test @Override
|
||||
@Test
|
||||
@Override
|
||||
public void testGenerateRemainingPagesQuery() {
|
||||
String sql = "SELECT id, name, age FROM foo WHERE bar = 1 AND ((id > ?)) ORDER BY id ASC FETCH FIRST 100 ROWS ONLY";
|
||||
String s = pagingQueryProvider.generateRemainingPagesQuery(pageSize);
|
||||
assertEquals(sql, s);
|
||||
}
|
||||
|
||||
@Test @Override
|
||||
@Test
|
||||
@Override
|
||||
public void testGenerateJumpToItemQuery() {
|
||||
String sql = "SELECT id FROM ( SELECT id, ROW_NUMBER() OVER ( ORDER BY id ASC) AS ROW_NUMBER FROM foo WHERE bar = 1) AS TMP_SUB WHERE TMP_SUB.ROW_NUMBER = 100";
|
||||
String s = pagingQueryProvider.generateJumpToItemQuery(145, pageSize);
|
||||
assertEquals(sql, s);
|
||||
}
|
||||
|
||||
@Test @Override
|
||||
@Test
|
||||
@Override
|
||||
public void testGenerateJumpToItemQueryForFirstPage() {
|
||||
String sql = "SELECT id FROM ( SELECT id, ROW_NUMBER() OVER ( ORDER BY id ASC) AS ROW_NUMBER FROM foo WHERE bar = 1) AS TMP_SUB WHERE TMP_SUB.ROW_NUMBER = 1";
|
||||
String s = pagingQueryProvider.generateJumpToItemQuery(45, pageSize);
|
||||
assertEquals(sql, s);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Test
|
||||
@Override
|
||||
public void testGenerateFirstPageQueryWithGroupBy() {
|
||||
pagingQueryProvider.setGroupClause("dep");
|
||||
String sql = "SELECT id, name, age FROM foo WHERE bar = 1 GROUP BY dep ORDER BY id ASC FETCH FIRST 100 ROWS ONLY";
|
||||
@@ -67,17 +70,17 @@ public class Db2PagingQueryProviderTests extends AbstractSqlPagingQueryProviderT
|
||||
assertEquals(sql, s);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Test
|
||||
@Override
|
||||
public void testGenerateRemainingPagesQueryWithGroupBy() {
|
||||
pagingQueryProvider.setGroupClause("dep");
|
||||
String sql = "SELECT id, name, age FROM foo WHERE bar = 1 AND ((id > ?)) GROUP BY dep ORDER BY id ASC FETCH FIRST 100 ROWS ONLY";
|
||||
String sql = "SELECT * FROM (SELECT id, name, age FROM foo WHERE bar = 1 GROUP BY dep ORDER BY id ASC) AS MAIN_QRY WHERE ((id > ?)) FETCH FIRST 100 ROWS ONLY";
|
||||
String s = pagingQueryProvider.generateRemainingPagesQuery(pageSize);
|
||||
assertEquals(sql, s);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Test
|
||||
@Override
|
||||
public void testGenerateJumpToItemQueryWithGroupBy() {
|
||||
pagingQueryProvider.setGroupClause("dep");
|
||||
String sql = "SELECT id FROM ( SELECT id, ROW_NUMBER() OVER ( ORDER BY id ASC) AS ROW_NUMBER FROM foo WHERE bar = 1 GROUP BY dep) AS TMP_SUB WHERE TMP_SUB.ROW_NUMBER = 100";
|
||||
@@ -85,8 +88,8 @@ public class Db2PagingQueryProviderTests extends AbstractSqlPagingQueryProviderT
|
||||
assertEquals(sql, s);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Test
|
||||
@Override
|
||||
public void testGenerateJumpToItemQueryForFirstPageWithGroupBy() {
|
||||
pagingQueryProvider.setGroupClause("dep");
|
||||
String sql = "SELECT id FROM ( SELECT id, ROW_NUMBER() OVER ( ORDER BY id ASC) AS ROW_NUMBER FROM foo WHERE bar = 1 GROUP BY dep) AS TMP_SUB WHERE TMP_SUB.ROW_NUMBER = 1";
|
||||
|
||||
@@ -85,7 +85,7 @@ public class DerbyPagingQueryProviderTests extends AbstractSqlPagingQueryProvide
|
||||
@Test
|
||||
@Override
|
||||
public void testGenerateFirstPageQuery() {
|
||||
String sql = "SELECT * FROM ( SELECT id, name, age, ROW_NUMBER() OVER () AS ROW_NUMBER FROM (SELECT id, name, age FROM foo WHERE bar = 1 ORDER BY id ASC) AS TMP_ORDERED) AS TMP_SUB WHERE TMP_SUB.ROW_NUMBER <= 100";
|
||||
String sql = "SELECT * FROM ( SELECT TMP_ORDERED.*, ROW_NUMBER() OVER () AS ROW_NUMBER FROM (SELECT id, name, age FROM foo WHERE bar = 1 ORDER BY id ASC) AS TMP_ORDERED) AS TMP_SUB WHERE TMP_SUB.ROW_NUMBER <= 100";
|
||||
String s = pagingQueryProvider.generateFirstPageQuery(pageSize);
|
||||
Assert.assertEquals(sql, s);
|
||||
}
|
||||
@@ -93,7 +93,7 @@ public class DerbyPagingQueryProviderTests extends AbstractSqlPagingQueryProvide
|
||||
@Test
|
||||
@Override
|
||||
public void testGenerateRemainingPagesQuery() {
|
||||
String sql = "SELECT * FROM ( SELECT id, name, age, ROW_NUMBER() OVER () AS ROW_NUMBER FROM (SELECT id, name, age FROM foo WHERE bar = 1 AND ((id > ?)) ORDER BY id ASC) AS TMP_ORDERED) AS TMP_SUB WHERE TMP_SUB.ROW_NUMBER <= 100";
|
||||
String sql = "SELECT * FROM ( SELECT TMP_ORDERED.*, ROW_NUMBER() OVER () AS ROW_NUMBER FROM (SELECT id, name, age FROM foo WHERE bar = 1 ORDER BY id ASC) AS TMP_ORDERED) AS TMP_SUB WHERE TMP_SUB.ROW_NUMBER <= 100 AND ((id > ?))";
|
||||
String s = pagingQueryProvider.generateRemainingPagesQuery(pageSize);
|
||||
Assert.assertEquals(sql, s);
|
||||
}
|
||||
@@ -139,7 +139,7 @@ public class DerbyPagingQueryProviderTests extends AbstractSqlPagingQueryProvide
|
||||
@Test
|
||||
public void testGenerateFirstPageQueryWithGroupBy() {
|
||||
pagingQueryProvider.setGroupClause("dep");
|
||||
String sql = "SELECT * FROM ( SELECT id, name, age, ROW_NUMBER() OVER () AS ROW_NUMBER FROM (SELECT id, name, age FROM foo WHERE bar = 1 GROUP BY dep ORDER BY id ASC) AS TMP_ORDERED) AS TMP_SUB WHERE TMP_SUB.ROW_NUMBER <= 100";
|
||||
String sql = "SELECT * FROM ( SELECT TMP_ORDERED.*, ROW_NUMBER() OVER () AS ROW_NUMBER FROM (SELECT id, name, age FROM foo WHERE bar = 1 GROUP BY dep ORDER BY id ASC) AS TMP_ORDERED) AS TMP_SUB WHERE TMP_SUB.ROW_NUMBER <= 100";
|
||||
String s = pagingQueryProvider.generateFirstPageQuery(pageSize);
|
||||
assertEquals(sql, s);
|
||||
}
|
||||
@@ -148,7 +148,7 @@ public class DerbyPagingQueryProviderTests extends AbstractSqlPagingQueryProvide
|
||||
@Test
|
||||
public void testGenerateRemainingPagesQueryWithGroupBy() {
|
||||
pagingQueryProvider.setGroupClause("dep");
|
||||
String sql = "SELECT * FROM ( SELECT id, name, age, ROW_NUMBER() OVER () AS ROW_NUMBER FROM (SELECT id, name, age FROM foo WHERE bar = 1 AND ((id > ?)) GROUP BY dep ORDER BY id ASC) AS TMP_ORDERED) AS TMP_SUB WHERE TMP_SUB.ROW_NUMBER <= 100";
|
||||
String sql = "SELECT * FROM ( SELECT TMP_ORDERED.*, ROW_NUMBER() OVER () AS ROW_NUMBER FROM (SELECT id, name, age FROM foo WHERE bar = 1 GROUP BY dep ORDER BY id ASC) AS TMP_ORDERED) AS TMP_SUB WHERE TMP_SUB.ROW_NUMBER <= 100 AND ((id > ?))";
|
||||
String s = pagingQueryProvider.generateRemainingPagesQuery(pageSize);
|
||||
assertEquals(sql, s);
|
||||
}
|
||||
@@ -173,12 +173,12 @@ public class DerbyPagingQueryProviderTests extends AbstractSqlPagingQueryProvide
|
||||
|
||||
@Override
|
||||
public String getFirstPageSqlWithMultipleSortKeys() {
|
||||
return "SELECT * FROM ( SELECT id, name, age, ROW_NUMBER() OVER () AS ROW_NUMBER FROM (SELECT id, name, age FROM foo WHERE bar = 1 ORDER BY name ASC, id DESC) AS TMP_ORDERED) AS TMP_SUB WHERE TMP_SUB.ROW_NUMBER <= 100";
|
||||
return "SELECT * FROM ( SELECT TMP_ORDERED.*, ROW_NUMBER() OVER () AS ROW_NUMBER FROM (SELECT id, name, age FROM foo WHERE bar = 1 ORDER BY name ASC, id DESC) AS TMP_ORDERED) AS TMP_SUB WHERE TMP_SUB.ROW_NUMBER <= 100";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getRemainingSqlWithMultipleSortKeys() {
|
||||
return "SELECT * FROM ( SELECT id, name, age, ROW_NUMBER() OVER () AS ROW_NUMBER FROM (SELECT id, name, age FROM foo WHERE bar = 1 AND ((name > ?) OR (name = ? AND id < ?)) ORDER BY name ASC, id DESC) AS TMP_ORDERED) AS TMP_SUB WHERE TMP_SUB.ROW_NUMBER <= 100";
|
||||
return "SELECT * FROM ( SELECT TMP_ORDERED.*, ROW_NUMBER() OVER () AS ROW_NUMBER FROM (SELECT id, name, age FROM foo WHERE bar = 1 ORDER BY name ASC, id DESC) AS TMP_ORDERED) AS TMP_SUB WHERE TMP_SUB.ROW_NUMBER <= 100 AND ((name > ?) OR (name = ? AND id < ?))";
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -71,7 +71,7 @@ public class HsqlPagingQueryProviderTests extends AbstractSqlPagingQueryProvider
|
||||
@Test
|
||||
public void testGenerateRemainingPagesQueryWithGroupBy() {
|
||||
pagingQueryProvider.setGroupClause("dep");
|
||||
String sql = "SELECT TOP 100 id, name, age FROM foo WHERE bar = 1 AND ((id > ?)) GROUP BY dep ORDER BY id ASC";
|
||||
String sql = "SELECT TOP 100 * FROM (SELECT id, name, age FROM foo WHERE bar = 1 GROUP BY dep ORDER BY id ASC) AS MAIN_QRY WHERE ((id > ?))";
|
||||
String s = pagingQueryProvider.generateRemainingPagesQuery(pageSize);
|
||||
assertEquals(sql, s);
|
||||
}
|
||||
|
||||
@@ -71,7 +71,7 @@ public class MySqlPagingQueryProviderTests extends AbstractSqlPagingQueryProvide
|
||||
@Test
|
||||
public void testGenerateRemainingPagesQueryWithGroupBy() {
|
||||
pagingQueryProvider.setGroupClause("dep");
|
||||
String sql = "SELECT id, name, age FROM foo WHERE bar = 1 AND ((id > ?)) GROUP BY dep ORDER BY id ASC LIMIT 100";
|
||||
String sql = "SELECT * FROM (SELECT id, name, age FROM foo WHERE bar = 1 GROUP BY dep ORDER BY id ASC) AS MAIN_QRY WHERE ((id > ?)) LIMIT 100";
|
||||
String s = pagingQueryProvider.generateRemainingPagesQuery(pageSize);
|
||||
assertEquals(sql, s);
|
||||
}
|
||||
|
||||
@@ -43,7 +43,7 @@ public class OraclePagingQueryProviderTests extends AbstractSqlPagingQueryProvid
|
||||
|
||||
@Test @Override
|
||||
public void testGenerateRemainingPagesQuery() {
|
||||
String sql = "SELECT * FROM (SELECT id, name, age, ROWNUM as TMP_ROW_NUM FROM foo WHERE bar = 1 AND ((id > ?)) ORDER BY id ASC) WHERE ROWNUM <= 100";
|
||||
String sql = "SELECT * FROM (SELECT id, name, age, ROWNUM as TMP_ROW_NUM FROM foo WHERE bar = 1 ORDER BY id ASC) WHERE ROWNUM <= 100 AND ((id > ?))";
|
||||
String s = pagingQueryProvider.generateRemainingPagesQuery(pageSize);
|
||||
assertEquals(sql, s);
|
||||
}
|
||||
@@ -75,7 +75,7 @@ public class OraclePagingQueryProviderTests extends AbstractSqlPagingQueryProvid
|
||||
@Test
|
||||
public void testGenerateRemainingPagesQueryWithGroupBy() {
|
||||
pagingQueryProvider.setGroupClause("dep");
|
||||
String sql = "SELECT * FROM (SELECT id, name, age, ROWNUM as TMP_ROW_NUM FROM foo WHERE bar = 1 AND ((id > ?)) GROUP BY dep ORDER BY id ASC) WHERE ROWNUM <= 100";
|
||||
String sql = "SELECT * FROM (SELECT id, name, age, ROWNUM as TMP_ROW_NUM FROM foo WHERE bar = 1 GROUP BY dep ORDER BY id ASC) WHERE ROWNUM <= 100 AND ((id > ?))";
|
||||
String s = pagingQueryProvider.generateRemainingPagesQuery(pageSize);
|
||||
assertEquals(sql, s);
|
||||
}
|
||||
@@ -105,7 +105,7 @@ public class OraclePagingQueryProviderTests extends AbstractSqlPagingQueryProvid
|
||||
|
||||
@Override
|
||||
public String getRemainingSqlWithMultipleSortKeys() {
|
||||
return "SELECT * FROM (SELECT id, name, age, ROWNUM as TMP_ROW_NUM FROM foo WHERE bar = 1 AND ((name > ?) OR (name = ? AND id < ?)) ORDER BY name ASC, id DESC) WHERE ROWNUM <= 100";
|
||||
return "SELECT * FROM (SELECT id, name, age, ROWNUM as TMP_ROW_NUM FROM foo WHERE bar = 1 ORDER BY name ASC, id DESC) WHERE ROWNUM <= 100 AND ((name > ?) OR (name = ? AND id < ?))";
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -71,7 +71,7 @@ public class PostgresPagingQueryProviderTests extends AbstractSqlPagingQueryProv
|
||||
@Test
|
||||
public void testGenerateRemainingPagesQueryWithGroupBy() {
|
||||
pagingQueryProvider.setGroupClause("id, dep");
|
||||
String sql = "SELECT id, name, age FROM foo WHERE bar = 1 AND ((id > ?)) GROUP BY id, dep ORDER BY id ASC LIMIT 100";
|
||||
String sql = "SELECT * FROM (SELECT id, name, age FROM foo WHERE bar = 1 GROUP BY id, dep ORDER BY id ASC) AS MAIN_QRY WHERE ((id > ?)) LIMIT 100";
|
||||
String s = pagingQueryProvider.generateRemainingPagesQuery(pageSize);
|
||||
assertEquals(sql, s);
|
||||
}
|
||||
|
||||
@@ -77,14 +77,14 @@ public class SqlPagingQueryUtilsTests {
|
||||
"SELECT * FROM (SELECT FOO, ROWNUM as TMP_ROW_NUM FROM BAR ORDER BY ID ASC) WHERE ROWNUMBER <= 100",
|
||||
SqlPagingQueryUtils.generateRowNumSqlQuery(qp, false, "ROWNUMBER <= 100"));
|
||||
assertEquals(
|
||||
"SELECT * FROM (SELECT FOO, ROWNUM as TMP_ROW_NUM FROM BAR WHERE ((ID > ?)) ORDER BY ID ASC) WHERE ROWNUMBER <= 100",
|
||||
"SELECT * FROM (SELECT FOO, ROWNUM as TMP_ROW_NUM FROM BAR ORDER BY ID ASC) WHERE ROWNUMBER <= 100 AND ((ID > ?))",
|
||||
SqlPagingQueryUtils.generateRowNumSqlQuery(qp, true, "ROWNUMBER <= 100"));
|
||||
qp.setWhereClause("BAZ IS NOT NULL");
|
||||
assertEquals(
|
||||
"SELECT * FROM (SELECT FOO, ROWNUM as TMP_ROW_NUM FROM BAR WHERE BAZ IS NOT NULL ORDER BY ID ASC) WHERE ROWNUMBER <= 100",
|
||||
SqlPagingQueryUtils.generateRowNumSqlQuery(qp, false, "ROWNUMBER <= 100"));
|
||||
assertEquals(
|
||||
"SELECT * FROM (SELECT FOO, ROWNUM as TMP_ROW_NUM FROM BAR WHERE BAZ IS NOT NULL AND ((ID > ?)) ORDER BY ID ASC) WHERE ROWNUMBER <= 100",
|
||||
"SELECT * FROM (SELECT FOO, ROWNUM as TMP_ROW_NUM FROM BAR WHERE BAZ IS NOT NULL ORDER BY ID ASC) WHERE ROWNUMBER <= 100 AND ((ID > ?))",
|
||||
SqlPagingQueryUtils.generateRowNumSqlQuery(qp, true, "ROWNUMBER <= 100"));
|
||||
}
|
||||
|
||||
@@ -119,14 +119,14 @@ public class SqlPagingQueryUtilsTests {
|
||||
"SELECT * FROM (SELECT FOO, ROWNUM as TMP_ROW_NUM FROM BAR ORDER BY ID DESC) WHERE ROWNUMBER <= 100",
|
||||
SqlPagingQueryUtils.generateRowNumSqlQuery(qp, false, "ROWNUMBER <= 100"));
|
||||
assertEquals(
|
||||
"SELECT * FROM (SELECT FOO, ROWNUM as TMP_ROW_NUM FROM BAR WHERE ((ID < ?)) ORDER BY ID DESC) WHERE ROWNUMBER <= 100",
|
||||
"SELECT * FROM (SELECT FOO, ROWNUM as TMP_ROW_NUM FROM BAR ORDER BY ID DESC) WHERE ROWNUMBER <= 100 AND ((ID < ?))",
|
||||
SqlPagingQueryUtils.generateRowNumSqlQuery(qp, true, "ROWNUMBER <= 100"));
|
||||
qp.setWhereClause("BAZ IS NOT NULL");
|
||||
assertEquals(
|
||||
"SELECT * FROM (SELECT FOO, ROWNUM as TMP_ROW_NUM FROM BAR WHERE BAZ IS NOT NULL ORDER BY ID DESC) WHERE ROWNUMBER <= 100",
|
||||
SqlPagingQueryUtils.generateRowNumSqlQuery(qp, false, "ROWNUMBER <= 100"));
|
||||
assertEquals(
|
||||
"SELECT * FROM (SELECT FOO, ROWNUM as TMP_ROW_NUM FROM BAR WHERE BAZ IS NOT NULL AND ((ID < ?)) ORDER BY ID DESC) WHERE ROWNUMBER <= 100",
|
||||
"SELECT * FROM (SELECT FOO, ROWNUM as TMP_ROW_NUM FROM BAR WHERE BAZ IS NOT NULL ORDER BY ID DESC) WHERE ROWNUMBER <= 100 AND ((ID < ?))",
|
||||
SqlPagingQueryUtils.generateRowNumSqlQuery(qp, true, "ROWNUMBER <= 100"));
|
||||
}
|
||||
|
||||
|
||||
@@ -37,29 +37,32 @@ public class SqlServerPagingQueryProviderTests extends AbstractSqlPagingQueryPro
|
||||
assertEquals(sql, s);
|
||||
}
|
||||
|
||||
@Test @Override
|
||||
@Test
|
||||
@Override
|
||||
public void testGenerateRemainingPagesQuery() {
|
||||
String sql = "SELECT TOP 100 id, name, age FROM foo WHERE bar = 1 AND ((id > ?)) ORDER BY id ASC";
|
||||
String s = pagingQueryProvider.generateRemainingPagesQuery(pageSize);
|
||||
assertEquals(sql, s);
|
||||
}
|
||||
|
||||
@Test @Override
|
||||
@Test
|
||||
@Override
|
||||
public void testGenerateJumpToItemQuery() {
|
||||
String sql = "SELECT id FROM ( SELECT id, ROW_NUMBER() OVER ( ORDER BY id ASC) AS ROW_NUMBER FROM foo WHERE bar = 1) AS TMP_SUB WHERE TMP_SUB.ROW_NUMBER = 100";
|
||||
String s = pagingQueryProvider.generateJumpToItemQuery(145, pageSize);
|
||||
assertEquals(sql, s);
|
||||
}
|
||||
|
||||
@Test @Override
|
||||
@Test
|
||||
@Override
|
||||
public void testGenerateJumpToItemQueryForFirstPage() {
|
||||
String sql = "SELECT id FROM ( SELECT id, ROW_NUMBER() OVER ( ORDER BY id ASC) AS ROW_NUMBER FROM foo WHERE bar = 1) AS TMP_SUB WHERE TMP_SUB.ROW_NUMBER = 1";
|
||||
String s = pagingQueryProvider.generateJumpToItemQuery(45, pageSize);
|
||||
assertEquals(sql, s);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Test
|
||||
@Override
|
||||
public void testGenerateFirstPageQueryWithGroupBy() {
|
||||
pagingQueryProvider.setGroupClause("dep");
|
||||
String sql = "SELECT TOP 100 id, name, age FROM foo WHERE bar = 1 GROUP BY dep ORDER BY id ASC";
|
||||
@@ -67,17 +70,17 @@ public class SqlServerPagingQueryProviderTests extends AbstractSqlPagingQueryPro
|
||||
assertEquals(sql, s);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Test
|
||||
@Override
|
||||
public void testGenerateRemainingPagesQueryWithGroupBy() {
|
||||
pagingQueryProvider.setGroupClause("dep");
|
||||
String sql = "SELECT TOP 100 id, name, age FROM foo WHERE bar = 1 AND ((id > ?)) GROUP BY dep ORDER BY id ASC";
|
||||
String sql = "SELECT TOP 100 * FROM (SELECT id, name, age FROM foo WHERE bar = 1 GROUP BY dep ORDER BY id ASC) AS MAIN_QRY WHERE ((id > ?))";
|
||||
String s = pagingQueryProvider.generateRemainingPagesQuery(pageSize);
|
||||
assertEquals(sql, s);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Test
|
||||
@Override
|
||||
public void testGenerateJumpToItemQueryWithGroupBy() {
|
||||
pagingQueryProvider.setGroupClause("dep");
|
||||
String sql = "SELECT id FROM ( SELECT id, ROW_NUMBER() OVER ( ORDER BY id ASC) AS ROW_NUMBER FROM foo WHERE bar = 1 GROUP BY dep) AS TMP_SUB WHERE TMP_SUB.ROW_NUMBER = 100";
|
||||
@@ -85,8 +88,8 @@ public class SqlServerPagingQueryProviderTests extends AbstractSqlPagingQueryPro
|
||||
assertEquals(sql, s);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Test
|
||||
@Override
|
||||
public void testGenerateJumpToItemQueryForFirstPageWithGroupBy() {
|
||||
pagingQueryProvider.setGroupClause("dep");
|
||||
String sql = "SELECT id FROM ( SELECT id, ROW_NUMBER() OVER ( ORDER BY id ASC) AS ROW_NUMBER FROM foo WHERE bar = 1 GROUP BY dep) AS TMP_SUB WHERE TMP_SUB.ROW_NUMBER = 1";
|
||||
|
||||
@@ -30,54 +30,58 @@ public class SqlWindowingPagingQueryProviderTests extends AbstractSqlPagingQuery
|
||||
pagingQueryProvider = new SqlWindowingPagingQueryProvider();
|
||||
}
|
||||
|
||||
@Test @Override
|
||||
@Test
|
||||
@Override
|
||||
public void testGenerateFirstPageQuery() {
|
||||
String sql = "SELECT * FROM ( SELECT id, name, age, ROW_NUMBER() OVER ( ORDER BY id ASC) AS ROW_NUMBER FROM foo WHERE bar = 1) AS TMP_SUB WHERE TMP_SUB.ROW_NUMBER <= 100";
|
||||
String sql = "SELECT * FROM ( SELECT *, ROW_NUMBER() OVER ( ORDER BY id ASC) AS ROW_NUMBER FROM foo WHERE bar = 1) AS TMP_SUB WHERE TMP_SUB.ROW_NUMBER <= 100";
|
||||
String s = pagingQueryProvider.generateFirstPageQuery(pageSize);
|
||||
assertEquals("", sql, s);
|
||||
}
|
||||
|
||||
@Test @Override
|
||||
@Test
|
||||
@Override
|
||||
public void testGenerateRemainingPagesQuery() {
|
||||
String sql = "SELECT * FROM ( SELECT id, name, age, ROW_NUMBER() OVER ( ORDER BY id ASC) AS ROW_NUMBER FROM foo WHERE bar = 1 AND ((id > ?))) AS TMP_SUB WHERE TMP_SUB.ROW_NUMBER <= 100";
|
||||
String sql = "SELECT * FROM ( SELECT *, ROW_NUMBER() OVER ( ORDER BY id ASC) AS ROW_NUMBER FROM foo WHERE bar = 1) AS TMP_SUB WHERE TMP_SUB.ROW_NUMBER <= 100 AND ((id > ?))";
|
||||
String s = pagingQueryProvider.generateRemainingPagesQuery(pageSize);
|
||||
assertEquals("", sql, s);
|
||||
}
|
||||
|
||||
@Test @Override
|
||||
@Test
|
||||
@Override
|
||||
public void testGenerateJumpToItemQuery() {
|
||||
String sql = "SELECT id FROM ( SELECT id, ROW_NUMBER() OVER ( ORDER BY id ASC) AS ROW_NUMBER FROM foo WHERE bar = 1) AS TMP_SUB WHERE TMP_SUB.ROW_NUMBER = 100";
|
||||
String s = pagingQueryProvider.generateJumpToItemQuery(145, pageSize);
|
||||
assertEquals("", sql, s);
|
||||
}
|
||||
|
||||
@Test @Override
|
||||
@Test
|
||||
@Override
|
||||
public void testGenerateJumpToItemQueryForFirstPage() {
|
||||
String sql = "SELECT id FROM ( SELECT id, ROW_NUMBER() OVER ( ORDER BY id ASC) AS ROW_NUMBER FROM foo WHERE bar = 1) AS TMP_SUB WHERE TMP_SUB.ROW_NUMBER = 1";
|
||||
String s = pagingQueryProvider.generateJumpToItemQuery(45, pageSize);
|
||||
Assert.assertEquals("", sql, s);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Test
|
||||
@Override
|
||||
public void testGenerateFirstPageQueryWithGroupBy() {
|
||||
pagingQueryProvider.setGroupClause("dep");
|
||||
String sql = "SELECT * FROM ( SELECT id, name, age, ROW_NUMBER() OVER ( ORDER BY id ASC) AS ROW_NUMBER FROM foo WHERE bar = 1 GROUP BY dep) AS TMP_SUB WHERE TMP_SUB.ROW_NUMBER <= 100";
|
||||
String sql = "SELECT * FROM ( SELECT *, ROW_NUMBER() OVER ( ORDER BY id ASC) AS ROW_NUMBER FROM foo WHERE bar = 1 GROUP BY dep) AS TMP_SUB WHERE TMP_SUB.ROW_NUMBER <= 100";
|
||||
String s = pagingQueryProvider.generateFirstPageQuery(pageSize);
|
||||
assertEquals(sql, s);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Test
|
||||
@Override
|
||||
public void testGenerateRemainingPagesQueryWithGroupBy() {
|
||||
pagingQueryProvider.setGroupClause("dep");
|
||||
String sql = "SELECT * FROM ( SELECT id, name, age, ROW_NUMBER() OVER ( ORDER BY id ASC) AS ROW_NUMBER FROM foo WHERE bar = 1 AND ((id > ?)) GROUP BY dep) AS TMP_SUB WHERE TMP_SUB.ROW_NUMBER <= 100";
|
||||
String sql = "SELECT * FROM ( SELECT *, ROW_NUMBER() OVER ( ORDER BY id ASC) AS ROW_NUMBER FROM foo WHERE bar = 1 GROUP BY dep) AS TMP_SUB WHERE TMP_SUB.ROW_NUMBER <= 100 AND ((id > ?))";
|
||||
String s = pagingQueryProvider.generateRemainingPagesQuery(pageSize);
|
||||
assertEquals(sql, s);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Test
|
||||
@Override
|
||||
public void testGenerateJumpToItemQueryWithGroupBy() {
|
||||
pagingQueryProvider.setGroupClause("dep");
|
||||
String sql = "SELECT id FROM ( SELECT id, ROW_NUMBER() OVER ( ORDER BY id ASC) AS ROW_NUMBER FROM foo WHERE bar = 1 GROUP BY dep) AS TMP_SUB WHERE TMP_SUB.ROW_NUMBER = 100";
|
||||
@@ -85,8 +89,8 @@ public class SqlWindowingPagingQueryProviderTests extends AbstractSqlPagingQuery
|
||||
assertEquals(sql, s);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Test
|
||||
@Override
|
||||
public void testGenerateJumpToItemQueryForFirstPageWithGroupBy() {
|
||||
pagingQueryProvider.setGroupClause("dep");
|
||||
String sql = "SELECT id FROM ( SELECT id, ROW_NUMBER() OVER ( ORDER BY id ASC) AS ROW_NUMBER FROM foo WHERE bar = 1 GROUP BY dep) AS TMP_SUB WHERE TMP_SUB.ROW_NUMBER = 1";
|
||||
@@ -96,12 +100,12 @@ public class SqlWindowingPagingQueryProviderTests extends AbstractSqlPagingQuery
|
||||
|
||||
@Override
|
||||
public String getFirstPageSqlWithMultipleSortKeys() {
|
||||
return "SELECT * FROM ( SELECT id, name, age, ROW_NUMBER() OVER ( ORDER BY name ASC, id DESC) AS ROW_NUMBER FROM foo WHERE bar = 1) AS TMP_SUB WHERE TMP_SUB.ROW_NUMBER <= 100";
|
||||
return "SELECT * FROM ( SELECT *, ROW_NUMBER() OVER ( ORDER BY name ASC, id DESC) AS ROW_NUMBER FROM foo WHERE bar = 1) AS TMP_SUB WHERE TMP_SUB.ROW_NUMBER <= 100";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getRemainingSqlWithMultipleSortKeys() {
|
||||
return "SELECT * FROM ( SELECT id, name, age, ROW_NUMBER() OVER ( ORDER BY name ASC, id DESC) AS ROW_NUMBER FROM foo WHERE bar = 1 AND ((name > ?) OR (name = ? AND id < ?))) AS TMP_SUB WHERE TMP_SUB.ROW_NUMBER <= 100";
|
||||
return "SELECT * FROM ( SELECT *, ROW_NUMBER() OVER ( ORDER BY name ASC, id DESC) AS ROW_NUMBER FROM foo WHERE bar = 1) AS TMP_SUB WHERE TMP_SUB.ROW_NUMBER <= 100 AND ((name > ?) OR (name = ? AND id < ?))";
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -37,29 +37,32 @@ public class SybasePagingQueryProviderTests extends AbstractSqlPagingQueryProvid
|
||||
assertEquals("", sql, s);
|
||||
}
|
||||
|
||||
@Test @Override
|
||||
@Test
|
||||
@Override
|
||||
public void testGenerateRemainingPagesQuery() {
|
||||
String sql = "SELECT TOP 100 id, name, age FROM foo WHERE bar = 1 AND ((id > ?)) ORDER BY id ASC";
|
||||
String s = pagingQueryProvider.generateRemainingPagesQuery(pageSize);
|
||||
assertEquals("", sql, s);
|
||||
}
|
||||
|
||||
@Test @Override
|
||||
@Test
|
||||
@Override
|
||||
public void testGenerateJumpToItemQuery() {
|
||||
String sql = "SELECT id FROM ( SELECT id, ROW_NUMBER() OVER ( ORDER BY id ASC) AS ROW_NUMBER FROM foo WHERE bar = 1) WHERE ROW_NUMBER = 100";
|
||||
String s = pagingQueryProvider.generateJumpToItemQuery(145, pageSize);
|
||||
assertEquals("", sql, s);
|
||||
}
|
||||
|
||||
@Test @Override
|
||||
@Test
|
||||
@Override
|
||||
public void testGenerateJumpToItemQueryForFirstPage() {
|
||||
String sql = "SELECT id FROM ( SELECT id, ROW_NUMBER() OVER ( ORDER BY id ASC) AS ROW_NUMBER FROM foo WHERE bar = 1) WHERE ROW_NUMBER = 1";
|
||||
String s = pagingQueryProvider.generateJumpToItemQuery(45, pageSize);
|
||||
assertEquals("", sql, s);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Test
|
||||
@Override
|
||||
public void testGenerateFirstPageQueryWithGroupBy() {
|
||||
pagingQueryProvider.setGroupClause("dep");
|
||||
String sql = "SELECT TOP 100 id, name, age FROM foo WHERE bar = 1 GROUP BY dep ORDER BY id ASC";
|
||||
@@ -67,17 +70,17 @@ public class SybasePagingQueryProviderTests extends AbstractSqlPagingQueryProvid
|
||||
assertEquals(sql, s);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Test
|
||||
@Override
|
||||
public void testGenerateRemainingPagesQueryWithGroupBy() {
|
||||
pagingQueryProvider.setGroupClause("dep");
|
||||
String sql = "SELECT TOP 100 id, name, age FROM foo WHERE bar = 1 AND ((id > ?)) GROUP BY dep ORDER BY id ASC";
|
||||
String sql = "SELECT TOP 100 * FROM (SELECT id, name, age FROM foo WHERE bar = 1 GROUP BY dep ORDER BY id ASC) AS MAIN_QRY WHERE ((id > ?))";
|
||||
String s = pagingQueryProvider.generateRemainingPagesQuery(pageSize);
|
||||
assertEquals(sql, s);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Test
|
||||
@Override
|
||||
public void testGenerateJumpToItemQueryWithGroupBy() {
|
||||
pagingQueryProvider.setGroupClause("dep");
|
||||
String sql = "SELECT id FROM ( SELECT id, ROW_NUMBER() OVER ( ORDER BY id ASC) AS ROW_NUMBER FROM foo WHERE bar = 1 GROUP BY dep) WHERE ROW_NUMBER = 100";
|
||||
@@ -85,8 +88,8 @@ public class SybasePagingQueryProviderTests extends AbstractSqlPagingQueryProvid
|
||||
assertEquals(sql, s);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Test
|
||||
@Override
|
||||
public void testGenerateJumpToItemQueryForFirstPageWithGroupBy() {
|
||||
pagingQueryProvider.setGroupClause("dep");
|
||||
String sql = "SELECT id FROM ( SELECT id, ROW_NUMBER() OVER ( ORDER BY id ASC) AS ROW_NUMBER FROM foo WHERE bar = 1 GROUP BY dep) WHERE ROW_NUMBER = 1";
|
||||
|
||||
Reference in New Issue
Block a user