Skip to content

DerbyPagingQueryProvider remaining pages query is not correct #1253

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
spring-projects-issues opened this issue Feb 11, 2015 · 2 comments
Closed

Comments

@spring-projects-issues
Copy link
Collaborator

Jimmy Praet opened BATCH-2348 and commented

DerbyPagingQueryProvider queryProvider = new DerbyPagingQueryProvider();
queryProvider.setFromClause("TEST.TABLE");
queryProvider.setSelectClause("X, Y, Z");
queryProvider.setWhereClause("X = ?");
Map<String, Order> sortKeys = new HashMap<String, Order>();
sortKeys.put("Y", Order.ASCENDING);
sortKeys.put("Z", Order.ASCENDING);
queryProvider.setSortKeys(sortKeys);
System.out.println(queryProvider.generateRemainingPagesQuery(10));

results in the following query:

SELECT * FROM 
 ( SELECT TMP_ORDERED.*, ROW_NUMBER() OVER () AS ROW_NUMBER FROM 
   (SELECT X, Y, Z FROM TEST.TABLE WHERE X = ? ) 
    AS TMP_ORDERED
 ) 
 AS TMP_SUB WHERE TMP_SUB.ROW_NUMBER <= 10 
 AND ((Y > ?) OR (Y = ? AND Z > ?)) ORDER BY Y ASC, Z ASC

I believe the sort key selection and order by should be applied to the inner subquery instead of the outer query:

SELECT * FROM 
 ( SELECT TMP_ORDERED.*, ROW_NUMBER() OVER () AS ROW_NUMBER FROM 
   (SELECT X, Y, Z FROM TEST.TABLE WHERE X = ? 
    AND ((Y > ?) OR (Y = ? AND Z > ?)) ORDER BY Y ASC, Z ASC) 
	AS TMP_ORDERED
 ) 
 AS TMP_SUB WHERE TMP_SUB.ROW_NUMBER <= 10 

Affects: 2.2.7, 3.0.3

@spring-projects-issues
Copy link
Collaborator Author

Jimmy Praet commented

As a workaround we are using the Db2PagingQueryProvider, it works on Derby too.

@fmbenhassine fmbenhassine removed the status: waiting-for-triage Issues that we did not analyse yet label Dec 6, 2024
@fmbenhassine fmbenhassine added this to the 5.2.1 milestone Dec 6, 2024
@fmbenhassine fmbenhassine changed the title DerbyPagingQueryProvider remaining pages query is not correct [BATCH-2348] DerbyPagingQueryProvider remaining pages query is not correct Dec 6, 2024
@fmbenhassine
Copy link
Contributor

Resolved with #4713

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants