Move skip & limit out of QueryInput, into QQueryFilter...

This commit is contained in:
2023-04-26 10:18:44 -05:00
parent caf9f102f6
commit 04a8fa94f9
21 changed files with 244 additions and 171 deletions

View File

@ -83,14 +83,14 @@ public class RDBMSQueryAction extends AbstractRDBMSAction implements QueryInterf
sql.append(" ORDER BY ").append(makeOrderByClause(table, filter.getOrderBys(), joinsContext));
}
if(queryInput.getLimit() != null)
if(filter != null && filter.getLimit() != null)
{
sql.append(" LIMIT ").append(queryInput.getLimit());
sql.append(" LIMIT ").append(filter.getLimit());
if(queryInput.getSkip() != null)
if(filter.getSkip() != null)
{
// todo - other sql grammars?
sql.append(" OFFSET ").append(queryInput.getSkip());
sql.append(" OFFSET ").append(filter.getSkip());
}
}
@ -200,7 +200,7 @@ public class RDBMSQueryAction extends AbstractRDBMSAction implements QueryInterf
List<QueryJoin> queryJoins = queryInput.getQueryJoins();
QTableMetaData table = instance.getTable(tableName);
boolean requiresDistinct = doesSelectClauseRequireDistinct(table);
boolean requiresDistinct = queryInput.getSelectDistinct() || doesSelectClauseRequireDistinct(table);
String clausePrefix = (requiresDistinct) ? "SELECT DISTINCT " : "SELECT ";
List<QFieldMetaData> fieldList = new ArrayList<>(table.getFields().values());