aboutsummaryrefslogtreecommitdiff
path: root/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/MergeJoinBatch.java
diff options
context:
space:
mode:
authoradeneche <adeneche@gmail.com>2015-10-19 15:40:05 -0700
committeradeneche <adeneche@gmail.com>2015-10-26 16:37:35 -0700
commit1d067d26b1ba510f4a51489d62d2a6d0480a473c (patch)
treea360cde17e5ce42c53bdd6c7180864bc39490239 /exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/MergeJoinBatch.java
parentf30c70fd6f41f2125e5d5997dd4697fe6ff41c4d (diff)
DRILL-2967: Incompatible types error reported in a "not in" query with compatible data types
Diffstat (limited to 'exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/MergeJoinBatch.java')
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/MergeJoinBatch.java7
1 files changed, 6 insertions, 1 deletions
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/MergeJoinBatch.java b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/MergeJoinBatch.java
index ee2ce7fdc..2e777f66b 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/MergeJoinBatch.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/MergeJoinBatch.java
@@ -378,8 +378,12 @@ public class MergeJoinBatch extends AbstractRecordBatch<MergeJoinPOP> {
leftExpr[i] = materializeExpression(condition.getLeft(), lastLeftStatus, left, collector);
rightExpr[i] = materializeExpression(condition.getRight(), lastRightStatus, right, collector);
}
- JoinUtils.addLeastRestrictiveCasts(leftExpr, left, rightExpr, right, context);
+ // if right side is empty, rightExpr will most likely default to NULLABLE INT which may cause the following
+ // call to throw an exception. In this case we can safely skip adding the casts
+ if (lastRightStatus != IterOutcome.NONE) {
+ JoinUtils.addLeastRestrictiveCasts(leftExpr, left, rightExpr, right, context);
+ }
//generate doCompare() method
/////////////////////////////////////////
generateDoCompare(cg, incomingRecordBatch, leftExpr, incomingLeftRecordBatch, rightExpr,
@@ -561,4 +565,5 @@ public class MergeJoinBatch extends AbstractRecordBatch<MergeJoinPOP> {
}
return materializedExpr;
}
+
}