[
https://issues.apache.org/jira/browse/DRILL-4476?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15187542#comment-15187542
]
ASF GitHub Bot commented on DRILL-4476:
---------------------------------------
Github user amansinha100 commented on a diff in the pull request:
https://github.com/apache/drill/pull/407#discussion_r55561188
--- Diff:
exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/union/UnionAllRecordBatch.java
---
@@ -294,13 +313,41 @@ public UnionAllInput(UnionAllRecordBatch
unionAllRecordBatch, RecordBatch left,
rightSide = new OneSideInput(right);
}
+ private boolean isBothSideEmpty() {
+ return leftIsFinish && rightIsFinish;
+ }
+
public IterOutcome nextBatch() throws SchemaChangeException {
if(upstream == RecordBatch.IterOutcome.NOT_YET) {
IterOutcome iterLeft = leftSide.nextBatch();
switch(iterLeft) {
case OK_NEW_SCHEMA:
- break;
+ whileLoop:
+ while(leftSide.getRecordBatch().getRecordCount() == 0) {
+ iterLeft = leftSide.nextBatch();
+
+ switch(iterLeft) {
+ case STOP:
+ case OUT_OF_MEMORY:
+ return iterLeft;
+
+ case NONE:
--- End diff --
Is the NONE state not reached outside this while loop ? It wasn't clear why
we need the inner while loop for the left input considering that you don't do
that for the right input.
> Enhance Union-All operator for dealing with empty left input or empty both
> inputs
> ---------------------------------------------------------------------------------
>
> Key: DRILL-4476
> URL: https://issues.apache.org/jira/browse/DRILL-4476
> Project: Apache Drill
> Issue Type: Bug
> Components: Execution - Relational Operators
> Reporter: Sean Hsuan-Yi Chu
> Assignee: Sean Hsuan-Yi Chu
>
> Union-All operator does not deal with the situation where left side comes
> from empty source.
> Due to DRILL-2288's enhancement for empty sources, Union-All operator now can
> be allowed to support this scenario.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)