You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@drill.apache.org by ja...@apache.org on 2014/06/26 22:45:13 UTC
[13/16] git commit: DRILL-1080: Handle out of space condition in Hash
join probe
DRILL-1080: Handle out of space condition in Hash join probe
Project: http://git-wip-us.apache.org/repos/asf/incubator-drill/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-drill/commit/b8d45766
Tree: http://git-wip-us.apache.org/repos/asf/incubator-drill/tree/b8d45766
Diff: http://git-wip-us.apache.org/repos/asf/incubator-drill/diff/b8d45766
Branch: refs/heads/master
Commit: b8d457666de8ab3fd122e839d7553a094a2f44be
Parents: 70e71fc
Author: Steven Phillips <sp...@maprtech.com>
Authored: Wed Jun 25 17:07:50 2014 -0700
Committer: Jacques Nadeau <ja...@apache.org>
Committed: Thu Jun 26 09:02:12 2014 -0700
----------------------------------------------------------------------
.../exec/physical/impl/join/HashJoinProbeTemplate.java | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/b8d45766/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/HashJoinProbeTemplate.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/HashJoinProbeTemplate.java b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/HashJoinProbeTemplate.java
index 21c4ae7..9c84e54 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/HashJoinProbeTemplate.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/HashJoinProbeTemplate.java
@@ -171,6 +171,7 @@ public abstract class HashJoinProbeTemplate implements HashJoinProbe {
if(!success){
// we failed to project. redo this record.
getNextRecord = false;
+ return;
}else{
outputRecords++;
@@ -197,8 +198,17 @@ public abstract class HashJoinProbeTemplate implements HashJoinProbe {
// If we have a left outer join, project the keys
if (joinType == JoinRelType.LEFT || joinType == JoinRelType.FULL) {
- boolean success = projectProbeRecord(recordsProcessed, outputRecords++);
+ boolean success = projectProbeRecord(recordsProcessed, outputRecords);
+ if(!success){
+ if(outputRecords == 0){
+ throw new IllegalStateException("Record larger than single batch.");
+ }else{
+ // we've output some records but failed to output this one. return and wait for next call.
+ return;
+ }
+ }
assert success;
+ outputRecords++;
}
recordsProcessed++;
}