DRILL-1063: Fix bug in merge join when value is repeating across batch boundary


Project: http://git-wip-us.apache.org/repos/asf/incubator-drill/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-drill/commit/4a70d568
Tree: http://git-wip-us.apache.org/repos/asf/incubator-drill/tree/4a70d568
Diff: http://git-wip-us.apache.org/repos/asf/incubator-drill/diff/4a70d568

Branch: refs/heads/master
Commit: 4a70d568e0c0a3c69ef977bacd98e6740cd8bfee
Parents: a564da9
Author: Steven Phillips <[email protected]>
Authored: Wed Aug 6 12:40:04 2014 -0700
Committer: Jacques Nadeau <[email protected]>
Committed: Wed Aug 6 16:44:21 2014 -0700

----------------------------------------------------------------------
 .../org/apache/drill/exec/physical/impl/join/JoinTemplate.java     | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/4a70d568/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/JoinTemplate.java
----------------------------------------------------------------------
diff --git 
a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/JoinTemplate.java
 
b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/JoinTemplate.java
index 0bfef5b..c704a8a 100644
--- 
a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/JoinTemplate.java
+++ 
b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/JoinTemplate.java
@@ -157,7 +157,7 @@ public abstract class JoinTemplate implements JoinWorker {
           }
           status.advanceRight();
 
-        } while (status.isRightPositionInCurrentBatch() && 
doCompare(status.getLeftPosition(), status.getRightPosition()) == 0);
+        } while ((!status.isLeftRepeating() || 
status.isRightPositionInCurrentBatch()) && status.isRightPositionAllowed() && 
doCompare(status.getLeftPosition(), status.getRightPosition()) == 0);
 
         if (status.getRightPosition() > initialRightPosition &&
             (status.isLeftRepeating() || ! 
status.isNextLeftPositionInCurrentBatch()))

Reply via email to