[
https://issues.apache.org/jira/browse/DRILL-3659?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Daniel Barclay (Drill) resolved DRILL-3659.
-------------------------------------------
Resolution: Fixed
Fix Version/s: (was: 1.5.0)
Resolved as part of DRILL-2288 patch.
> UnionAllRecordBatch infers wrongly from next() IterOutcome values
> -----------------------------------------------------------------
>
> Key: DRILL-3659
> URL: https://issues.apache.org/jira/browse/DRILL-3659
> Project: Apache Drill
> Issue Type: Bug
> Components: Execution - Relational Operators
> Reporter: Daniel Barclay (Drill)
> Assignee: Daniel Barclay (Drill)
>
> When UnionAllRecordBatch uses IterOutcome values returned from the next()
> method of upstream batches, it seems to be using those values wrongly (making
> incorrect inferences about what they mean).
> In particular, some switch statements seem to check for NONE vs.
> OK_NEW_SCHEMA in order to determine whether there are any rows (instead of
> explicitly checking the number of rows). However, OK_NEW_SCHEMA can be
> returned even when there are zero rows.
> The apparent latent bug in the union code blocks the fix for DRILL-2288
> (having ScanBatch return OK_NEW_SCHEMA for a zero-rows case in which is was
> wrongly (per the IterOutcome protocol) returning NONE without first returning
> OK_NEW_SCHEMA).
>
> For details of IterOutcome values, see the Javadoc documentation of
> RecordBatch.IterOutcome (after DRILL-3641 is merged; until then, see
> https://github.com/apache/drill/pull/113).
> For an environment/code state that exposes the UnionAllRecordBatch problems,
> see https://github.com/dsbos/incubator-drill/tree/bugs/WORK_2288_etc, which
> includes:
> - a test that exposes the DRILL-2288 problem;
> - an enhanced IteratorValidatorBatchIterator, which now detects IterOutcome
> value sequence violations; and
> - a fixed (though not-yet-cleaned) version of ScanBatch that fixes the
> DRILL-2288 problem and thereby exposes the UnionAllRecordBatch problem
> (several test methods in each of TestUnionAll and TestUnionDistinct fail).
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)