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)