You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@drill.apache.org by "Daniel Barclay (Drill) (JIRA)" <ji...@apache.org> on 2015/12/19 20:59:46 UTC
[jira] [Resolved] (DRILL-3659) UnionAllRecordBatch infers wrongly
from next() IterOutcome values
[ 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)