BATCH-1691: Updated to correct order by processing
This commit is contained in:
@@ -71,7 +71,12 @@ public abstract class AbstractSqlPagingQueryProvider implements PagingQueryProvi
|
||||
* @param SQL GROUP BY clause part of the SQL query string
|
||||
*/
|
||||
public void setGroupClause(String groupClause) {
|
||||
this.groupClause = groupClause;
|
||||
if (StringUtils.hasText(groupClause)) {
|
||||
this.groupClause = removeKeyWord("group by", groupClause);
|
||||
}
|
||||
else {
|
||||
this.groupClause = null;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -62,7 +62,7 @@ public class DerbyPagingQueryProvider extends SqlWindowingPagingQueryProvider {
|
||||
}
|
||||
|
||||
protected String getOverSubstituteClauseEnd() {
|
||||
return " " + super.getOverClause() + ") AS " + getOrderedQueryAlias();
|
||||
return " ) AS " + getOrderedQueryAlias();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -32,7 +32,6 @@ public class OraclePagingQueryProvider extends AbstractSqlPagingQueryProvider {
|
||||
@Override
|
||||
public String generateFirstPageQuery(int pageSize) {
|
||||
return SqlPagingQueryUtils.generateRowNumSqlQuery(this, false, buildRowNumClause(pageSize));
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -76,10 +76,10 @@ public class SqlPagingQueryUtils {
|
||||
sql.append(" FROM ").append(provider.getFromClause());
|
||||
sql.append(provider.getWhereClause() == null ? "" : " WHERE " + provider.getWhereClause());
|
||||
buildGroupByClause(provider, sql);
|
||||
sql.append(" ORDER BY ").append(buildSortClause(provider));
|
||||
sql.append(") AS MAIN_QRY ");
|
||||
sql.append("WHERE ");
|
||||
buildSortConditions(provider, sql);
|
||||
sql.append(" ORDER BY ").append(buildSortClause(provider));
|
||||
sql.append(" " + limitClause);
|
||||
|
||||
return sql.toString();
|
||||
@@ -125,10 +125,10 @@ public class SqlPagingQueryUtils {
|
||||
sql.append(" FROM ").append(provider.getFromClause());
|
||||
sql.append(provider.getWhereClause() == null ? "" : " WHERE " + provider.getWhereClause());
|
||||
buildGroupByClause(provider, sql);
|
||||
sql.append(" ORDER BY ").append(buildSortClause(provider));
|
||||
sql.append(") AS MAIN_QRY ");
|
||||
sql.append("WHERE ");
|
||||
buildSortConditions(provider, sql);
|
||||
sql.append(" ORDER BY ").append(buildSortClause(provider));
|
||||
|
||||
return sql.toString();
|
||||
}
|
||||
@@ -163,7 +163,7 @@ public class SqlPagingQueryUtils {
|
||||
public static String generateRowNumSqlQuery(AbstractSqlPagingQueryProvider provider, String selectClause,
|
||||
boolean remainingPageQuery, String rowNumClause) {
|
||||
StringBuilder sql = new StringBuilder();
|
||||
sql.append("SELECT * FROM (SELECT ").append(selectClause).append(", ROWNUM as TMP_ROW_NUM");
|
||||
sql.append("SELECT * FROM (SELECT ").append(selectClause);
|
||||
sql.append(" FROM ").append(provider.getFromClause());
|
||||
sql.append(provider.getWhereClause() == null ? "" : " WHERE " + provider.getWhereClause());
|
||||
buildGroupByClause(provider, sql);
|
||||
@@ -188,7 +188,7 @@ public class SqlPagingQueryUtils {
|
||||
|
||||
StringBuilder sql = new StringBuilder();
|
||||
sql.append("SELECT ").append(outerSelectClause).append(" FROM (SELECT ").append(outerSelectClause)
|
||||
.append(", ROWNUM as TMP_ROW_NUM");
|
||||
.append(", ").append(StringUtils.hasText(provider.getGroupClause()) ? "MIN(ROWNUM) as TMP_ROW_NUM" : "ROWNUM as TMP_ROW_NUM");
|
||||
sql.append(" FROM (SELECT ").append(innerSelectClause).append(" FROM ").append(provider.getFromClause());
|
||||
buildWhereClause(provider, remainingPageQuery, sql);
|
||||
buildGroupByClause(provider, sql);
|
||||
|
||||
@@ -45,7 +45,8 @@ public class SqlWindowingPagingQueryProvider extends AbstractSqlPagingQueryProvi
|
||||
sql.append(getOverSubstituteClauseEnd());
|
||||
sql.append(") ").append(getSubQueryAlias()).append("WHERE ").append(extractTableAlias()).append(
|
||||
"ROW_NUMBER <= ").append(pageSize);
|
||||
|
||||
sql.append(" ORDER BY ").append(SqlPagingQueryUtils.buildSortClause(this));
|
||||
|
||||
return sql.toString();
|
||||
}
|
||||
|
||||
@@ -85,6 +86,7 @@ public class SqlWindowingPagingQueryProvider extends AbstractSqlPagingQueryProvi
|
||||
"ROW_NUMBER <= ").append(pageSize);
|
||||
sql.append(" AND ");
|
||||
SqlPagingQueryUtils.buildSortConditions(this, sql);
|
||||
sql.append(" ORDER BY ").append(SqlPagingQueryUtils.buildSortClause(this));
|
||||
|
||||
return sql.toString();
|
||||
}
|
||||
@@ -112,6 +114,7 @@ public class SqlWindowingPagingQueryProvider extends AbstractSqlPagingQueryProvi
|
||||
sql.append(getOverSubstituteClauseEnd());
|
||||
sql.append(") ").append(getSubQueryAlias()).append("WHERE ").append(extractTableAlias()).append(
|
||||
"ROW_NUMBER = ").append(lastRowNum);
|
||||
sql.append(" ORDER BY ").append(SqlPagingQueryUtils.buildSortClause(this));
|
||||
|
||||
return sql.toString();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user