HIVE-12344: Wrong types inferred for SemiJoin generation in CBO (Jesus Camacho 
Rodriguez, reviewed by Laljo John Pullokkaran)


Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/898834e5
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/898834e5
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/898834e5

Branch: refs/heads/master-fixed
Commit: 898834e53ac7a3b169372e8e2eb609ead1ec2f6c
Parents: eef89a2
Author: Jesus Camacho Rodriguez <jcama...@apache.org>
Authored: Fri Nov 6 17:27:56 2015 +0100
Committer: Jesus Camacho Rodriguez <jcama...@apache.org>
Committed: Fri Nov 6 17:27:56 2015 +0100

----------------------------------------------------------------------
 .../apache/hadoop/hive/ql/optimizer/calcite/HiveCalciteUtil.java | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/898834e5/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/HiveCalciteUtil.java
----------------------------------------------------------------------
diff --git 
a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/HiveCalciteUtil.java 
b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/HiveCalciteUtil.java
index e2f1cfb..90c2067 100644
--- 
a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/HiveCalciteUtil.java
+++ 
b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/HiveCalciteUtil.java
@@ -234,8 +234,8 @@ public class HiveCalciteUtil {
       leftKeys.add(origLeftInputSize + i);
       rightKeys.add(origRightInputSize + i);
       RexNode cond = rexBuilder.makeCall(SqlStdOperatorTable.EQUALS,
-          rexBuilder.makeInputRef(newLeftFields.get(i).getType(), 
newLeftOffset + i),
-          rexBuilder.makeInputRef(newLeftFields.get(i).getType(), 
newRightOffset + i));
+          rexBuilder.makeInputRef(newLeftFields.get(origLeftInputSize + 
i).getType(), newLeftOffset + i),
+          rexBuilder.makeInputRef(newRightFields.get(origRightInputSize + 
i).getType(), newRightOffset + i));
       if (outJoinCond == null) {
         outJoinCond = cond;
       } else {

Reply via email to