HIVE-16310: Get the output operators of Reducesink when vectorization is on 
(Pengcheng Xiong, reviewed by Ashutosh Chauhan)


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

Branch: refs/heads/branch-2
Commit: 122350053d98b7662a18bad43b60d6b3929faf65
Parents: d18be94
Author: Pengcheng Xiong <pxi...@apache.org>
Authored: Tue Mar 28 11:39:22 2017 -0700
Committer: Pengcheng Xiong <pxi...@apache.org>
Committed: Tue Mar 28 11:40:32 2017 -0700

----------------------------------------------------------------------
 .../apache/hadoop/hive/ql/exec/ExplainTask.java | 11 +++--
 .../hadoop/hive/ql/exec/OperatorFactory.java    | 20 ++++++---
 .../hive/ql/optimizer/physical/Vectorizer.java  | 26 +++++------
 .../llap/vector_aggregate_without_gby.q.out     | 12 ++---
 .../clientpositive/llap/vector_bround.q.out     |  4 +-
 .../llap/vectorized_timestamp.q.out             | 22 +++++-----
 .../clientpositive/tez/explainuser_3.q.out      | 46 ++++++++++----------
 .../tez/vector_join_part_col_char.q.out         | 18 ++++----
 .../clientpositive/vector_outer_join3.q.out     |  6 +--
 .../clientpositive/vector_outer_join4.q.out     |  6 +--
 .../clientpositive/vector_outer_join6.q.out     |  4 +-
 11 files changed, 93 insertions(+), 82 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/12235005/ql/src/java/org/apache/hadoop/hive/ql/exec/ExplainTask.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/ExplainTask.java 
b/ql/src/java/org/apache/hadoop/hive/ql/exec/ExplainTask.java
index d35e3ba..4c24ab4 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/ExplainTask.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/ExplainTask.java
@@ -54,9 +54,11 @@ import org.apache.hadoop.hive.ql.DriverContext;
 import org.apache.hadoop.hive.ql.exec.spark.SparkTask;
 import org.apache.hadoop.hive.ql.exec.tez.TezTask;
 import org.apache.hadoop.hive.ql.exec.vector.VectorGroupByOperator;
+import org.apache.hadoop.hive.ql.exec.vector.VectorReduceSinkOperator;
 import org.apache.hadoop.hive.ql.exec.vector.VectorizationContext;
 import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression;
 import 
org.apache.hadoop.hive.ql.exec.vector.expressions.aggregates.VectorAggregateExpression;
+import 
org.apache.hadoop.hive.ql.exec.vector.reducesink.VectorReduceSinkCommonOperator;
 import org.apache.hadoop.hive.ql.plan.MapJoinDesc;
 import org.apache.hadoop.hive.ql.plan.ReduceSinkDesc;
 import org.apache.hadoop.hive.ql.hooks.ReadEntity;
