Repository: hive
Updated Branches:
  refs/heads/branch-1.2 fe4f7a51c -> ef9686bf8


HIVE-10609: Vectorization : Q64 fails with ClassCastException (Matt McCline via 
Vikram Dixit K)


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

Branch: refs/heads/branch-1.2
Commit: ef9686bf8dac78b3071f4a1713bf5cb46366d7b0
Parents: fe4f7a5
Author: vikram <[email protected]>
Authored: Mon May 11 15:55:21 2015 -0700
Committer: vikram <[email protected]>
Committed: Mon May 11 15:55:21 2015 -0700

----------------------------------------------------------------------
 .../hadoop/hive/ql/exec/vector/VectorMapJoinOperator.java    | 8 ++++++--
 .../ql/exec/vector/VectorMapJoinOuterFilteredOperator.java   | 6 ++++--
 2 files changed, 10 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/ef9686bf/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorMapJoinOperator.java
----------------------------------------------------------------------
diff --git 
a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorMapJoinOperator.java 
b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorMapJoinOperator.java
index 15c747e..e9bd44a 100644
--- 
a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorMapJoinOperator.java
+++ 
b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorMapJoinOperator.java
@@ -101,15 +101,19 @@ public class VectorMapJoinOperator extends 
VectorMapJoinBaseOperator {
   @Override
   public Collection<Future<?>> initializeOp(Configuration hconf) throws 
HiveException {
 
+    // Use a final variable to properly parameterize the 
processVectorInspector closure.
+    // Using a member variable in the closure will not do the right thing...
+    final int parameterizePosBigTable = conf.getPosBigTable();
+
     // Code borrowed from VectorReduceSinkOperator.initializeOp
     VectorExpressionWriterFactory.processVectorInspector(
-        (StructObjectInspector) inputObjInspectors[0],
+        (StructObjectInspector) inputObjInspectors[parameterizePosBigTable],
         new VectorExpressionWriterFactory.SingleOIDClosure() {
           @Override
           public void assign(VectorExpressionWriter[] writers,
                              ObjectInspector objectInspector) {
             rowWriters = writers;
-            inputObjInspectors[0] = objectInspector;
+            inputObjInspectors[parameterizePosBigTable] = objectInspector;
           }
         });
     singleRow = new Object[rowWriters.length];

http://git-wip-us.apache.org/repos/asf/hive/blob/ef9686bf/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorMapJoinOuterFilteredOperator.java
----------------------------------------------------------------------
diff --git 
a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorMapJoinOuterFilteredOperator.java
 
b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorMapJoinOuterFilteredOperator.java
index 5aecfcc..a96816f 100644
--- 
a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorMapJoinOuterFilteredOperator.java
+++ 
b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorMapJoinOuterFilteredOperator.java
@@ -62,10 +62,12 @@ public class VectorMapJoinOuterFilteredOperator extends 
VectorMapJoinBaseOperato
   @Override
   public Collection<Future<?>> initializeOp(Configuration hconf) throws 
HiveException {
 
+    final int posBigTable = conf.getPosBigTable();
+
     // We need a input object inspector that is for the row we will extract 
out of the
     // vectorized row batch, not for example, an original inspector for an ORC 
table, etc.
-    inputObjInspectors[0] =
-        
VectorizedBatchUtil.convertToStandardStructObjectInspector((StructObjectInspector)
 inputObjInspectors[0]);
+    inputObjInspectors[posBigTable] =
+        
VectorizedBatchUtil.convertToStandardStructObjectInspector((StructObjectInspector)
 inputObjInspectors[posBigTable]);
 
     // Call super VectorMapJoinOuterFilteredOperator, which calls super 
MapJoinOperator with
     // new input inspector.

Reply via email to