Samarth Jain created PHOENIX-2842: ------------------------------------- Summary: Queries with offset shouldn't be using Spooling and chunked result iterators Key: PHOENIX-2842 URL: https://issues.apache.org/jira/browse/PHOENIX-2842 Project: Phoenix Issue Type: Bug Reporter: Samarth Jain Assignee: Ankit Singhal
While reworking our serial queries for PHOENIX-2724, I noticed that queries with offset are always using SpoolingResultIterator and ChunkedResultIterator when there is no non-row key order by. In ScanPlan.java {code} private static ParallelIteratorFactory buildResultIteratorFactory(StatementContext context, FilterableStatement statement, TableRef table, OrderBy orderBy, Integer limit,Integer offset, boolean allowPageFilter) throws SQLException { if ((isSerial(context, statement, table, orderBy, limit, offset, allowPageFilter) || ScanUtil.isRoundRobinPossible(orderBy, context) || ScanUtil.isPacingScannersPossible(context)) && *offset == null*) { return ParallelIteratorFactory.NOOP_FACTORY; } {code} Spooling and chunking is deprecated. So the code shouldn't be relying on them to be used always. Removing the offset != null check, unfortunately causes tests to fail in QueryWithOffsetIT.java. This is because if we don't create chunked result iterators, server side scanners are not getting advanced up to the offset. [~ankit.singhal] - can you please check? -- This message was sent by Atlassian JIRA (v6.3.4#6332)