@@ -795,9 +797,12 @@ public class ExplainTask extends Task<ExplainWork> 
implements Serializable {
           if (jsonOut != null && jsonOut.length() > 0) {
             ((JSONObject) 
jsonOut.get(JSONObject.getNames(jsonOut)[0])).put("OperatorId:",
                 operator.getOperatorId());
-            if (!this.work.isUserLevelExplain() && this.work.isFormatted()
-                && operator instanceof ReduceSinkOperator) {
-              List<String> outputOperators = ((ReduceSinkOperator) 
operator).getConf().getOutputOperators();
+            if (!this.work.isUserLevelExplain()
+                && this.work.isFormatted()
+                && (operator instanceof ReduceSinkOperator
+                    || operator instanceof VectorReduceSinkOperator || 
operator instanceof VectorReduceSinkCommonOperator)) {
+              List<String> outputOperators = ((ReduceSinkDesc) 
operator.getConf())
+                  .getOutputOperators();
               if (outputOperators != null) {
                 ((JSONObject) 
jsonOut.get(JSONObject.getNames(jsonOut)[0])).put(OUTPUT_OPERATORS,
                     Arrays.toString(outputOperators.toArray()));

http://git-wip-us.apache.org/repos/asf/hive/blob/12235005/ql/src/java/org/apache/hadoop/hive/ql/exec/OperatorFactory.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/OperatorFactory.java 
b/ql/src/java/org/apache/hadoop/hive/ql/exec/OperatorFactory.java
index af1fa66..afe1484 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/OperatorFactory.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/OperatorFactory.java
@@ -38,6 +38,7 @@ import 
org.apache.hadoop.hive.ql.exec.vector.VectorSelectOperator;
 import org.apache.hadoop.hive.ql.exec.vector.VectorSparkHashTableSinkOperator;
 import 
org.apache.hadoop.hive.ql.exec.vector.VectorSparkPartitionPruningSinkOperator;
 import org.apache.hadoop.hive.ql.exec.vector.VectorizationContext;
+import 
org.apache.hadoop.hive.ql.exec.vector.reducesink.VectorReduceSinkCommonOperator;
 import org.apache.hadoop.hive.ql.metadata.HiveException;
 import org.apache.hadoop.hive.ql.optimizer.spark.SparkPartitionPruningSinkDesc;
 import org.apache.hadoop.hive.ql.parse.spark.SparkPartitionPruningSinkOperator;
@@ -143,13 +144,17 @@ public final class OperatorFactory {
 
   public static <T extends OperatorDesc> Operator<T> getVectorOperator(
     Class<? extends Operator<?>> opClass, CompilationOpContext cContext, T 
conf,
-        VectorizationContext vContext) throws HiveException {
+        VectorizationContext vContext, Operator<? extends OperatorDesc> 
originalOp) throws HiveException {
     try {
       VectorDesc vectorDesc = ((AbstractOperatorDesc) conf).getVectorDesc();
       vectorDesc.setVectorOp(opClass);
-      Operator<T> op = (Operator<T>) opClass.getDeclaredConstructor(
-          CompilationOpContext.class, VectorizationContext.class, 
OperatorDesc.class)
-          .newInstance(cContext, vContext, conf);
+      Operator<T> op = (Operator<T>) 
opClass.getDeclaredConstructor(CompilationOpContext.class,
+          VectorizationContext.class, 
OperatorDesc.class).newInstance(cContext, vContext, conf);
+      op.setOperatorId(originalOp.getOperatorId());
+      if (op instanceof VectorReduceSinkOperator || op instanceof 
VectorReduceSinkCommonOperator) {
+        ((ReduceSinkDesc) op.getConf()).setOutputOperators(((ReduceSinkDesc) 
originalOp.getConf())
+            .getOutputOperators());
+      }
       return op;
     } catch (Exception e) {
       e.printStackTrace();
@@ -158,11 +163,12 @@ public final class OperatorFactory {
   }
 
   public static <T extends OperatorDesc> Operator<T> getVectorOperator(
-      CompilationOpContext cContext, T conf, VectorizationContext vContext) 
throws HiveException {
+      CompilationOpContext cContext, T conf, VectorizationContext vContext,
+      Operator<? extends OperatorDesc> originalOp) throws HiveException {
     Class<T> descClass = (Class<T>) conf.getClass();
-    Class<?> opClass = vectorOpvec.get(descClass);
+    Class<? extends Operator<? extends OperatorDesc>> opClass = 
vectorOpvec.get(descClass);
     if (opClass != null) {
-      return getVectorOperator(vectorOpvec.get(descClass), cContext, conf, 
vContext);
+      return getVectorOperator(opClass, cContext, conf, vContext, originalOp);
     }
     throw new HiveException("No vector operator for descriptor class " + 
descClass.getName());
   }

http://git-wip-us.apache.org/repos/asf/hive/blob/12235005/ql/src/java/org/apache/hadoop/hive/ql/optimizer/physical/Vectorizer.java
----------------------------------------------------------------------
diff --git 
a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/physical/Vectorizer.java 
b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/physical/Vectorizer.java
index 2f85379..8f0241b 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/physical/Vectorizer.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/physical/Vectorizer.java
@@ -2515,7 +2515,7 @@ public class Vectorizer implements PhysicalPlanResolver {
     vectorDesc.setVectorMapJoinInfo(vectorMapJoinInfo);
 
     vectorOp = OperatorFactory.getVectorOperator(
-        opClass, op.getCompilationOpContext(), op.getConf(), vContext);
+        opClass, op.getCompilationOpContext(), op.getConf(), vContext, op);
     LOG.info("Vectorizer vectorizeOperator map join class " + 
vectorOp.getClass().getSimpleName());
 
     return vectorOp;
@@ -2980,7 +2980,7 @@ public class Vectorizer implements PhysicalPlanResolver {
     Operator<? extends OperatorDesc> vectorOp = null;
     try {
       vectorOp = OperatorFactory.getVectorOperator(
-          opClass, op.getCompilationOpContext(), op.getConf(), vContext);
+          opClass, op.getCompilationOpContext(), op.getConf(), vContext, op);
     } catch (Exception e) {
       LOG.info("Vectorizer vectorizeOperator reduce sink class exception " + 
opClass.getSimpleName() +
           " exception " + e);
@@ -3258,7 +3258,7 @@ public class Vectorizer implements PhysicalPlanResolver {
         vContext.getVectorExpression(predicateExpr, 
VectorExpressionDescriptor.Mode.FILTER);
     vectorFilterDesc.setPredicateExpression(vectorPredicateExpr);
     return OperatorFactory.getVectorOperator(
-        filterOp.getCompilationOpContext(), filterDesc, vContext);
+        filterOp.getCompilationOpContext(), filterDesc, vContext, filterOp);
   }
 
   /*
@@ -3286,7 +3286,7 @@ public class Vectorizer implements PhysicalPlanResolver {
     vectorGroupByDesc.setAggregators(vecAggregators);
     vectorGroupByDesc.setProjectedOutputColumns(projectedOutputColumns);
     return OperatorFactory.getVectorOperator(
-        groupByOp.getCompilationOpContext(), groupByDesc, vContext);
+        groupByOp.getCompilationOpContext(), groupByDesc, vContext, groupByOp);
   }
 
   public static Operator<? extends OperatorDesc> vectorizeSelectOperator(
@@ -3316,7 +3316,7 @@ public class Vectorizer implements PhysicalPlanResolver {
     vectorSelectDesc.setSelectExpressions(vectorSelectExprs);
     vectorSelectDesc.setProjectedOutputColumns(projectedOutputColumns);
     return OperatorFactory.getVectorOperator(
-        selectOp.getCompilationOpContext(), selectDesc, vContext);
+        selectOp.getCompilationOpContext(), selectDesc, vContext, selectOp);
   }
 
   public Operator<? extends OperatorDesc> vectorizeOperator(Operator<? extends 
OperatorDesc> op,
@@ -3352,7 +3352,7 @@ public class Vectorizer implements PhysicalPlanResolver {
               }
   
               vectorOp = OperatorFactory.getVectorOperator(
-                  opClass, op.getCompilationOpContext(), op.getConf(), 
vContext);
+                  opClass, op.getCompilationOpContext(), op.getConf(), 
vContext, op);
               isNative = false;
             } else {
   
@@ -3378,7 +3378,7 @@ public class Vectorizer implements PhysicalPlanResolver {
             VectorSMBJoinDesc vectorSMBJoinDesc = new VectorSMBJoinDesc();
             smbJoinSinkDesc.setVectorDesc(vectorSMBJoinDesc);
             vectorOp = OperatorFactory.getVectorOperator(
-                op.getCompilationOpContext(), smbJoinSinkDesc, vContext);
+                op.getCompilationOpContext(), smbJoinSinkDesc, vContext, op);
             isNative = false;
           }
         }
@@ -3393,7 +3393,7 @@ public class Vectorizer implements PhysicalPlanResolver {
           if (!specialize) {
 
             vectorOp = OperatorFactory.getVectorOperator(
-                op.getCompilationOpContext(), op.getConf(), vContext);
+                op.getCompilationOpContext(), op.getConf(), vContext, op);
             isNative = false;
           } else {
 
@@ -3469,7 +3469,7 @@ public class Vectorizer implements PhysicalPlanResolver {
           VectorFileSinkDesc vectorFileSinkDesc = new VectorFileSinkDesc();
           fileSinkDesc.setVectorDesc(vectorFileSinkDesc);
           vectorOp = OperatorFactory.getVectorOperator(
-              op.getCompilationOpContext(), fileSinkDesc, vContext);
+              op.getCompilationOpContext(), fileSinkDesc, vContext, op);
           isNative = false;
         }
         break;
@@ -3479,7 +3479,7 @@ public class Vectorizer implements PhysicalPlanResolver {
           VectorLimitDesc vectorLimitDesc = new VectorLimitDesc();
           limitDesc.setVectorDesc(vectorLimitDesc);
           vectorOp = OperatorFactory.getVectorOperator(
-              op.getCompilationOpContext(), limitDesc, vContext);
+              op.getCompilationOpContext(), limitDesc, vContext, op);
           isNative = true;
         }
         break;
@@ -3489,7 +3489,7 @@ public class Vectorizer implements PhysicalPlanResolver {
           VectorAppMasterEventDesc vectorEventDesc = new 
VectorAppMasterEventDesc();
           eventDesc.setVectorDesc(vectorEventDesc);
           vectorOp = OperatorFactory.getVectorOperator(
-              op.getCompilationOpContext(), eventDesc, vContext);
+              op.getCompilationOpContext(), eventDesc, vContext, op);
           isNative = true;
         }
         break;
@@ -3499,7 +3499,7 @@ public class Vectorizer implements PhysicalPlanResolver {
           VectorSparkHashTableSinkDesc vectorSparkHashTableSinkDesc = new 
VectorSparkHashTableSinkDesc();
           sparkHashTableSinkDesc.setVectorDesc(vectorSparkHashTableSinkDesc);
           vectorOp = OperatorFactory.getVectorOperator(
-              op.getCompilationOpContext(), sparkHashTableSinkDesc, vContext);
+              op.getCompilationOpContext(), sparkHashTableSinkDesc, vContext, 
op);
           isNative = true;
         }
         break;
@@ -3509,7 +3509,7 @@ public class Vectorizer implements PhysicalPlanResolver {
           VectorSparkPartitionPruningSinkDesc 
vectorSparkPartitionPruningSinkDesc = new VectorSparkPartitionPruningSinkDesc();
           
sparkPartitionPruningSinkDesc.setVectorDesc(vectorSparkPartitionPruningSinkDesc);
           vectorOp = OperatorFactory.getVectorOperator(
-              op.getCompilationOpContext(), sparkPartitionPruningSinkDesc, 
vContext);
+              op.getCompilationOpContext(), sparkPartitionPruningSinkDesc, 
vContext, op);
           isNative = true;
         }
         break;

http://git-wip-us.apache.org/repos/asf/hive/blob/12235005/ql/src/test/results/clientpositive/llap/vector_aggregate_without_gby.q.out
----------------------------------------------------------------------
diff --git 
a/ql/src/test/results/clientpositive/llap/vector_aggregate_without_gby.q.out 
b/ql/src/test/results/clientpositive/llap/vector_aggregate_without_gby.q.out
index 0cf62d3..f633594 100644
--- a/ql/src/test/results/clientpositive/llap/vector_aggregate_without_gby.q.out
+++ b/ql/src/test/results/clientpositive/llap/vector_aggregate_without_gby.q.out
@@ -45,16 +45,16 @@ Stage-0
     limit:-1
     Stage-1
       Reducer 2 vectorized, llap
-      File Output Operator [FS_14]
-        Group By Operator [GBY_13] (rows=1 width=188)
+      File Output Operator [FS_7]
+        Group By Operator [GBY_5] (rows=1 width=188)
           
Output:["_col0","_col1"],aggregations:["max(VALUE._col0)","max(VALUE._col1)"]
         <-Map 1 [CUSTOM_SIMPLE_EDGE] vectorized, llap
-          PARTITION_ONLY_SHUFFLE [RS_12]
-            Group By Operator [GBY_11] (rows=1 width=188)
+          PARTITION_ONLY_SHUFFLE [RS_4]
+            Group By Operator [GBY_3] (rows=1 width=188)
               Output:["_col0","_col1"],aggregations:["max(dt)","max(greg_dt)"]
-              Select Operator [SEL_10] (rows=3 width=102)
+              Select Operator [SEL_2] (rows=3 width=102)
                 Output:["dt","greg_dt"]
-                Filter Operator [FIL_9] (rows=3 width=102)
+                Filter Operator [FIL_8] (rows=3 width=102)
                   predicate:(id = 5)
                   TableScan [TS_0] (rows=7 width=102)
                     
default@testvec,testvec,Tbl:COMPLETE,Col:NONE,Output:["id","dt","greg_dt"]

http://git-wip-us.apache.org/repos/asf/hive/blob/12235005/ql/src/test/results/clientpositive/llap/vector_bround.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/llap/vector_bround.q.out 
b/ql/src/test/results/clientpositive/llap/vector_bround.q.out
index d463f1a..5d1990a 100644
--- a/ql/src/test/results/clientpositive/llap/vector_bround.q.out
+++ b/ql/src/test/results/clientpositive/llap/vector_bround.q.out
@@ -43,8 +43,8 @@ Stage-0
     limit:-1
     Stage-1
       Map 1 vectorized, llap
-      File Output Operator [FS_4]
-        Select Operator [SEL_3] (rows=8 width=16)
+      File Output Operator [FS_2]
+        Select Operator [SEL_1] (rows=8 width=16)
           Output:["_col0","_col1"]
           TableScan [TS_0] (rows=8 width=16)
             
default@test_vector_bround,test_vector_bround,Tbl:COMPLETE,Col:NONE,Output:["v0","v1"]

http://git-wip-us.apache.org/repos/asf/hive/blob/12235005/ql/src/test/results/clientpositive/llap/vectorized_timestamp.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/llap/vectorized_timestamp.q.out 
b/ql/src/test/results/clientpositive/llap/vectorized_timestamp.q.out
index 82d5518..d224bad 100644
--- a/ql/src/test/results/clientpositive/llap/vectorized_timestamp.q.out
+++ b/ql/src/test/results/clientpositive/llap/vectorized_timestamp.q.out
@@ -128,8 +128,8 @@ Stage-0
     limit:-1
     Stage-1
       Map 1 vectorized, llap
-      File Output Operator [FS_4]
-        Select Operator [SEL_3] (rows=2 width=40)
+      File Output Operator [FS_2]
+        Select Operator [SEL_1] (rows=2 width=40)
           Output:["_col0"]
           TableScan [TS_0] (rows=2 width=40)
             default@test,test,Tbl:COMPLETE,Col:NONE,Output:["ts"]
@@ -160,16 +160,16 @@ Stage-0
     limit:-1
     Stage-1
       Reducer 2 vectorized, llap
-      File Output Operator [FS_12]
-        Select Operator [SEL_11] (rows=1 width=80)
+      File Output Operator [FS_6]
+        Select Operator [SEL_5] (rows=1 width=80)
           Output:["_col0","_col1","_col2"]
-          Group By Operator [GBY_10] (rows=1 width=80)
+          Group By Operator [GBY_4] (rows=1 width=80)
             
Output:["_col0","_col1"],aggregations:["min(VALUE._col0)","max(VALUE._col1)"]
           <-Map 1 [CUSTOM_SIMPLE_EDGE] vectorized, llap
-            PARTITION_ONLY_SHUFFLE [RS_9]
-              Group By Operator [GBY_8] (rows=1 width=80)
+            PARTITION_ONLY_SHUFFLE [RS_3]
+              Group By Operator [GBY_2] (rows=1 width=80)
                 Output:["_col0","_col1"],aggregations:["min(ts)","max(ts)"]
-                Select Operator [SEL_7] (rows=2 width=40)
+                Select Operator [SEL_1] (rows=2 width=40)
                   Output:["ts"]
                   TableScan [TS_0] (rows=2 width=40)
                     default@test,test,Tbl:COMPLETE,Col:NONE,Output:["ts"]
@@ -196,10 +196,10 @@ Stage-0
     limit:-1
     Stage-1
       Map 1 vectorized, llap
-      File Output Operator [FS_7]
-        Select Operator [SEL_6] (rows=1 width=40)
+      File Output Operator [FS_3]
+        Select Operator [SEL_2] (rows=1 width=40)
           Output:["_col0"]
-          Filter Operator [FIL_5] (rows=1 width=40)
+          Filter Operator [FIL_4] (rows=1 width=40)
             predicate:(ts) IN (0001-01-01 00:00:00.0, 0002-02-02 00:00:00.0)
             TableScan [TS_0] (rows=2 width=40)
               default@test,test,Tbl:COMPLETE,Col:NONE,Output:["ts"]

http://git-wip-us.apache.org/repos/asf/hive/blob/12235005/ql/src/test/results/clientpositive/tez/explainuser_3.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/tez/explainuser_3.q.out 
b/ql/src/test/results/clientpositive/tez/explainuser_3.q.out
index adcff44..cbfb33a 100644
--- a/ql/src/test/results/clientpositive/tez/explainuser_3.q.out
+++ b/ql/src/test/results/clientpositive/tez/explainuser_3.q.out
@@ -40,12 +40,12 @@ Stage-0
     limit:-1
     Stage-1
       Reducer 2 vectorized
-      File Output Operator [FS_8]
-        Select Operator [SEL_7] (rows=10 width=101)
+      File Output Operator [FS_4]
+        Select Operator [SEL_3] (rows=10 width=101)
           Output:["_col0","_col1"]
         <-Map 1 [SIMPLE_EDGE] vectorized
-          SHUFFLE [RS_6]
-            Select Operator [SEL_5] (rows=10 width=101)
+          SHUFFLE [RS_2]
+            Select Operator [SEL_1] (rows=10 width=101)
               Output:["_col0","_col1"]
               TableScan [TS_0] (rows=10 width=101)
                 default@acid_vectorized,acid_vectorized, ACID 
table,Tbl:COMPLETE,Col:COMPLETE,Output:["a","b"]
@@ -276,9 +276,9 @@ Stage-3
           Dependency Collection{}
             Stage-1
               Map 1 vectorized
-              File Output Operator [FS_4]
+              File Output Operator [FS_2]
                 table:{"name:":"default.src_autho_test"}
-                Select Operator [SEL_3] (rows=500 width=178)
+                Select Operator [SEL_1] (rows=500 width=178)
                   Output:["_col0","_col1"]
                   TableScan [TS_0] (rows=500 width=178)
                     
default@src,src,Tbl:COMPLETE,Col:COMPLETE,Output:["key","value"]
@@ -462,14 +462,14 @@ Stage-0
     limit:5
     Stage-1
       Reducer 2 vectorized
-      File Output Operator [FS_10]
-        Limit [LIM_9] (rows=5 width=178)
+      File Output Operator [FS_5]
+        Limit [LIM_4] (rows=5 width=178)
           Number of rows:5
-          Select Operator [SEL_8] (rows=500 width=178)
+          Select Operator [SEL_3] (rows=500 width=178)
             Output:["_col0","_col1"]
           <-Map 1 [SIMPLE_EDGE] vectorized
-            SHUFFLE [RS_7]
-              Select Operator [SEL_6] (rows=500 width=178)
+            SHUFFLE [RS_2]
+              Select Operator [SEL_1] (rows=500 width=178)
                 Output:["_col0","_col1"]
                 TableScan [TS_0] (rows=500 width=178)
                   
default@src,src,Tbl:COMPLETE,Col:COMPLETE,Output:["key","value"]
@@ -509,11 +509,11 @@ Stage-3
                   Conditional Operator
                     Stage-1
                       Map 1 vectorized
-                      File Output Operator [FS_10]
+                      File Output Operator [FS_3]
                         table:{"name:":"default.orc_merge5"}
-                        Select Operator [SEL_9] (rows=306 width=268)
+                        Select Operator [SEL_2] (rows=306 width=268)
                           Output:["_col0","_col1","_col2","_col3","_col4"]
-                          Filter Operator [FIL_8] (rows=306 width=268)
+                          Filter Operator [FIL_4] (rows=306 width=268)
                             predicate:(userid <= 13)
                             TableScan [TS_0] (rows=919 width=268)
                               
default@orc_merge5,orc_merge5,Tbl:COMPLETE,Col:NONE,Output:["userid","string1","subtype","decimal1","ts"]
@@ -662,23 +662,23 @@ Stage-0
     limit:-1
     Stage-1
       Map 2 vectorized
-      File Output Operator [FS_34]
-        Select Operator [SEL_33] (rows=550 width=18)
+      File Output Operator [FS_10]
+        Select Operator [SEL_9] (rows=550 width=18)
           Output:["_col0","_col1","_col2"]
-          Map Join Operator [MAPJOIN_32] (rows=550 width=18)
-            
BucketMapJoin:true,Conds:RS_29._col0=SEL_31._col0(Inner),HybridGraceHashJoin:true,Output:["_col0","_col1","_col3"]
+          Map Join Operator [MAPJOIN_25] (rows=550 width=18)
+            
BucketMapJoin:true,Conds:RS_6._col0=SEL_5._col0(Inner),HybridGraceHashJoin:true,Output:["_col0","_col1","_col3"]
           <-Map 1 [CUSTOM_EDGE] vectorized
-            MULTICAST [RS_29]
+            MULTICAST [RS_6]
               PartitionCols:_col0
-              Select Operator [SEL_28] (rows=242 width=18)
+              Select Operator [SEL_2] (rows=242 width=18)
                 Output:["_col0","_col1"]
-                Filter Operator [FIL_27] (rows=242 width=18)
+                Filter Operator [FIL_13] (rows=242 width=18)
                   predicate:key is not null
                   TableScan [TS_0] (rows=242 width=18)
                     default@tab,a,Tbl:COMPLETE,Col:NONE,Output:["key","value"]
-          <-Select Operator [SEL_31] (rows=500 width=18)
+          <-Select Operator [SEL_5] (rows=500 width=18)
               Output:["_col0","_col1"]
-              Filter Operator [FIL_30] (rows=500 width=18)
+              Filter Operator [FIL_14] (rows=500 width=18)
                 predicate:key is not null
                 TableScan [TS_3] (rows=500 width=18)
                   
default@tab_part,b,Tbl:COMPLETE,Col:NONE,Output:["key","value"]

http://git-wip-us.apache.org/repos/asf/hive/blob/12235005/ql/src/test/results/clientpositive/tez/vector_join_part_col_char.q.out
----------------------------------------------------------------------
diff --git 
a/ql/src/test/results/clientpositive/tez/vector_join_part_col_char.q.out 
b/ql/src/test/results/clientpositive/tez/vector_join_part_col_char.q.out
index 2b9882e..df79710 100644
--- a/ql/src/test/results/clientpositive/tez/vector_join_part_col_char.q.out
+++ b/ql/src/test/results/clientpositive/tez/vector_join_part_col_char.q.out
@@ -111,24 +111,24 @@ Stage-0
       Reducer 2
       File Output Operator [FS_10]
         Merge Join Operator [MERGEJOIN_21] (rows=2 width=431)
-          
Conds:RS_23._col2=RS_28._col2(Inner),Output:["_col0","_col1","_col2","_col3","_col4","_col5"]
+          
Conds:RS_6._col2=RS_7._col2(Inner),Output:["_col0","_col1","_col2","_col3","_col4","_col5"]
         <-Map 1 [SIMPLE_EDGE] vectorized
-          SHUFFLE [RS_23]
+          SHUFFLE [RS_6]
             PartitionCols:_col2
-            Select Operator [SEL_22] (rows=2 width=134)
+            Select Operator [SEL_2] (rows=2 width=134)
               Output:["_col0","_col1","_col2"]
               TableScan [TS_0] (rows=2 width=236)
                 
default@char_tbl1,c1,Tbl:COMPLETE,Col:PARTIAL,Output:["name","age"]
-          Dynamic Partitioning Event Operator [EVENT_26] (rows=1 width=134)
-            Group By Operator [GBY_25] (rows=1 width=134)
+          Dynamic Partitioning Event Operator [EVENT_20] (rows=1 width=134)
+            Group By Operator [GBY_19] (rows=1 width=134)
               Output:["_col0"],keys:_col0
-              Select Operator [SEL_24] (rows=2 width=134)
+              Select Operator [SEL_18] (rows=2 width=134)
                 Output:["_col0"]
-                 Please refer to the previous Select Operator [SEL_22]
+                 Please refer to the previous Select Operator [SEL_2]
         <-Map 3 [SIMPLE_EDGE] vectorized
-          SHUFFLE [RS_28]
+          SHUFFLE [RS_7]
             PartitionCols:_col2
-            Select Operator [SEL_27] (rows=2 width=89)
+            Select Operator [SEL_5] (rows=2 width=89)
               Output:["_col0","_col1","_col2"]
               TableScan [TS_3] (rows=2 width=190)
                 
default@char_tbl2,c2,Tbl:COMPLETE,Col:PARTIAL,Output:["name","age"]

http://git-wip-us.apache.org/repos/asf/hive/blob/12235005/ql/src/test/results/clientpositive/vector_outer_join3.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/vector_outer_join3.q.out 
b/ql/src/test/results/clientpositive/vector_outer_join3.q.out
index 870d419..d97ff1d 100644
--- a/ql/src/test/results/clientpositive/vector_outer_join3.q.out
+++ b/ql/src/test/results/clientpositive/vector_outer_join3.q.out
@@ -242,7 +242,7 @@ left outer join small_alltypesorc_a hd
   on hd.cstring1 = c.cstring1
 ) t1
 POSTHOOK: type: QUERY
-{"PLAN 
VECTORIZATION":{"enabled":true,"enabledConditionsMet":["hive.vectorized.execution.enabled
 IS true"]},"STAGE DEPENDENCIES":{"Stage-8":{"ROOT 
STAGE":"TRUE"},"Stage-3":{"DEPENDENT STAGES":"Stage-8"},"Stage-0":{"DEPENDENT 
STAGES":"Stage-3"}},"STAGE PLANS":{"Stage-8":{"Map Reduce Local Work":{"Alias 
-> Map Local Tables:":{"$hdt$_1:cd":{"Fetch 
Operator":{"limit:":"-1"}},"$hdt$_2:hd":{"Fetch 
Operator":{"limit:":"-1"}}},"Alias -> Map Local Operator 
Tree:":{"$hdt$_1:cd":{"TableScan":{"alias:":"cd","Statistics:":"Num rows: 20 
Data size: 4400 Basic stats: COMPLETE Column stats: 
NONE","OperatorId:":"TS_2","children":{"Select Operator":{"expressions:":"cint 
(type: int)","outputColumnNames:":["_col0"],"Statistics:":"Num rows: 20 Data 
size: 4400 Basic stats: COMPLETE Column stats: 
NONE","OperatorId:":"SEL_3","children":{"HashTable Sink 
Operator":{"keys:":{"0":"_col0 (type: int)","1":"_col0 (type: 
int)"},"OperatorId:":"HASHTABLESINK_26"}}}}}},"$hdt$_2:hd":{"TableScan":{"alias:":"hd","Statist
 ics:":"Num rows: 20 Data size: 4400 Basic stats: COMPLETE Column stats: 
NONE","OperatorId:":"TS_4","children":{"Select 
Operator":{"expressions:":"cstring1 (type: 
string)","outputColumnNames:":["_col0"],"Statistics:":"Num rows: 20 Data size: 
4400 Basic stats: COMPLETE Column stats: 
NONE","OperatorId:":"SEL_5","children":{"HashTable Sink 
Operator":{"keys:":{"0":"_col1 (type: string)","1":"_col0 (type: 
string)"},"OperatorId:":"HASHTABLESINK_24"}}}}}}}}},"Stage-3":{"Map 
Reduce":{"Map Operator Tree:":[{"TableScan":{"alias:":"c","Statistics:":"Num 
rows: 20 Data size: 4400 Basic stats: COMPLETE Column stats: NONE","TableScan 
Vectorization:":{"native:":"true","projectedOutputColumns:":"[0, 1, 2, 3, 4, 5, 
6, 7, 8, 9, 10, 11]"},"OperatorId:":"TS_0","children":{"Select 
Operator":{"expressions:":"cint (type: int), cstring1 (type: 
string)","outputColumnNames:":["_col0","_col1"],"Select 
Vectorization:":{"className:":"VectorSelectOperator","native:":"true","projectedOutputColumns:":"[2,
 6]"},"Stat
 istics:":"Num rows: 20 Data size: 4400 Basic stats: COMPLETE Column stats: 
NONE","OperatorId:":"SEL_28","children":{"Map Join Operator":{"condition 
map:":[{"":"Left Outer Join0 to 1"}],"keys:":{"0":"_col0 (type: 
int)","1":"_col0 (type: int)"},"Map Join 
Vectorization:":{"className:":"VectorMapJoinOperator","native:":"false","nativeConditionsMet:":["hive.mapjoin.optimized.hashtable
 IS true","hive.vectorized.execution.mapjoin.native.enabled IS true","One 
MapJoin Condition IS true","No nullsafe IS true","Small table vectorizes IS 
true","Optimized Table and Supports Key Types IS 
true"],"nativeConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS 
false"]},"outputColumnNames:":["_col1"],"Statistics:":"Num rows: 22 Data size: 
4840 Basic stats: COMPLETE Column stats: 
NONE","OperatorId:":"MAPJOIN_29","children":{"Map Join Operator":{"condition 
map:":[{"":"Left Outer Join0 to 1"}],"keys:":{"0":"_col1 (type: 
string)","1":"_col0 (type: string)"},"Map Join Vectorization:":{"className:"
 
:"VectorMapJoinOperator","native:":"false","nativeConditionsMet:":["hive.mapjoin.optimized.hashtable
 IS true","hive.vectorized.execution.mapjoin.native.enabled IS true","One 
MapJoin Condition IS true","No nullsafe IS true","Small table vectorizes IS 
true","Optimized Table and Supports Key Types IS 
true"],"nativeConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS 
false"]},"Statistics:":"Num rows: 24 Data size: 5324 Basic stats: COMPLETE 
Column stats: NONE","OperatorId:":"MAPJOIN_30","children":{"Group By 
Operator":{"aggregations:":["count()"],"Group By 
Vectorization:":{"aggregators:":["VectorUDAFCountStar(*) -> 
bigint"],"className:":"VectorGroupByOperator","vectorOutput:":"true","native:":"false","projectedOutputColumns:":"[0]"},"mode:":"hash","outputColumnNames:":["_col0"],"Statistics:":"Num
 rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: 
NONE","OperatorId:":"GBY_31","children":{"Reduce Output Operator":{"sort 
order:":"","Reduce Sink Vectorization:":{"className
 
:":"VectorReduceSinkOperator","native:":"false","nativeConditionsMet:":["hive.vectorized.execution.reducesink.new.enabled
 IS true","No TopN IS true","No DISTINCT columns IS true","BinarySortableSerDe 
for keys IS true","LazyBinarySerDe for values IS 
true"],"nativeConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS 
false"]},"Statistics:":"Num rows: 1 Data size: 8 Basic stats: COMPLETE Column 
stats: NONE","value expressions:":"_col0 (type: 
bigint)","OperatorId:":"RS_32","OutputOperators:":"[GBY_15]"}}}}}}}}}}}}],"Execution
 mode:":"vectorized","Map 
Vectorization:":{"enabled:":"true","enabledConditionsMet:":["hive.vectorized.use.vectorized.input.format
 IS 
true"],"groupByVectorOutput:":"true","inputFileFormats:":["org.apache.hadoop.hive.ql.io.orc.OrcInputFormat"],"allNative:":"false","usesVectorUDFAdaptor:":"false","vectorized:":"true","rowBatchContext:":{"dataColumnCount:":"12","includeColumns:":"[2,
 6]","dataColumns:":["ctinyint:tinyint","csmallint:smallint","cint:int","cbi
 
gint:bigint","cfloat:float","cdouble:double","cstring1:string","cstring2:string","ctimestamp1:timestamp","ctimestamp2:timestamp","cboolean1:boolean","cboolean2:boolean"],"partitionColumnCount:":"0"}},"Local
 Work:":{"Map Reduce Local Work":{}},"Reduce 
Vectorization:":{"enabled:":"false","enableConditionsMet:":["hive.vectorized.execution.reduce.enabled
 IS true"],"enableConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] 
IS false"]},"Reduce Operator Tree:":{"Group By 
Operator":{"aggregations:":["count(VALUE._col0)"],"Group By 
Vectorization:":{"vectorOutput:":"false","native:":"false","projectedOutputColumns:":"null"},"mode:":"mergepartial","outputColumnNames:":["_col0"],"Statistics:":"Num
 rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: 
NONE","OperatorId:":"GBY_15","children":{"File Output 
Operator":{"compressed:":"false","Statistics:":"Num rows: 1 Data size: 8 Basic 
stats: COMPLETE Column stats: NONE","table:":{"input 
format:":"org.apache.hadoop.mapred.SequenceFileIn
 putFormat","output 
format:":"org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat","serde:":"org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe"},"OperatorId:":"FS_17"}}}}}},"Stage-0":{"Fetch
 Operator":{"limit:":"-1","Processor 
Tree:":{"ListSink":{"OperatorId:":"LIST_SINK_33"}}}}}}
+{"PLAN 
VECTORIZATION":{"enabled":true,"enabledConditionsMet":["hive.vectorized.execution.enabled
 IS true"]},"STAGE DEPENDENCIES":{"Stage-8":{"ROOT 
STAGE":"TRUE"},"Stage-3":{"DEPENDENT STAGES":"Stage-8"},"Stage-0":{"DEPENDENT 
STAGES":"Stage-3"}},"STAGE PLANS":{"Stage-8":{"Map Reduce Local Work":{"Alias 
-> Map Local Tables:":{"$hdt$_1:cd":{"Fetch 
Operator":{"limit:":"-1"}},"$hdt$_2:hd":{"Fetch 
Operator":{"limit:":"-1"}}},"Alias -> Map Local Operator 
Tree:":{"$hdt$_1:cd":{"TableScan":{"alias:":"cd","Statistics:":"Num rows: 20 
Data size: 4400 Basic stats: COMPLETE Column stats: 
NONE","OperatorId:":"TS_2","children":{"Select Operator":{"expressions:":"cint 
(type: int)","outputColumnNames:":["_col0"],"Statistics:":"Num rows: 20 Data 
size: 4400 Basic stats: COMPLETE Column stats: 
NONE","OperatorId:":"SEL_3","children":{"HashTable Sink 
Operator":{"keys:":{"0":"_col0 (type: int)","1":"_col0 (type: 
int)"},"OperatorId:":"HASHTABLESINK_26"}}}}}},"$hdt$_2:hd":{"TableScan":{"alias:":"hd","Statist
 ics:":"Num rows: 20 Data size: 4400 Basic stats: COMPLETE Column stats: 
NONE","OperatorId:":"TS_4","children":{"Select 
Operator":{"expressions:":"cstring1 (type: 
string)","outputColumnNames:":["_col0"],"Statistics:":"Num rows: 20 Data size: 
4400 Basic stats: COMPLETE Column stats: 
NONE","OperatorId:":"SEL_5","children":{"HashTable Sink 
Operator":{"keys:":{"0":"_col1 (type: string)","1":"_col0 (type: 
string)"},"OperatorId:":"HASHTABLESINK_24"}}}}}}}}},"Stage-3":{"Map 
Reduce":{"Map Operator Tree:":[{"TableScan":{"alias:":"c","Statistics:":"Num 
rows: 20 Data size: 4400 Basic stats: COMPLETE Column stats: NONE","TableScan 
Vectorization:":{"native:":"true","projectedOutputColumns:":"[0, 1, 2, 3, 4, 5, 
6, 7, 8, 9, 10, 11]"},"OperatorId:":"TS_0","children":{"Select 
Operator":{"expressions:":"cint (type: int), cstring1 (type: 
string)","outputColumnNames:":["_col0","_col1"],"Select 
Vectorization:":{"className:":"VectorSelectOperator","native:":"true","projectedOutputColumns:":"[2,
 6]"},"Stat
 istics:":"Num rows: 20 Data size: 4400 Basic stats: COMPLETE Column stats: 
NONE","OperatorId:":"SEL_1","children":{"Map Join Operator":{"condition 
map:":[{"":"Left Outer Join0 to 1"}],"keys:":{"0":"_col0 (type: 
int)","1":"_col0 (type: int)"},"Map Join 
Vectorization:":{"className:":"VectorMapJoinOperator","native:":"false","nativeConditionsMet:":["hive.mapjoin.optimized.hashtable
 IS true","hive.vectorized.execution.mapjoin.native.enabled IS true","One 
MapJoin Condition IS true","No nullsafe IS true","Small table vectorizes IS 
true","Optimized Table and Supports Key Types IS 
true"],"nativeConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS 
false"]},"outputColumnNames:":["_col1"],"Statistics:":"Num rows: 22 Data size: 
4840 Basic stats: COMPLETE Column stats: 
NONE","OperatorId:":"MAPJOIN_23","children":{"Map Join Operator":{"condition 
map:":[{"":"Left Outer Join0 to 1"}],"keys:":{"0":"_col1 (type: 
string)","1":"_col0 (type: string)"},"Map Join Vectorization:":{"className:":
 
"VectorMapJoinOperator","native:":"false","nativeConditionsMet:":["hive.mapjoin.optimized.hashtable
 IS true","hive.vectorized.execution.mapjoin.native.enabled IS true","One 
MapJoin Condition IS true","No nullsafe IS true","Small table vectorizes IS 
true","Optimized Table and Supports Key Types IS 
true"],"nativeConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS 
false"]},"Statistics:":"Num rows: 24 Data size: 5324 Basic stats: COMPLETE 
Column stats: NONE","OperatorId:":"MAPJOIN_22","children":{"Group By 
Operator":{"aggregations:":["count()"],"Group By 
Vectorization:":{"aggregators:":["VectorUDAFCountStar(*) -> 
bigint"],"className:":"VectorGroupByOperator","vectorOutput:":"true","native:":"false","projectedOutputColumns:":"[0]"},"mode:":"hash","outputColumnNames:":["_col0"],"Statistics:":"Num
 rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: 
NONE","OperatorId:":"GBY_13","children":{"Reduce Output Operator":{"sort 
order:":"","Reduce Sink Vectorization:":{"className:
 
":"VectorReduceSinkOperator","native:":"false","nativeConditionsMet:":["hive.vectorized.execution.reducesink.new.enabled
 IS true","No TopN IS true","No DISTINCT columns IS true","BinarySortableSerDe 
for keys IS true","LazyBinarySerDe for values IS 
true"],"nativeConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS 
false"]},"Statistics:":"Num rows: 1 Data size: 8 Basic stats: COMPLETE Column 
stats: NONE","value expressions:":"_col0 (type: 
bigint)","OperatorId:":"RS_14","OutputOperators:":"[GBY_15]"}}}}}}}}}}}}],"Execution
 mode:":"vectorized","Map 
Vectorization:":{"enabled:":"true","enabledConditionsMet:":["hive.vectorized.use.vectorized.input.format
 IS 
true"],"groupByVectorOutput:":"true","inputFileFormats:":["org.apache.hadoop.hive.ql.io.orc.OrcInputFormat"],"allNative:":"false","usesVectorUDFAdaptor:":"false","vectorized:":"true","rowBatchContext:":{"dataColumnCount:":"12","includeColumns:":"[2,
 6]","dataColumns:":["ctinyint:tinyint","csmallint:smallint","cint:int","cbig
 
int:bigint","cfloat:float","cdouble:double","cstring1:string","cstring2:string","ctimestamp1:timestamp","ctimestamp2:timestamp","cboolean1:boolean","cboolean2:boolean"],"partitionColumnCount:":"0"}},"Local
 Work:":{"Map Reduce Local Work":{}},"Reduce 
Vectorization:":{"enabled:":"false","enableConditionsMet:":["hive.vectorized.execution.reduce.enabled
 IS true"],"enableConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] 
IS false"]},"Reduce Operator Tree:":{"Group By 
Operator":{"aggregations:":["count(VALUE._col0)"],"Group By 
Vectorization:":{"vectorOutput:":"false","native:":"false","projectedOutputColumns:":"null"},"mode:":"mergepartial","outputColumnNames:":["_col0"],"Statistics:":"Num
 rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: 
NONE","OperatorId:":"GBY_15","children":{"File Output 
Operator":{"compressed:":"false","Statistics:":"Num rows: 1 Data size: 8 Basic 
stats: COMPLETE Column stats: NONE","table:":{"input 
format:":"org.apache.hadoop.mapred.SequenceFileInp
 utFormat","output 
format:":"org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat","serde:":"org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe"},"OperatorId:":"FS_17"}}}}}},"Stage-0":{"Fetch
 Operator":{"limit:":"-1","Processor 
Tree:":{"ListSink":{"OperatorId:":"LIST_SINK_33"}}}}}}
 PREHOOK: query: select count(*) from (select c.cstring1
 from small_alltypesorc_a c
 left outer join small_alltypesorc_a cd
@@ -282,7 +282,7 @@ left outer join small_alltypesorc_a hd
   on hd.cstring1 = c.cstring1
 ) t1
 POSTHOOK: type: QUERY
-{"PLAN 
VECTORIZATION":{"enabled":true,"enabledConditionsMet":["hive.vectorized.execution.enabled
 IS true"]},"STAGE DEPENDENCIES":{"Stage-8":{"ROOT 
STAGE":"TRUE"},"Stage-3":{"DEPENDENT STAGES":"Stage-8"},"Stage-0":{"DEPENDENT 
STAGES":"Stage-3"}},"STAGE PLANS":{"Stage-8":{"Map Reduce Local Work":{"Alias 
-> Map Local Tables:":{"$hdt$_1:cd":{"Fetch 
Operator":{"limit:":"-1"}},"$hdt$_2:hd":{"Fetch 
Operator":{"limit:":"-1"}}},"Alias -> Map Local Operator 
Tree:":{"$hdt$_1:cd":{"TableScan":{"alias:":"cd","Statistics:":"Num rows: 20 
Data size: 4400 Basic stats: COMPLETE Column stats: 
NONE","OperatorId:":"TS_2","children":{"Select 
Operator":{"expressions:":"cstring2 (type: 
string)","outputColumnNames:":["_col0"],"Statistics:":"Num rows: 20 Data size: 
4400 Basic stats: COMPLETE Column stats: 
NONE","OperatorId:":"SEL_3","children":{"HashTable Sink 
Operator":{"keys:":{"0":"_col1 (type: string)","1":"_col0 (type: 
string)"},"OperatorId:":"HASHTABLESINK_26"}}}}}},"$hdt$_2:hd":{"TableScan":{"alias:":
 "hd","Statistics:":"Num rows: 20 Data size: 4400 Basic stats: COMPLETE Column 
stats: NONE","OperatorId:":"TS_4","children":{"Select 
Operator":{"expressions:":"cstring1 (type: 
string)","outputColumnNames:":["_col0"],"Statistics:":"Num rows: 20 Data size: 
4400 Basic stats: COMPLETE Column stats: 
NONE","OperatorId:":"SEL_5","children":{"HashTable Sink 
Operator":{"keys:":{"0":"_col0 (type: string)","1":"_col0 (type: 
string)"},"OperatorId:":"HASHTABLESINK_24"}}}}}}}}},"Stage-3":{"Map 
Reduce":{"Map Operator Tree:":[{"TableScan":{"alias:":"c","Statistics:":"Num 
rows: 20 Data size: 4400 Basic stats: COMPLETE Column stats: NONE","TableScan 
Vectorization:":{"native:":"true","projectedOutputColumns:":"[0, 1, 2, 3, 4, 5, 
6, 7, 8, 9, 10, 11]"},"OperatorId:":"TS_0","children":{"Select 
Operator":{"expressions:":"cstring1 (type: string), cstring2 (type: 
string)","outputColumnNames:":["_col0","_col1"],"Select 
Vectorization:":{"className:":"VectorSelectOperator","native:":"true","projectedOutputColum
 ns:":"[6, 7]"},"Statistics:":"Num rows: 20 Data size: 4400 Basic stats: 
COMPLETE Column stats: NONE","OperatorId:":"SEL_28","children":{"Map Join 
Operator":{"condition map:":[{"":"Left Outer Join0 to 1"}],"keys:":{"0":"_col1 
(type: string)","1":"_col0 (type: string)"},"Map Join 
Vectorization:":{"className:":"VectorMapJoinOperator","native:":"false","nativeConditionsMet:":["hive.mapjoin.optimized.hashtable
 IS true","hive.vectorized.execution.mapjoin.native.enabled IS true","One 
MapJoin Condition IS true","No nullsafe IS true","Small table vectorizes IS 
true","Optimized Table and Supports Key Types IS 
true"],"nativeConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS 
false"]},"outputColumnNames:":["_col0"],"Statistics:":"Num rows: 22 Data size: 
4840 Basic stats: COMPLETE Column stats: 
NONE","OperatorId:":"MAPJOIN_29","children":{"Map Join Operator":{"condition 
map:":[{"":"Left Outer Join0 to 1"}],"keys:":{"0":"_col0 (type: 
string)","1":"_col0 (type: string)"},"Map Join Vec
 
torization:":{"className:":"VectorMapJoinOperator","native:":"false","nativeConditionsMet:":["hive.mapjoin.optimized.hashtable
 IS true","hive.vectorized.execution.mapjoin.native.enabled IS true","One 
MapJoin Condition IS true","No nullsafe IS true","Small table vectorizes IS 
true","Optimized Table and Supports Key Types IS 
true"],"nativeConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS 
false"]},"Statistics:":"Num rows: 24 Data size: 5324 Basic stats: COMPLETE 
Column stats: NONE","OperatorId:":"MAPJOIN_30","children":{"Group By 
Operator":{"aggregations:":["count()"],"Group By 
Vectorization:":{"aggregators:":["VectorUDAFCountStar(*) -> 
bigint"],"className:":"VectorGroupByOperator","vectorOutput:":"true","native:":"false","projectedOutputColumns:":"[0]"},"mode:":"hash","outputColumnNames:":["_col0"],"Statistics:":"Num
 rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: 
NONE","OperatorId:":"GBY_31","children":{"Reduce Output Operator":{"sort 
order:":"","Reduce Sink V
 
ectorization:":{"className:":"VectorReduceSinkOperator","native:":"false","nativeConditionsMet:":["hive.vectorized.execution.reducesink.new.enabled
 IS true","No TopN IS true","No DISTINCT columns IS true","BinarySortableSerDe 
for keys IS true","LazyBinarySerDe for values IS 
true"],"nativeConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS 
false"]},"Statistics:":"Num rows: 1 Data size: 8 Basic stats: COMPLETE Column 
stats: NONE","value expressions:":"_col0 (type: 
bigint)","OperatorId:":"RS_32","OutputOperators:":"[GBY_15]"}}}}}}}}}}}}],"Execution
 mode:":"vectorized","Map 
Vectorization:":{"enabled:":"true","enabledConditionsMet:":["hive.vectorized.use.vectorized.input.format
 IS 
true"],"groupByVectorOutput:":"true","inputFileFormats:":["org.apache.hadoop.hive.ql.io.orc.OrcInputFormat"],"allNative:":"false","usesVectorUDFAdaptor:":"false","vectorized:":"true","rowBatchContext:":{"dataColumnCount:":"12","includeColumns:":"[6,
 7]","dataColumns:":["ctinyint:tinyint","csmallint
 
:smallint","cint:int","cbigint:bigint","cfloat:float","cdouble:double","cstring1:string","cstring2:string","ctimestamp1:timestamp","ctimestamp2:timestamp","cboolean1:boolean","cboolean2:boolean"],"partitionColumnCount:":"0"}},"Local
 Work:":{"Map Reduce Local Work":{}},"Reduce 
Vectorization:":{"enabled:":"false","enableConditionsMet:":["hive.vectorized.execution.reduce.enabled
 IS true"],"enableConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] 
IS false"]},"Reduce Operator Tree:":{"Group By 
Operator":{"aggregations:":["count(VALUE._col0)"],"Group By 
Vectorization:":{"vectorOutput:":"false","native:":"false","projectedOutputColumns:":"null"},"mode:":"mergepartial","outputColumnNames:":["_col0"],"Statistics:":"Num
 rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: 
NONE","OperatorId:":"GBY_15","children":{"File Output 
Operator":{"compressed:":"false","Statistics:":"Num rows: 1 Data size: 8 Basic 
stats: COMPLETE Column stats: NONE","table:":{"input format:":"org.apache.ha
 doop.mapred.SequenceFileInputFormat","output 
format:":"org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat","serde:":"org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe"},"OperatorId:":"FS_17"}}}}}},"Stage-0":{"Fetch
 Operator":{"limit:":"-1","Processor 
Tree:":{"ListSink":{"OperatorId:":"LIST_SINK_33"}}}}}}
+{"PLAN 
VECTORIZATION":{"enabled":true,"enabledConditionsMet":["hive.vectorized.execution.enabled
 IS true"]},"STAGE DEPENDENCIES":{"Stage-8":{"ROOT 
STAGE":"TRUE"},"Stage-3":{"DEPENDENT STAGES":"Stage-8"},"Stage-0":{"DEPENDENT 
STAGES":"Stage-3"}},"STAGE PLANS":{"Stage-8":{"Map Reduce Local Work":{"Alias 
-> Map Local Tables:":{"$hdt$_1:cd":{"Fetch 
Operator":{"limit:":"-1"}},"$hdt$_2:hd":{"Fetch 
Operator":{"limit:":"-1"}}},"Alias -> Map Local Operator 
Tree:":{"$hdt$_1:cd":{"TableScan":{"alias:":"cd","Statistics:":"Num rows: 20 
Data size: 4400 Basic stats: COMPLETE Column stats: 
NONE","OperatorId:":"TS_2","children":{"Select 
Operator":{"expressions:":"cstring2 (type: 
string)","outputColumnNames:":["_col0"],"Statistics:":"Num rows: 20 Data size: 
4400 Basic stats: COMPLETE Column stats: 
NONE","OperatorId:":"SEL_3","children":{"HashTable Sink 
Operator":{"keys:":{"0":"_col1 (type: string)","1":"_col0 (type: 
string)"},"OperatorId:":"HASHTABLESINK_26"}}}}}},"$hdt$_2:hd":{"TableScan":{"alias:":
 "hd","Statistics:":"Num rows: 20 Data size: 4400 Basic stats: COMPLETE Column 
stats: NONE","OperatorId:":"TS_4","children":{"Select 
Operator":{"expressions:":"cstring1 (type: 
string)","outputColumnNames:":["_col0"],"Statistics:":"Num rows: 20 Data size: 
4400 Basic stats: COMPLETE Column stats: 
NONE","OperatorId:":"SEL_5","children":{"HashTable Sink 
Operator":{"keys:":{"0":"_col0 (type: string)","1":"_col0 (type: 
string)"},"OperatorId:":"HASHTABLESINK_24"}}}}}}}}},"Stage-3":{"Map 
Reduce":{"Map Operator Tree:":[{"TableScan":{"alias:":"c","Statistics:":"Num 
rows: 20 Data size: 4400 Basic stats: COMPLETE Column stats: NONE","TableScan 
Vectorization:":{"native:":"true","projectedOutputColumns:":"[0, 1, 2, 3, 4, 5, 
6, 7, 8, 9, 10, 11]"},"OperatorId:":"TS_0","children":{"Select 
Operator":{"expressions:":"cstring1 (type: string), cstring2 (type: 
string)","outputColumnNames:":["_col0","_col1"],"Select 
Vectorization:":{"className:":"VectorSelectOperator","native:":"true","projectedOutputColum
 ns:":"[6, 7]"},"Statistics:":"Num rows: 20 Data size: 4400 Basic stats: 
COMPLETE Column stats: NONE","OperatorId:":"SEL_1","children":{"Map Join 
Operator":{"condition map:":[{"":"Left Outer Join0 to 1"}],"keys:":{"0":"_col1 
(type: string)","1":"_col0 (type: string)"},"Map Join 
Vectorization:":{"className:":"VectorMapJoinOperator","native:":"false","nativeConditionsMet:":["hive.mapjoin.optimized.hashtable
 IS true","hive.vectorized.execution.mapjoin.native.enabled IS true","One 
MapJoin Condition IS true","No nullsafe IS true","Small table vectorizes IS 
true","Optimized Table and Supports Key Types IS 
true"],"nativeConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS 
false"]},"outputColumnNames:":["_col0"],"Statistics:":"Num rows: 22 Data size: 
4840 Basic stats: COMPLETE Column stats: 
NONE","OperatorId:":"MAPJOIN_23","children":{"Map Join Operator":{"condition 
map:":[{"":"Left Outer Join0 to 1"}],"keys:":{"0":"_col0 (type: 
string)","1":"_col0 (type: string)"},"Map Join Vect
 
orization:":{"className:":"VectorMapJoinOperator","native:":"false","nativeConditionsMet:":["hive.mapjoin.optimized.hashtable
 IS true","hive.vectorized.execution.mapjoin.native.enabled IS true","One 
MapJoin Condition IS true","No nullsafe IS true","Small table vectorizes IS 
true","Optimized Table and Supports Key Types IS 
true"],"nativeConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS 
false"]},"Statistics:":"Num rows: 24 Data size: 5324 Basic stats: COMPLETE 
Column stats: NONE","OperatorId:":"MAPJOIN_22","children":{"Group By 
Operator":{"aggregations:":["count()"],"Group By 
Vectorization:":{"aggregators:":["VectorUDAFCountStar(*) -> 
bigint"],"className:":"VectorGroupByOperator","vectorOutput:":"true","native:":"false","projectedOutputColumns:":"[0]"},"mode:":"hash","outputColumnNames:":["_col0"],"Statistics:":"Num
 rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: 
NONE","OperatorId:":"GBY_13","children":{"Reduce Output Operator":{"sort 
order:":"","Reduce Sink Ve
 
ctorization:":{"className:":"VectorReduceSinkOperator","native:":"false","nativeConditionsMet:":["hive.vectorized.execution.reducesink.new.enabled
 IS true","No TopN IS true","No DISTINCT columns IS true","BinarySortableSerDe 
for keys IS true","LazyBinarySerDe for values IS 
true"],"nativeConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS 
false"]},"Statistics:":"Num rows: 1 Data size: 8 Basic stats: COMPLETE Column 
stats: NONE","value expressions:":"_col0 (type: 
bigint)","OperatorId:":"RS_14","OutputOperators:":"[GBY_15]"}}}}}}}}}}}}],"Execution
 mode:":"vectorized","Map 
Vectorization:":{"enabled:":"true","enabledConditionsMet:":["hive.vectorized.use.vectorized.input.format
 IS 
true"],"groupByVectorOutput:":"true","inputFileFormats:":["org.apache.hadoop.hive.ql.io.orc.OrcInputFormat"],"allNative:":"false","usesVectorUDFAdaptor:":"false","vectorized:":"true","rowBatchContext:":{"dataColumnCount:":"12","includeColumns:":"[6,
 7]","dataColumns:":["ctinyint:tinyint","csmallint:
 
smallint","cint:int","cbigint:bigint","cfloat:float","cdouble:double","cstring1:string","cstring2:string","ctimestamp1:timestamp","ctimestamp2:timestamp","cboolean1:boolean","cboolean2:boolean"],"partitionColumnCount:":"0"}},"Local
 Work:":{"Map Reduce Local Work":{}},"Reduce 
Vectorization:":{"enabled:":"false","enableConditionsMet:":["hive.vectorized.execution.reduce.enabled
 IS true"],"enableConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] 
IS false"]},"Reduce Operator Tree:":{"Group By 
Operator":{"aggregations:":["count(VALUE._col0)"],"Group By 
Vectorization:":{"vectorOutput:":"false","native:":"false","projectedOutputColumns:":"null"},"mode:":"mergepartial","outputColumnNames:":["_col0"],"Statistics:":"Num
 rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: 
NONE","OperatorId:":"GBY_15","children":{"File Output 
Operator":{"compressed:":"false","Statistics:":"Num rows: 1 Data size: 8 Basic 
stats: COMPLETE Column stats: NONE","table:":{"input format:":"org.apache.had
 oop.mapred.SequenceFileInputFormat","output 
format:":"org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat","serde:":"org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe"},"OperatorId:":"FS_17"}}}}}},"Stage-0":{"Fetch
 Operator":{"limit:":"-1","Processor 
Tree:":{"ListSink":{"OperatorId:":"LIST_SINK_33"}}}}}}
 PREHOOK: query: select count(*) from (select c.cstring1
 from small_alltypesorc_a c
 left outer join small_alltypesorc_a cd
@@ -322,7 +322,7 @@ left outer join small_alltypesorc_a hd
   on hd.cstring1 = c.cstring1 and hd.cint = c.cint
 ) t1
 POSTHOOK: type: QUERY
-{"PLAN 
VECTORIZATION":{"enabled":true,"enabledConditionsMet":["hive.vectorized.execution.enabled
 IS true"]},"STAGE DEPENDENCIES":{"Stage-8":{"ROOT 
STAGE":"TRUE"},"Stage-3":{"DEPENDENT STAGES":"Stage-8"},"Stage-0":{"DEPENDENT 
STAGES":"Stage-3"}},"STAGE PLANS":{"Stage-8":{"Map Reduce Local Work":{"Alias 
-> Map Local Tables:":{"$hdt$_1:cd":{"Fetch 
Operator":{"limit:":"-1"}},"$hdt$_2:hd":{"Fetch 
Operator":{"limit:":"-1"}}},"Alias -> Map Local Operator 
Tree:":{"$hdt$_1:cd":{"TableScan":{"alias:":"cd","Statistics:":"Num rows: 20 
Data size: 4400 Basic stats: COMPLETE Column stats: 
NONE","OperatorId:":"TS_2","children":{"Select 
Operator":{"expressions:":"cbigint (type: bigint), cstring2 (type: 
string)","outputColumnNames:":["_col0","_col1"],"Statistics:":"Num rows: 20 
Data size: 4400 Basic stats: COMPLETE Column stats: 
NONE","OperatorId:":"SEL_3","children":{"HashTable Sink 
Operator":{"keys:":{"0":"_col1 (type: bigint), _col3 (type: string)","1":"_col0 
(type: bigint), _col1 (type: string)"}
 
,"OperatorId:":"HASHTABLESINK_26"}}}}}},"$hdt$_2:hd":{"TableScan":{"alias:":"hd","Statistics:":"Num
 rows: 20 Data size: 4400 Basic stats: COMPLETE Column stats: 
NONE","OperatorId:":"TS_4","children":{"Select Operator":{"expressions:":"cint 
(type: int), cstring1 (type: 
string)","outputColumnNames:":["_col0","_col1"],"Statistics:":"Num rows: 20 
Data size: 4400 Basic stats: COMPLETE Column stats: 
NONE","OperatorId:":"SEL_5","children":{"HashTable Sink 
Operator":{"keys:":{"0":"_col0 (type: int), _col2 (type: string)","1":"_col0 
(type: int), _col1 (type: 
string)"},"OperatorId:":"HASHTABLESINK_24"}}}}}}}}},"Stage-3":{"Map 
Reduce":{"Map Operator Tree:":[{"TableScan":{"alias:":"c","Statistics:":"Num 
rows: 20 Data size: 4400 Basic stats: COMPLETE Column stats: NONE","TableScan 
Vectorization:":{"native:":"true","projectedOutputColumns:":"[0, 1, 2, 3, 4, 5, 
6, 7, 8, 9, 10, 11]"},"OperatorId:":"TS_0","children":{"Select 
Operator":{"expressions:":"cint (type: int), cbigint (type: bigint), cstrin
 g1 (type: string), cstring2 (type: 
string)","outputColumnNames:":["_col0","_col1","_col2","_col3"],"Select 
Vectorization:":{"className:":"VectorSelectOperator","native:":"true","projectedOutputColumns:":"[2,
 3, 6, 7]"},"Statistics:":"Num rows: 20 Data size: 4400 Basic stats: COMPLETE 
Column stats: NONE","OperatorId:":"SEL_28","children":{"Map Join 
Operator":{"condition map:":[{"":"Left Outer Join0 to 1"}],"keys:":{"0":"_col1 
(type: bigint), _col3 (type: string)","1":"_col0 (type: bigint), _col1 (type: 
string)"},"Map Join 
Vectorization:":{"className:":"VectorMapJoinOperator","native:":"false","nativeConditionsMet:":["hive.mapjoin.optimized.hashtable
 IS true","hive.vectorized.execution.mapjoin.native.enabled IS true","One 
MapJoin Condition IS true","No nullsafe IS true","Small table vectorizes IS 
true","Optimized Table and Supports Key Types IS 
true"],"nativeConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS 
false"]},"outputColumnNames:":["_col0","_col2"],"Statistics:":"
 Num rows: 22 Data size: 4840 Basic stats: COMPLETE Column stats: 
NONE","OperatorId:":"MAPJOIN_29","children":{"Map Join Operator":{"condition 
map:":[{"":"Left Outer Join0 to 1"}],"keys:":{"0":"_col0 (type: int), _col2 
(type: string)","1":"_col0 (type: int), _col1 (type: string)"},"Map Join 
Vectorization:":{"className:":"VectorMapJoinOperator","native:":"false","nativeConditionsMet:":["hive.mapjoin.optimized.hashtable
 IS true","hive.vectorized.execution.mapjoin.native.enabled IS true","One 
MapJoin Condition IS true","No nullsafe IS true","Small table vectorizes IS 
true","Optimized Table and Supports Key Types IS 
true"],"nativeConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS 
false"]},"Statistics:":"Num rows: 24 Data size: 5324 Basic stats: COMPLETE 
Column stats: NONE","OperatorId:":"MAPJOIN_30","children":{"Group By 
Operator":{"aggregations:":["count()"],"Group By 
Vectorization:":{"aggregators:":["VectorUDAFCountStar(*) -> 
bigint"],"className:":"VectorGroupByOperator",
 
"vectorOutput:":"true","native:":"false","projectedOutputColumns:":"[0]"},"mode:":"hash","outputColumnNames:":["_col0"],"Statistics:":"Num
 rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: 
NONE","OperatorId:":"GBY_31","children":{"Reduce Output Operator":{"sort 
order:":"","Reduce Sink 
Vectorization:":{"className:":"VectorReduceSinkOperator","native:":"false","nativeConditionsMet:":["hive.vectorized.execution.reducesink.new.enabled
 IS true","No TopN IS true","No DISTINCT columns IS true","BinarySortableSerDe 
for keys IS true","LazyBinarySerDe for values IS 
true"],"nativeConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS 
false"]},"Statistics:":"Num rows: 1 Data size: 8 Basic stats: COMPLETE Column 
stats: NONE","value expressions:":"_col0 (type: 
bigint)","OperatorId:":"RS_32","OutputOperators:":"[GBY_15]"}}}}}}}}}}}}],"Execution
 mode:":"vectorized","Map 
Vectorization:":{"enabled:":"true","enabledConditionsMet:":["hive.vectorized.use.vectorized.input.format
 IS true"
 
],"groupByVectorOutput:":"true","inputFileFormats:":["org.apache.hadoop.hive.ql.io.orc.OrcInputFormat"],"allNative:":"false","usesVectorUDFAdaptor:":"false","vectorized:":"true","rowBatchContext:":{"dataColumnCount:":"12","includeColumns:":"[2,
 3, 6, 
7]","dataColumns:":["ctinyint:tinyint","csmallint:smallint","cint:int","cbigint:bigint","cfloat:float","cdouble:double","cstring1:string","cstring2:string","ctimestamp1:timestamp","ctimestamp2:timestamp","cboolean1:boolean","cboolean2:boolean"],"partitionColumnCount:":"0"}},"Local
 Work:":{"Map Reduce Local Work":{}},"Reduce 
Vectorization:":{"enabled:":"false","enableConditionsMet:":["hive.vectorized.execution.reduce.enabled
 IS true"],"enableConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] 
IS false"]},"Reduce Operator Tree:":{"Group By 
Operator":{"aggregations:":["count(VALUE._col0)"],"Group By 
Vectorization:":{"vectorOutput:":"false","native:":"false","projectedOutputColumns:":"null"},"mode:":"mergepartial","outputColumnNam
 es:":["_col0"],"Statistics:":"Num rows: 1 Data size: 8 Basic stats: COMPLETE 
Column stats: NONE","OperatorId:":"GBY_15","children":{"File Output 
Operator":{"compressed:":"false","Statistics:":"Num rows: 1 Data size: 8 Basic 
stats: COMPLETE Column stats: NONE","table:":{"input 
format:":"org.apache.hadoop.mapred.SequenceFileInputFormat","output 
format:":"org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat","serde:":"org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe"},"OperatorId:":"FS_17"}}}}}},"Stage-0":{"Fetch
 Operator":{"limit:":"-1","Processor 
Tree:":{"ListSink":{"OperatorId:":"LIST_SINK_33"}}}}}}
+{"PLAN 
VECTORIZATION":{"enabled":true,"enabledConditionsMet":["hive.vectorized.execution.enabled
 IS true"]},"STAGE DEPENDENCIES":{"Stage-8":{"ROOT 
STAGE":"TRUE"},"Stage-3":{"DEPENDENT STAGES":"Stage-8"},"Stage-0":{"DEPENDENT 
STAGES":"Stage-3"}},"STAGE PLANS":{"Stage-8":{"Map Reduce Local Work":{"Alias 
-> Map Local Tables:":{"$hdt$_1:cd":{"Fetch 
Operator":{"limit:":"-1"}},"$hdt$_2:hd":{"Fetch 
Operator":{"limit:":"-1"}}},"Alias -> Map Local Operator 
Tree:":{"$hdt$_1:cd":{"TableScan":{"alias:":"cd","Statistics:":"Num rows: 20 
Data size: 4400 Basic stats: COMPLETE Column stats: 
NONE","OperatorId:":"TS_2","children":{"Select 
Operator":{"expressions:":"cbigint (type: bigint), cstring2 (type: 
string)","outputColumnNames:":["_col0","_col1"],"Statistics:":"Num rows: 20 
Data size: 4400 Basic stats: COMPLETE Column stats: 
NONE","OperatorId:":"SEL_3","children":{"HashTable Sink 
Operator":{"keys:":{"0":"_col1 (type: bigint), _col3 (type: string)","1":"_col0 
(type: bigint), _col1 (type: string)"}
 
,"OperatorId:":"HASHTABLESINK_26"}}}}}},"$hdt$_2:hd":{"TableScan":{"alias:":"hd","Statistics:":"Num
 rows: 20 Data size: 4400 Basic stats: COMPLETE Column stats: 
NONE","OperatorId:":"TS_4","children":{"Select Operator":{"expressions:":"cint 
(type: int), cstring1 (type: 
string)","outputColumnNames:":["_col0","_col1"],"Statistics:":"Num rows: 20 
Data size: 4400 Basic stats: COMPLETE Column stats: 
NONE","OperatorId:":"SEL_5","children":{"HashTable Sink 
Operator":{"keys:":{"0":"_col0 (type: int), _col2 (type: string)","1":"_col0 
(type: int), _col1 (type: 
string)"},"OperatorId:":"HASHTABLESINK_24"}}}}}}}}},"Stage-3":{"Map 
Reduce":{"Map Operator Tree:":[{"TableScan":{"alias:":"c","Statistics:":"Num 
rows: 20 Data size: 4400 Basic stats: COMPLETE Column stats: NONE","TableScan 
Vectorization:":{"native:":"true","projectedOutputColumns:":"[0, 1, 2, 3, 4, 5, 
6, 7, 8, 9, 10, 11]"},"OperatorId:":"TS_0","children":{"Select 
Operator":{"expressions:":"cint (type: int), cbigint (type: bigint), cstrin
 g1 (type: string), cstring2 (type: 
string)","outputColumnNames:":["_col0","_col1","_col2","_col3"],"Select 
Vectorization:":{"className:":"VectorSelectOperator","native:":"true","projectedOutputColumns:":"[2,
 3, 6, 7]"},"Statistics:":"Num rows: 20 Data size: 4400 Basic stats: COMPLETE 
Column stats: NONE","OperatorId:":"SEL_1","children":{"Map Join 
Operator":{"condition map:":[{"":"Left Outer Join0 to 1"}],"keys:":{"0":"_col1 
(type: bigint), _col3 (type: string)","1":"_col0 (type: bigint), _col1 (type: 
string)"},"Map Join 
Vectorization:":{"className:":"VectorMapJoinOperator","native:":"false","nativeConditionsMet:":["hive.mapjoin.optimized.hashtable
 IS true","hive.vectorized.execution.mapjoin.native.enabled IS true","One 
MapJoin Condition IS true","No nullsafe IS true","Small table vectorizes IS 
true","Optimized Table and Supports Key Types IS 
true"],"nativeConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS 
false"]},"outputColumnNames:":["_col0","_col2"],"Statistics:":"N
 um rows: 22 Data size: 4840 Basic stats: COMPLETE Column stats: 
NONE","OperatorId:":"MAPJOIN_23","children":{"Map Join Operator":{"condition 
map:":[{"":"Left Outer Join0 to 1"}],"keys:":{"0":"_col0 (type: int), _col2 
(type: string)","1":"_col0 (type: int), _col1 (type: string)"},"Map Join 
Vectorization:":{"className:":"VectorMapJoinOperator","native:":"false","nativeConditionsMet:":["hive.mapjoin.optimized.hashtable
 IS true","hive.vectorized.execution.mapjoin.native.enabled IS true","One 
MapJoin Condition IS true","No nullsafe IS true","Small table vectorizes IS 
true","Optimized Table and Supports Key Types IS 
true"],"nativeConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS 
false"]},"Statistics:":"Num rows: 24 Data size: 5324 Basic stats: COMPLETE 
Column stats: NONE","OperatorId:":"MAPJOIN_22","children":{"Group By 
Operator":{"aggregations:":["count()"],"Group By 
Vectorization:":{"aggregators:":["VectorUDAFCountStar(*) -> 
bigint"],"className:":"VectorGroupByOperator","
 
vectorOutput:":"true","native:":"false","projectedOutputColumns:":"[0]"},"mode:":"hash","outputColumnNames:":["_col0"],"Statistics:":"Num
 rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: 
NONE","OperatorId:":"GBY_13","children":{"Reduce Output Operator":{"sort 
order:":"","Reduce Sink 
Vectorization:":{"className:":"VectorReduceSinkOperator","native:":"false","nativeConditionsMet:":["hive.vectorized.execution.reducesink.new.enabled
 IS true","No TopN IS true","No DISTINCT columns IS true","BinarySortableSerDe 
for keys IS true","LazyBinarySerDe for values IS 
true"],"nativeConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] IS 
false"]},"Statistics:":"Num rows: 1 Data size: 8 Basic stats: COMPLETE Column 
stats: NONE","value expressions:":"_col0 (type: 
bigint)","OperatorId:":"RS_14","OutputOperators:":"[GBY_15]"}}}}}}}}}}}}],"Execution
 mode:":"vectorized","Map 
Vectorization:":{"enabled:":"true","enabledConditionsMet:":["hive.vectorized.use.vectorized.input.format
 IS true"]
 
,"groupByVectorOutput:":"true","inputFileFormats:":["org.apache.hadoop.hive.ql.io.orc.OrcInputFormat"],"allNative:":"false","usesVectorUDFAdaptor:":"false","vectorized:":"true","rowBatchContext:":{"dataColumnCount:":"12","includeColumns:":"[2,
 3, 6, 
7]","dataColumns:":["ctinyint:tinyint","csmallint:smallint","cint:int","cbigint:bigint","cfloat:float","cdouble:double","cstring1:string","cstring2:string","ctimestamp1:timestamp","ctimestamp2:timestamp","cboolean1:boolean","cboolean2:boolean"],"partitionColumnCount:":"0"}},"Local
 Work:":{"Map Reduce Local Work":{}},"Reduce 
Vectorization:":{"enabled:":"false","enableConditionsMet:":["hive.vectorized.execution.reduce.enabled
 IS true"],"enableConditionsNotMet:":["hive.execution.engine mr IN [tez, spark] 
IS false"]},"Reduce Operator Tree:":{"Group By 
Operator":{"aggregations:":["count(VALUE._col0)"],"Group By 
Vectorization:":{"vectorOutput:":"false","native:":"false","projectedOutputColumns:":"null"},"mode:":"mergepartial","outputColumnName
 s:":["_col0"],"Statistics:":"Num rows: 1 Data size: 8 Basic stats: COMPLETE 
Column stats: NONE","OperatorId:":"GBY_15","children":{"File Output 
Operator":{"compressed:":"false","Statistics:":"Num rows: 1 Data size: 8 Basic 
stats: COMPLETE Column stats: NONE","table:":{"input 
format:":"org.apache.hadoop.mapred.SequenceFileInputFormat","output 
format:":"org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat","serde:":"org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe"},"OperatorId:":"FS_17"}}}}}},"Stage-0":{"Fetch
 Operator":{"limit:":"-1","Processor 
Tree:":{"ListSink":{"OperatorId:":"LIST_SINK_33"}}}}}}
 PREHOOK: query: select count(*) from (select c.cstring1
 from small_alltypesorc_a c
 left outer join small_alltypesorc_a cd

Reply via email to