FIX for the limit query (#1540)

This commit is contained in:
Roland Praml
2018-11-13 21:08:53 +13:00
committed by Rob Bygrave
parent ec24374d72
commit e4cb5f0443
5 changed files with 14 additions and 10 deletions
@@ -31,12 +31,11 @@ public class LimitOffsetSqlLimiter implements SqlLimiter {
int firstRow = request.getFirstRow();
int maxRows = request.getMaxRows();
if (maxRows > 0 || firstRow > 0) {
if (maxRows > 0) {
sb.append(" ").append(LIMIT).append(" ").append(maxRows);
if (firstRow > 0) {
sb.append(" ").append(OFFSET).append(" ");
sb.append(firstRow);
}
}
if (firstRow > 0) {
sb.append(" ").append(OFFSET).append(" ").append(firstRow);
}
String sql = request.getDbPlatform().completeSql(sb.toString(), request.getOrmQuery());
@@ -20,6 +20,8 @@ public class Db2SqlLimiter implements SqlLimiter {
if (maxRows > 0) {
sb.append(" ").append(NEW_LINE).append("FETCH FIRST ").append(maxRows).append(" ROWS ONLY");
}
// FIXME: There is no 'firstRow' support for DB2. Maybe we can use the MYS compatibility:
// https://www.ibm.com/developerworks/community/blogs/SQLTips4DB2LUW/entry/limit_offset?lang=en
String sql = request.getDbPlatform().completeSql(sb.toString(), request.getOrmQuery());
return new SqlLimitResponse(sql, false);
@@ -22,11 +22,11 @@ public class HanaSqlLimiter implements SqlLimiter {
if (maxRows > 0) {
sb.append(" ").append("limit ").append(maxRows);
if (firstRow > 0) {
sb.append(" ").append("offset ");
sb.append(firstRow);
}
}
if (firstRow > 0) {
sb.append(" ").append("offset ").append(firstRow);
}
// CHECKME: Roland Praml: as far as I see, this code does the same as 'LimotOffsetSqlLimiter'
String sql = request.getDbPlatform().completeSql(sb.toString(), request.getOrmQuery());