http://git-wip-us.apache.org/repos/asf/hive/blob/fcb57100/ql/src/test/results/clientpositive/llap/vector_nullsafe_join.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/llap/vector_nullsafe_join.q.out 
b/ql/src/test/results/clientpositive/llap/vector_nullsafe_join.q.out
index fba6f18..2781dab 100644
--- a/ql/src/test/results/clientpositive/llap/vector_nullsafe_join.q.out
+++ b/ql/src/test/results/clientpositive/llap/vector_nullsafe_join.q.out
@@ -26,10 +26,14 @@ POSTHOOK: Output: database:default
 POSTHOOK: Output: default@myinput1
 POSTHOOK: Lineage: myinput1.key SIMPLE 
[(myinput1_txt)myinput1_txt.FieldSchema(name:key, type:int, comment:null), ]
 POSTHOOK: Lineage: myinput1.value SIMPLE 
[(myinput1_txt)myinput1_txt.FieldSchema(name:value, type:int, comment:null), ]
-PREHOOK: query: explain select * from myinput1 a join myinput1 b on 
a.key<=>b.value
+PREHOOK: query: explain vectorization expression select * from myinput1 a join 
myinput1 b on a.key<=>b.value
 PREHOOK: type: QUERY
-POSTHOOK: query: explain select * from myinput1 a join myinput1 b on 
a.key<=>b.value
+POSTHOOK: query: explain vectorization expression select * from myinput1 a 
join myinput1 b on a.key<=>b.value
 POSTHOOK: type: QUERY
+PLAN VECTORIZATION:
+  enabled: true
+  enabledConditionsMet: [hive.vectorized.execution.enabled IS true]
+
 STAGE DEPENDENCIES:
   Stage-1 is a root stage
   Stage-0 depends on stages: Stage-1
@@ -47,12 +51,20 @@ STAGE PLANS:
                 TableScan
                   alias: a
                   Statistics: Num rows: 6 Data size: 24 Basic stats: COMPLETE 
Column stats: NONE
+                  TableScan Vectorization:
+                      native: true
+                      projectedOutputColumns: [0, 1]
                   Map Join Operator
                     condition map:
                          Inner Join 0 to 1
                     keys:
                       0 key (type: int)
                       1 value (type: int)
+                    Map Join Vectorization:
+                        className: VectorMapJoinOperator
+                        native: false
+                        nativeConditionsMet: hive.mapjoin.optimized.hashtable 
IS true, hive.execution.engine tez IN [tez, spark] IS true, One MapJoin 
Condition IS true, Small table vectorizes IS true, Optimized Table and Supports 
Key Types IS true
+                        nativeConditionsNotMet: 
hive.vectorized.execution.mapjoin.native.enabled IS false, No nullsafe IS false
                     nullSafes: [true]
                     outputColumnNames: _col0, _col1, _col5, _col6
                     input vertices:
@@ -61,9 +73,16 @@ STAGE PLANS:
                     Select Operator
                       expressions: _col0 (type: int), _col1 (type: int), _col5 
(type: int), _col6 (type: int)
                       outputColumnNames: _col0, _col1, _col2, _col3
+                      Select Vectorization:
+                          className: VectorSelectOperator
+                          native: true
+                          projectedOutputColumns: [0, 1, 2, 3]
                       Statistics: Num rows: 6 Data size: 26 Basic stats: 
COMPLETE Column stats: NONE
                       File Output Operator
                         compressed: false
+                        File Sink Vectorization:
+                            className: VectorFileSinkOperator
+                            native: false
                         Statistics: Num rows: 6 Data size: 26 Basic stats: 
COMPLETE Column stats: NONE
                         table:
                             input format: 
org.apache.hadoop.mapred.SequenceFileInputFormat
@@ -71,19 +90,42 @@ STAGE PLANS:
                             serde: 
org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
             Execution mode: vectorized, llap
             LLAP IO: all inputs
+            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
         Map 2 
             Map Operator Tree:
                 TableScan
                   alias: b
                   Statistics: Num rows: 6 Data size: 24 Basic stats: COMPLETE 
Column stats: NONE
+                  TableScan Vectorization:
+                      native: true
+                      projectedOutputColumns: [0, 1]
                   Reduce Output Operator
                     key expressions: value (type: int)
                     sort order: +
                     Map-reduce partition columns: value (type: int)
+                    Reduce Sink Vectorization:
+                        className: VectorReduceSinkLongOperator
+                        native: true
+                        nativeConditionsMet: 
hive.vectorized.execution.reducesink.new.enabled IS true, hive.execution.engine 
tez IN [tez, spark] IS true, Not ACID UPDATE or DELETE IS true, No buckets IS 
true, No TopN IS true, Uniform Hash IS true, No DISTINCT columns IS true, 
BinarySortableSerDe for keys IS true, LazyBinarySerDe for values IS true
                     Statistics: Num rows: 6 Data size: 24 Basic stats: 
COMPLETE Column stats: NONE
                     value expressions: key (type: int)
             Execution mode: vectorized, llap
             LLAP IO: all inputs
+            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: true
+                usesVectorUDFAdaptor: false
+                vectorized: true
 
   Stage: Stage-0
     Fetch Operator
@@ -110,10 +152,14 @@ NULL      35      NULL    NULL
 NULL   NULL    10      NULL
 NULL   NULL    48      NULL
 NULL   NULL    NULL    NULL
-PREHOOK: query: explain select * from myinput1 a join myinput1 b on 
a.key<=>b.value join myinput1 c on a.key=c.key
+PREHOOK: query: explain vectorization expression select * from myinput1 a join 
myinput1 b on a.key<=>b.value join myinput1 c on a.key=c.key
 PREHOOK: type: QUERY
-POSTHOOK: query: explain select * from myinput1 a join myinput1 b on 
a.key<=>b.value join myinput1 c on a.key=c.key
+POSTHOOK: query: explain vectorization expression select * from myinput1 a 
join myinput1 b on a.key<=>b.value join myinput1 c on a.key=c.key
 POSTHOOK: type: QUERY
+PLAN VECTORIZATION:
+  enabled: true
+  enabledConditionsMet: [hive.vectorized.execution.enabled IS true]
+
 STAGE DEPENDENCIES:
   Stage-1 is a root stage
   Stage-0 depends on stages: Stage-1
@@ -131,7 +177,14 @@ STAGE PLANS:
                 TableScan
                   alias: a
                   Statistics: Num rows: 6 Data size: 24 Basic stats: COMPLETE 
Column stats: NONE
+                  TableScan Vectorization:
+                      native: true
+                      projectedOutputColumns: [0, 1]
                   Filter Operator
+                    Filter Vectorization:
+                        className: VectorFilterOperator
+                        native: true
+                        predicateExpression: SelectColumnIsNotNull(col 0) -> 
boolean
                     predicate: key is not null (type: boolean)
                     Statistics: Num rows: 6 Data size: 24 Basic stats: 
COMPLETE Column stats: NONE
                     Map Join Operator
@@ -142,6 +195,11 @@ STAGE PLANS:
                         0 key (type: int)
                         1 value (type: int)
                         2 key (type: int)
+                      Map Join Vectorization:
+                          className: VectorMapJoinOperator
+                          native: false
+                          nativeConditionsMet: 
hive.mapjoin.optimized.hashtable IS true, hive.execution.engine tez IN [tez, 
spark] IS true, No nullsafe IS true, Small table vectorizes IS true, Optimized 
Table and Supports Key Types IS true
+                          nativeConditionsNotMet: 
hive.vectorized.execution.mapjoin.native.enabled IS false, One MapJoin 
Condition IS false
                       outputColumnNames: _col0, _col1, _col5, _col6, _col10, 
_col11
                       input vertices:
                         1 Map 2
@@ -150,9 +208,16 @@ STAGE PLANS:
                       Select Operator
                         expressions: _col0 (type: int), _col1 (type: int), 
_col5 (type: int), _col6 (type: int), _col10 (type: int), _col11 (type: int)
                         outputColumnNames: _col0, _col1, _col2, _col3, _col4, 
_col5
+                        Select Vectorization:
+                            className: VectorSelectOperator
+                            native: true
+                            projectedOutputColumns: [0, 1, 2, 3, 4, 5]
                         Statistics: Num rows: 13 Data size: 52 Basic stats: 
COMPLETE Column stats: NONE
                         File Output Operator
                           compressed: false
+                          File Sink Vectorization:
+                              className: VectorFileSinkOperator
+                              native: false
                           Statistics: Num rows: 13 Data size: 52 Basic stats: 
COMPLETE Column stats: NONE
                           table:
                               input format: 
org.apache.hadoop.mapred.SequenceFileInputFormat
@@ -160,38 +225,84 @@ STAGE PLANS:
                               serde: 
org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
             Execution mode: vectorized, llap
             LLAP IO: all inputs
+            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
         Map 2 
             Map Operator Tree:
                 TableScan
                   alias: b
                   Statistics: Num rows: 6 Data size: 24 Basic stats: COMPLETE 
Column stats: NONE
+                  TableScan Vectorization:
+                      native: true
+                      projectedOutputColumns: [0, 1]
                   Filter Operator
+                    Filter Vectorization:
+                        className: VectorFilterOperator
+                        native: true
+                        predicateExpression: SelectColumnIsNotNull(col 1) -> 
boolean
                     predicate: value is not null (type: boolean)
                     Statistics: Num rows: 6 Data size: 24 Basic stats: 
COMPLETE Column stats: NONE
                     Reduce Output Operator
                       key expressions: value (type: int)
                       sort order: +
                       Map-reduce partition columns: value (type: int)
+                      Reduce Sink Vectorization:
+                          className: VectorReduceSinkLongOperator
+                          native: true
+                          nativeConditionsMet: 
hive.vectorized.execution.reducesink.new.enabled IS true, hive.execution.engine 
tez IN [tez, spark] IS true, Not ACID UPDATE or DELETE IS true, No buckets IS 
true, No TopN IS true, Uniform Hash IS true, No DISTINCT columns IS true, 
BinarySortableSerDe for keys IS true, LazyBinarySerDe for values IS true
                       Statistics: Num rows: 6 Data size: 24 Basic stats: 
COMPLETE Column stats: NONE
                       value expressions: key (type: int)
             Execution mode: vectorized, llap
             LLAP IO: all inputs
+            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: true
+                usesVectorUDFAdaptor: false
+                vectorized: true
         Map 3 
             Map Operator Tree:
                 TableScan
                   alias: c
                   Statistics: Num rows: 6 Data size: 24 Basic stats: COMPLETE 
Column stats: NONE
+                  TableScan Vectorization:
+                      native: true
+                      projectedOutputColumns: [0, 1]
                   Filter Operator
+                    Filter Vectorization:
+                        className: VectorFilterOperator
+                        native: true
+                        predicateExpression: SelectColumnIsNotNull(col 0) -> 
boolean
                     predicate: key is not null (type: boolean)
                     Statistics: Num rows: 6 Data size: 24 Basic stats: 
COMPLETE Column stats: NONE
                     Reduce Output Operator
                       key expressions: key (type: int)
                       sort order: +
                       Map-reduce partition columns: key (type: int)
+                      Reduce Sink Vectorization:
+                          className: VectorReduceSinkLongOperator
+                          native: true
+                          nativeConditionsMet: 
hive.vectorized.execution.reducesink.new.enabled IS true, hive.execution.engine 
tez IN [tez, spark] IS true, Not ACID UPDATE or DELETE IS true, No buckets IS 
true, No TopN IS true, Uniform Hash IS true, No DISTINCT columns IS true, 
BinarySortableSerDe for keys IS true, LazyBinarySerDe for values IS true
                       Statistics: Num rows: 6 Data size: 24 Basic stats: 
COMPLETE Column stats: NONE
                       value expressions: value (type: int)
             Execution mode: vectorized, llap
             LLAP IO: all inputs
+            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: true
+                usesVectorUDFAdaptor: false
+                vectorized: true
 
   Stage: Stage-0
     Fetch Operator
@@ -209,10 +320,14 @@ POSTHOOK: Input: default@myinput1
 #### A masked pattern was here ####
 10     NULL    NULL    10      10      NULL
 100    100     100     100     100     100
-PREHOOK: query: explain select * from myinput1 a join myinput1 b on 
a.key<=>b.value join myinput1 c on a.key<=>c.key
+PREHOOK: query: explain vectorization expression select * from myinput1 a join 
myinput1 b on a.key<=>b.value join myinput1 c on a.key<=>c.key
 PREHOOK: type: QUERY
-POSTHOOK: query: explain select * from myinput1 a join myinput1 b on 
a.key<=>b.value join myinput1 c on a.key<=>c.key
+POSTHOOK: query: explain vectorization expression select * from myinput1 a 
join myinput1 b on a.key<=>b.value join myinput1 c on a.key<=>c.key
 POSTHOOK: type: QUERY
+PLAN VECTORIZATION:
+  enabled: true
+  enabledConditionsMet: [hive.vectorized.execution.enabled IS true]
+
 STAGE DEPENDENCIES:
   Stage-1 is a root stage
   Stage-0 depends on stages: Stage-1
@@ -230,6 +345,9 @@ STAGE PLANS:
                 TableScan
                   alias: a
                   Statistics: Num rows: 6 Data size: 24 Basic stats: COMPLETE 
Column stats: NONE
+                  TableScan Vectorization:
+                      native: true
+                      projectedOutputColumns: [0, 1]
                   Map Join Operator
                     condition map:
                          Inner Join 0 to 1
@@ -238,6 +356,11 @@ STAGE PLANS:
                       0 key (type: int)
                       1 value (type: int)
                       2 key (type: int)
+                    Map Join Vectorization:
+                        className: VectorMapJoinOperator
+                        native: false
+                        nativeConditionsMet: hive.mapjoin.optimized.hashtable 
IS true, hive.execution.engine tez IN [tez, spark] IS true, Small table 
vectorizes IS true, Optimized Table and Supports Key Types IS true
+                        nativeConditionsNotMet: 
hive.vectorized.execution.mapjoin.native.enabled IS false, One MapJoin 
Condition IS false, No nullsafe IS false
                     nullSafes: [true]
                     outputColumnNames: _col0, _col1, _col5, _col6, _col10, 
_col11
                     input vertices:
@@ -247,9 +370,16 @@ STAGE PLANS:
                     Select Operator
                       expressions: _col0 (type: int), _col1 (type: int), _col5 
(type: int), _col6 (type: int), _col10 (type: int), _col11 (type: int)
                       outputColumnNames: _col0, _col1, _col2, _col3, _col4, 
_col5
+                      Select Vectorization:
+                          className: VectorSelectOperator
+                          native: true
+                          projectedOutputColumns: [0, 1, 2, 3, 4, 5]
                       Statistics: Num rows: 13 Data size: 52 Basic stats: 
COMPLETE Column stats: NONE
                       File Output Operator
                         compressed: false
+                        File Sink Vectorization:
+                            className: VectorFileSinkOperator
+                            native: false
                         Statistics: Num rows: 13 Data size: 52 Basic stats: 
COMPLETE Column stats: NONE
                         table:
                             input format: 
org.apache.hadoop.mapred.SequenceFileInputFormat
@@ -257,32 +387,70 @@ STAGE PLANS:
                             serde: 
org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
             Execution mode: vectorized, llap
             LLAP IO: all inputs
+            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
         Map 2 
             Map Operator Tree:
                 TableScan
                   alias: b
                   Statistics: Num rows: 6 Data size: 24 Basic stats: COMPLETE 
Column stats: NONE
+                  TableScan Vectorization:
+                      native: true
+                      projectedOutputColumns: [0, 1]
                   Reduce Output Operator
                     key expressions: value (type: int)
                     sort order: +
                     Map-reduce partition columns: value (type: int)
+                    Reduce Sink Vectorization:
+                        className: VectorReduceSinkLongOperator
+                        native: true
+                        nativeConditionsMet: 
hive.vectorized.execution.reducesink.new.enabled IS true, hive.execution.engine 
tez IN [tez, spark] IS true, Not ACID UPDATE or DELETE IS true, No buckets IS 
true, No TopN IS true, Uniform Hash IS true, No DISTINCT columns IS true, 
BinarySortableSerDe for keys IS true, LazyBinarySerDe for values IS true
                     Statistics: Num rows: 6 Data size: 24 Basic stats: 
COMPLETE Column stats: NONE
                     value expressions: key (type: int)
             Execution mode: vectorized, llap
             LLAP IO: all inputs
+            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: true
+                usesVectorUDFAdaptor: false
+                vectorized: true
         Map 3 
             Map Operator Tree:
                 TableScan
                   alias: c
                   Statistics: Num rows: 6 Data size: 24 Basic stats: COMPLETE 
Column stats: NONE
+                  TableScan Vectorization:
+                      native: true
+                      projectedOutputColumns: [0, 1]
                   Reduce Output Operator
                     key expressions: key (type: int)
                     sort order: +
                     Map-reduce partition columns: key (type: int)
+                    Reduce Sink Vectorization:
+                        className: VectorReduceSinkLongOperator
+                        native: true
+                        nativeConditionsMet: 
hive.vectorized.execution.reducesink.new.enabled IS true, hive.execution.engine 
tez IN [tez, spark] IS true, Not ACID UPDATE or DELETE IS true, No buckets IS 
true, No TopN IS true, Uniform Hash IS true, No DISTINCT columns IS true, 
BinarySortableSerDe for keys IS true, LazyBinarySerDe for values IS true
                     Statistics: Num rows: 6 Data size: 24 Basic stats: 
COMPLETE Column stats: NONE
                     value expressions: value (type: int)
             Execution mode: vectorized, llap
             LLAP IO: all inputs
+            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: true
+                usesVectorUDFAdaptor: false
+                vectorized: true
 
   Stage: Stage-0
     Fetch Operator
@@ -327,10 +495,14 @@ NULL      NULL    48      NULL    NULL    NULL
 NULL   NULL    NULL    NULL    NULL    10
 NULL   NULL    NULL    NULL    NULL    35
 NULL   NULL    NULL    NULL    NULL    NULL
-PREHOOK: query: explain select * from myinput1 a join myinput1 b on 
a.key<=>b.value AND a.value=b.key join myinput1 c on a.key<=>c.key AND 
a.value=c.value
+PREHOOK: query: explain vectorization expression select * from myinput1 a join 
myinput1 b on a.key<=>b.value AND a.value=b.key join myinput1 c on 
a.key<=>c.key AND a.value=c.value
 PREHOOK: type: QUERY
-POSTHOOK: query: explain select * from myinput1 a join myinput1 b on 
a.key<=>b.value AND a.value=b.key join myinput1 c on a.key<=>c.key AND 
a.value=c.value
+POSTHOOK: query: explain vectorization expression select * from myinput1 a 
join myinput1 b on a.key<=>b.value AND a.value=b.key join myinput1 c on 
a.key<=>c.key AND a.value=c.value
 POSTHOOK: type: QUERY
+PLAN VECTORIZATION:
+  enabled: true
+  enabledConditionsMet: [hive.vectorized.execution.enabled IS true]
+
 STAGE DEPENDENCIES:
   Stage-1 is a root stage
   Stage-0 depends on stages: Stage-1
@@ -348,7 +520,14 @@ STAGE PLANS:
                 TableScan
                   alias: a
                   Statistics: Num rows: 6 Data size: 24 Basic stats: COMPLETE 
Column stats: NONE
+                  TableScan Vectorization:
+                      native: true
+                      projectedOutputColumns: [0, 1]
                   Filter Operator
+                    Filter Vectorization:
+                        className: VectorFilterOperator
+                        native: true
+                        predicateExpression: SelectColumnIsNotNull(col 1) -> 
boolean
                     predicate: value is not null (type: boolean)
                     Statistics: Num rows: 6 Data size: 24 Basic stats: 
COMPLETE Column stats: NONE
                     Map Join Operator
@@ -359,6 +538,11 @@ STAGE PLANS:
                         0 key (type: int), value (type: int)
                         1 value (type: int), key (type: int)
                         2 key (type: int), value (type: int)
+                      Map Join Vectorization:
+                          className: VectorMapJoinOperator
+                          native: false
+                          nativeConditionsMet: 
hive.mapjoin.optimized.hashtable IS true, hive.execution.engine tez IN [tez, 
spark] IS true, Small table vectorizes IS true, Optimized Table and Supports 
Key Types IS true
+                          nativeConditionsNotMet: 
hive.vectorized.execution.mapjoin.native.enabled IS false, One MapJoin 
Condition IS false, No nullsafe IS false
                       nullSafes: [true, false]
                       outputColumnNames: _col0, _col1, _col5, _col6, _col10, 
_col11
                       input vertices:
@@ -368,9 +552,16 @@ STAGE PLANS:
                       Select Operator
                         expressions: _col0 (type: int), _col1 (type: int), 
_col5 (type: int), _col6 (type: int), _col10 (type: int), _col11 (type: int)
                         outputColumnNames: _col0, _col1, _col2, _col3, _col4, 
_col5
+                        Select Vectorization:
+                            className: VectorSelectOperator
+                            native: true
+                            projectedOutputColumns: [0, 1, 2, 3, 4, 5]
                         Statistics: Num rows: 13 Data size: 52 Basic stats: 
COMPLETE Column stats: NONE
                         File Output Operator
                           compressed: false
+                          File Sink Vectorization:
+                              className: VectorFileSinkOperator
+                              native: false
                           Statistics: Num rows: 13 Data size: 52 Basic stats: 
COMPLETE Column stats: NONE
                           table:
                               input format: 
org.apache.hadoop.mapred.SequenceFileInputFormat
@@ -378,36 +569,82 @@ STAGE PLANS:
                               serde: 
org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
             Execution mode: vectorized, llap
             LLAP IO: all inputs
+            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
         Map 2 
             Map Operator Tree:
                 TableScan
                   alias: b
                   Statistics: Num rows: 6 Data size: 24 Basic stats: COMPLETE 
Column stats: NONE
+                  TableScan Vectorization:
+                      native: true
+                      projectedOutputColumns: [0, 1]
                   Filter Operator
+                    Filter Vectorization:
+                        className: VectorFilterOperator
+                        native: true
+                        predicateExpression: SelectColumnIsNotNull(col 0) -> 
boolean
                     predicate: key is not null (type: boolean)
                     Statistics: Num rows: 6 Data size: 24 Basic stats: 
COMPLETE Column stats: NONE
                     Reduce Output Operator
                       key expressions: value (type: int), key (type: int)
                       sort order: ++
                       Map-reduce partition columns: value (type: int), key 
(type: int)
+                      Reduce Sink Vectorization:
+                          className: VectorReduceSinkMultiKeyOperator
+                          native: true
+                          nativeConditionsMet: 
hive.vectorized.execution.reducesink.new.enabled IS true, hive.execution.engine 
tez IN [tez, spark] IS true, Not ACID UPDATE or DELETE IS true, No buckets IS 
true, No TopN IS true, Uniform Hash IS true, No DISTINCT columns IS true, 
BinarySortableSerDe for keys IS true, LazyBinarySerDe for values IS true
                       Statistics: Num rows: 6 Data size: 24 Basic stats: 
COMPLETE Column stats: NONE
             Execution mode: vectorized, llap
             LLAP IO: all inputs
+            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: true
+                usesVectorUDFAdaptor: false
+                vectorized: true
         Map 3 
             Map Operator Tree:
                 TableScan
                   alias: c
                   Statistics: Num rows: 6 Data size: 24 Basic stats: COMPLETE 
Column stats: NONE
+                  TableScan Vectorization:
+                      native: true
+                      projectedOutputColumns: [0, 1]
                   Filter Operator
+                    Filter Vectorization:
+                        className: VectorFilterOperator
+                        native: true
+                        predicateExpression: SelectColumnIsNotNull(col 1) -> 
boolean
                     predicate: value is not null (type: boolean)
                     Statistics: Num rows: 6 Data size: 24 Basic stats: 
COMPLETE Column stats: NONE
                     Reduce Output Operator
                       key expressions: key (type: int), value (type: int)
                       sort order: ++
                       Map-reduce partition columns: key (type: int), value 
(type: int)
+                      Reduce Sink Vectorization:
+                          className: VectorReduceSinkMultiKeyOperator
+                          native: true
+                          nativeConditionsMet: 
hive.vectorized.execution.reducesink.new.enabled IS true, hive.execution.engine 
tez IN [tez, spark] IS true, Not ACID UPDATE or DELETE IS true, No buckets IS 
true, No TopN IS true, Uniform Hash IS true, No DISTINCT columns IS true, 
BinarySortableSerDe for keys IS true, LazyBinarySerDe for values IS true
                       Statistics: Num rows: 6 Data size: 24 Basic stats: 
COMPLETE Column stats: NONE
             Execution mode: vectorized, llap
             LLAP IO: all inputs
+            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: true
+                usesVectorUDFAdaptor: false
+                vectorized: true
 
   Stage: Stage-0
     Fetch Operator
@@ -425,10 +662,14 @@ POSTHOOK: Input: default@myinput1
 #### A masked pattern was here ####
 100    100     100     100     100     100
 NULL   10      10      NULL    NULL    10
-PREHOOK: query: explain select * from myinput1 a join myinput1 b on 
a.key<=>b.value AND a.value<=>b.key join myinput1 c on a.key<=>c.key AND 
a.value<=>c.value
+PREHOOK: query: explain vectorization expression select * from myinput1 a join 
myinput1 b on a.key<=>b.value AND a.value<=>b.key join myinput1 c on 
a.key<=>c.key AND a.value<=>c.value
 PREHOOK: type: QUERY
-POSTHOOK: query: explain select * from myinput1 a join myinput1 b on 
a.key<=>b.value AND a.value<=>b.key join myinput1 c on a.key<=>c.key AND 
a.value<=>c.value
+POSTHOOK: query: explain vectorization expression select * from myinput1 a 
join myinput1 b on a.key<=>b.value AND a.value<=>b.key join myinput1 c on 
a.key<=>c.key AND a.value<=>c.value
 POSTHOOK: type: QUERY
+PLAN VECTORIZATION:
+  enabled: true
+  enabledConditionsMet: [hive.vectorized.execution.enabled IS true]
+
 STAGE DEPENDENCIES:
   Stage-1 is a root stage
   Stage-0 depends on stages: Stage-1
@@ -446,6 +687,9 @@ STAGE PLANS:
                 TableScan
                   alias: a
                   Statistics: Num rows: 6 Data size: 24 Basic stats: COMPLETE 
Column stats: NONE
+                  TableScan Vectorization:
+                      native: true
+                      projectedOutputColumns: [0, 1]
                   Map Join Operator
                     condition map:
                          Inner Join 0 to 1
@@ -454,6 +698,11 @@ STAGE PLANS:
                       0 key (type: int), value (type: int)
                       1 value (type: int), key (type: int)
                       2 key (type: int), value (type: int)
+                    Map Join Vectorization:
+                        className: VectorMapJoinOperator
+                        native: false
+                        nativeConditionsMet: hive.mapjoin.optimized.hashtable 
IS true, hive.execution.engine tez IN [tez, spark] IS true, Small table 
vectorizes IS true, Optimized Table and Supports Key Types IS true
+                        nativeConditionsNotMet: 
hive.vectorized.execution.mapjoin.native.enabled IS false, One MapJoin 
Condition IS false, No nullsafe IS false
                     nullSafes: [true, true]
                     outputColumnNames: _col0, _col1, _col5, _col6, _col10, 
_col11
                     input vertices:
@@ -463,9 +712,16 @@ STAGE PLANS:
                     Select Operator
                       expressions: _col0 (type: int), _col1 (type: int), _col5 
(type: int), _col6 (type: int), _col10 (type: int), _col11 (type: int)
                       outputColumnNames: _col0, _col1, _col2, _col3, _col4, 
_col5
+                      Select Vectorization:
+                          className: VectorSelectOperator
+                          native: true
+                          projectedOutputColumns: [0, 1, 2, 3, 4, 5]
                       Statistics: Num rows: 13 Data size: 52 Basic stats: 
COMPLETE Column stats: NONE
                       File Output Operator
                         compressed: false
+                        File Sink Vectorization:
+                            className: VectorFileSinkOperator
+                            native: false
                         Statistics: Num rows: 13 Data size: 52 Basic stats: 
COMPLETE Column stats: NONE
                         table:
                             input format: 
org.apache.hadoop.mapred.SequenceFileInputFormat
@@ -473,30 +729,68 @@ STAGE PLANS:
                             serde: 
org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
             Execution mode: vectorized, llap
             LLAP IO: all inputs
+            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
         Map 2 
             Map Operator Tree:
                 TableScan
                   alias: b
                   Statistics: Num rows: 6 Data size: 24 Basic stats: COMPLETE 
Column stats: NONE
+                  TableScan Vectorization:
+                      native: true
+                      projectedOutputColumns: [0, 1]
                   Reduce Output Operator
                     key expressions: value (type: int), key (type: int)
                     sort order: ++
                     Map-reduce partition columns: value (type: int), key 
(type: int)
+                    Reduce Sink Vectorization:
+                        className: VectorReduceSinkMultiKeyOperator
+                        native: true
+                        nativeConditionsMet: 
hive.vectorized.execution.reducesink.new.enabled IS true, hive.execution.engine 
tez IN [tez, spark] IS true, Not ACID UPDATE or DELETE IS true, No buckets IS 
true, No TopN IS true, Uniform Hash IS true, No DISTINCT columns IS true, 
BinarySortableSerDe for keys IS true, LazyBinarySerDe for values IS true
                     Statistics: Num rows: 6 Data size: 24 Basic stats: 
COMPLETE Column stats: NONE
             Execution mode: vectorized, llap
             LLAP IO: all inputs
+            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: true
+                usesVectorUDFAdaptor: false
+                vectorized: true
         Map 3 
             Map Operator Tree:
                 TableScan
                   alias: c
                   Statistics: Num rows: 6 Data size: 24 Basic stats: COMPLETE 
Column stats: NONE
+                  TableScan Vectorization:
+                      native: true
+                      projectedOutputColumns: [0, 1]
                   Reduce Output Operator
                     key expressions: key (type: int), value (type: int)
                     sort order: ++
                     Map-reduce partition columns: key (type: int), value 
(type: int)
+                    Reduce Sink Vectorization:
+                        className: VectorReduceSinkMultiKeyOperator
+                        native: true
+                        nativeConditionsMet: 
hive.vectorized.execution.reducesink.new.enabled IS true, hive.execution.engine 
tez IN [tez, spark] IS true, Not ACID UPDATE or DELETE IS true, No buckets IS 
true, No TopN IS true, Uniform Hash IS true, No DISTINCT columns IS true, 
BinarySortableSerDe for keys IS true, LazyBinarySerDe for values IS true
                     Statistics: Num rows: 6 Data size: 24 Basic stats: 
COMPLETE Column stats: NONE
             Execution mode: vectorized, llap
             LLAP IO: all inputs
+            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: true
+                usesVectorUDFAdaptor: false
+                vectorized: true
 
   Stage: Stage-0
     Fetch Operator
@@ -615,10 +909,14 @@ NULL      35      NULL    NULL
 NULL   NULL    10      NULL
 NULL   NULL    48      NULL
 NULL   NULL    NULL    NULL
-PREHOOK: query: explain select * from myinput1 a join myinput1 b on 
a.key<=>b.value
+PREHOOK: query: explain vectorization expression select * from myinput1 a join 
myinput1 b on a.key<=>b.value
 PREHOOK: type: QUERY
-POSTHOOK: query: explain select * from myinput1 a join myinput1 b on 
a.key<=>b.value
+POSTHOOK: query: explain vectorization expression select * from myinput1 a 
join myinput1 b on a.key<=>b.value
 POSTHOOK: type: QUERY
+PLAN VECTORIZATION:
+  enabled: true
+  enabledConditionsMet: [hive.vectorized.execution.enabled IS true]
+
 STAGE DEPENDENCIES:
   Stage-1 is a root stage
   Stage-0 depends on stages: Stage-1
@@ -636,12 +934,20 @@ STAGE PLANS:
                 TableScan
                   alias: a
                   Statistics: Num rows: 6 Data size: 24 Basic stats: COMPLETE 
Column stats: NONE
+                  TableScan Vectorization:
+                      native: true
+                      projectedOutputColumns: [0, 1]
                   Map Join Operator
                     condition map:
                          Inner Join 0 to 1
                     keys:
                       0 key (type: int)
                       1 value (type: int)
+                    Map Join Vectorization:
+                        className: VectorMapJoinOperator
+                        native: false
+                        nativeConditionsMet: hive.mapjoin.optimized.hashtable 
IS true, hive.vectorized.execution.mapjoin.native.enabled IS true, 
hive.execution.engine tez IN [tez, spark] IS true, One MapJoin Condition IS 
true, Small table vectorizes IS true, Optimized Table and Supports Key Types IS 
true
+                        nativeConditionsNotMet: No nullsafe IS false
                     nullSafes: [true]
                     outputColumnNames: _col0, _col1, _col5, _col6
                     input vertices:
@@ -650,9 +956,16 @@ STAGE PLANS:
                     Select Operator
                       expressions: _col0 (type: int), _col1 (type: int), _col5 
(type: int), _col6 (type: int)
                       outputColumnNames: _col0, _col1, _col2, _col3
+                      Select Vectorization:
+                          className: VectorSelectOperator
+                          native: true
+                          projectedOutputColumns: [0, 1, 2, 3]
                       Statistics: Num rows: 6 Data size: 26 Basic stats: 
COMPLETE Column stats: NONE
                       File Output Operator
                         compressed: false
+                        File Sink Vectorization:
+                            className: VectorFileSinkOperator
+                            native: false
                         Statistics: Num rows: 6 Data size: 26 Basic stats: 
COMPLETE Column stats: NONE
                         table:
                             input format: 
org.apache.hadoop.mapred.SequenceFileInputFormat
@@ -660,19 +973,42 @@ STAGE PLANS:
                             serde: 
org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
             Execution mode: vectorized, llap
             LLAP IO: all inputs
+            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
         Map 2 
             Map Operator Tree:
                 TableScan
                   alias: b
                   Statistics: Num rows: 6 Data size: 24 Basic stats: COMPLETE 
Column stats: NONE
+                  TableScan Vectorization:
+                      native: true
+                      projectedOutputColumns: [0, 1]
                   Reduce Output Operator
                     key expressions: value (type: int)
                     sort order: +
                     Map-reduce partition columns: value (type: int)
+                    Reduce Sink Vectorization:
+                        className: VectorReduceSinkLongOperator
+                        native: true
+                        nativeConditionsMet: 
hive.vectorized.execution.reducesink.new.enabled IS true, hive.execution.engine 
tez IN [tez, spark] IS true, Not ACID UPDATE or DELETE IS true, No buckets IS 
true, No TopN IS true, Uniform Hash IS true, No DISTINCT columns IS true, 
BinarySortableSerDe for keys IS true, LazyBinarySerDe for values IS true
                     Statistics: Num rows: 6 Data size: 24 Basic stats: 
COMPLETE Column stats: NONE
                     value expressions: key (type: int)
             Execution mode: vectorized, llap
             LLAP IO: all inputs
+            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: true
+                usesVectorUDFAdaptor: false
+                vectorized: true
 
   Stage: Stage-0
     Fetch Operator
@@ -699,10 +1035,14 @@ NULL     35      NULL    NULL
 NULL   NULL    10      NULL
 NULL   NULL    48      NULL
 NULL   NULL    NULL    NULL
-PREHOOK: query: explain select * from myinput1 a join myinput1 b on 
a.key<=>b.value join myinput1 c on a.key=c.key
+PREHOOK: query: explain vectorization expression select * from myinput1 a join 
myinput1 b on a.key<=>b.value join myinput1 c on a.key=c.key
 PREHOOK: type: QUERY
-POSTHOOK: query: explain select * from myinput1 a join myinput1 b on 
a.key<=>b.value join myinput1 c on a.key=c.key
+POSTHOOK: query: explain vectorization expression select * from myinput1 a 
join myinput1 b on a.key<=>b.value join myinput1 c on a.key=c.key
 POSTHOOK: type: QUERY
+PLAN VECTORIZATION:
+  enabled: true
+  enabledConditionsMet: [hive.vectorized.execution.enabled IS true]
+
 STAGE DEPENDENCIES:
   Stage-1 is a root stage
   Stage-0 depends on stages: Stage-1
@@ -720,7 +1060,14 @@ STAGE PLANS:
                 TableScan
                   alias: a
                   Statistics: Num rows: 6 Data size: 24 Basic stats: COMPLETE 
Column stats: NONE
+                  TableScan Vectorization:
+                      native: true
+                      projectedOutputColumns: [0, 1]
                   Filter Operator
+                    Filter Vectorization:
+                        className: VectorFilterOperator
+                        native: true
+                        predicateExpression: SelectColumnIsNotNull(col 0) -> 
boolean
                     predicate: key is not null (type: boolean)
                     Statistics: Num rows: 6 Data size: 24 Basic stats: 
COMPLETE Column stats: NONE
                     Map Join Operator
@@ -731,6 +1078,11 @@ STAGE PLANS:
                         0 key (type: int)
                         1 value (type: int)
                         2 key (type: int)
+                      Map Join Vectorization:
+                          className: VectorMapJoinOperator
+                          native: false
+                          nativeConditionsMet: 
hive.mapjoin.optimized.hashtable IS true, 
hive.vectorized.execution.mapjoin.native.enabled IS true, hive.execution.engine 
tez IN [tez, spark] IS true, No nullsafe IS true, Small table vectorizes IS 
true, Optimized Table and Supports Key Types IS true
+                          nativeConditionsNotMet: One MapJoin Condition IS 
false
                       outputColumnNames: _col0, _col1, _col5, _col6, _col10, 
_col11
                       input vertices:
                         1 Map 2
@@ -739,9 +1091,16 @@ STAGE PLANS:
                       Select Operator
                         expressions: _col0 (type: int), _col1 (type: int), 
_col5 (type: int), _col6 (type: int), _col10 (type: int), _col11 (type: int)
                         outputColumnNames: _col0, _col1, _col2, _col3, _col4, 
_col5
+                        Select Vectorization:
+                            className: VectorSelectOperator
+                            native: true
+                            projectedOutputColumns: [0, 1, 2, 3, 4, 5]
                         Statistics: Num rows: 13 Data size: 52 Basic stats: 
COMPLETE Column stats: NONE
                         File Output Operator
                           compressed: false
+                          File Sink Vectorization:
+                              className: VectorFileSinkOperator
+                              native: false
                           Statistics: Num rows: 13 Data size: 52 Basic stats: 
COMPLETE Column stats: NONE
                           table:
                               input format: 
org.apache.hadoop.mapred.SequenceFileInputFormat
@@ -749,38 +1108,84 @@ STAGE PLANS:
                               serde: 
org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
             Execution mode: vectorized, llap
             LLAP IO: all inputs
+            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
         Map 2 
             Map Operator Tree:
                 TableScan
                   alias: b
                   Statistics: Num rows: 6 Data size: 24 Basic stats: COMPLETE 
Column stats: NONE
+                  TableScan Vectorization:
+                      native: true
+                      projectedOutputColumns: [0, 1]
                   Filter Operator
+                    Filter Vectorization:
+                        className: VectorFilterOperator
+                        native: true
+                        predicateExpression: SelectColumnIsNotNull(col 1) -> 
boolean
                     predicate: value is not null (type: boolean)
                     Statistics: Num rows: 6 Data size: 24 Basic stats: 
COMPLETE Column stats: NONE
                     Reduce Output Operator
                       key expressions: value (type: int)
                       sort order: +
                       Map-reduce partition columns: value (type: int)
+                      Reduce Sink Vectorization:
+                          className: VectorReduceSinkLongOperator
+                          native: true
+                          nativeConditionsMet: 
hive.vectorized.execution.reducesink.new.enabled IS true, hive.execution.engine 
tez IN [tez, spark] IS true, Not ACID UPDATE or DELETE IS true, No buckets IS 
true, No TopN IS true, Uniform Hash IS true, No DISTINCT columns IS true, 
BinarySortableSerDe for keys IS true, LazyBinarySerDe for values IS true
                       Statistics: Num rows: 6 Data size: 24 Basic stats: 
COMPLETE Column stats: NONE
                       value expressions: key (type: int)
             Execution mode: vectorized, llap
             LLAP IO: all inputs
+            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: true
+                usesVectorUDFAdaptor: false
+                vectorized: true
         Map 3 
             Map Operator Tree:
                 TableScan
                   alias: c
                   Statistics: Num rows: 6 Data size: 24 Basic stats: COMPLETE 
Column stats: NONE
+                  TableScan Vectorization:
+                      native: true
+                      projectedOutputColumns: [0, 1]
                   Filter Operator
+                    Filter Vectorization:
+                        className: VectorFilterOperator
+                        native: true
+                        predicateExpression: SelectColumnIsNotNull(col 0) -> 
boolean
                     predicate: key is not null (type: boolean)
                     Statistics: Num rows: 6 Data size: 24 Basic stats: 
COMPLETE Column stats: NONE
                     Reduce Output Operator
                       key expressions: key (type: int)
                       sort order: +
                       Map-reduce partition columns: key (type: int)
+                      Reduce Sink Vectorization:
+                          className: VectorReduceSinkLongOperator
+                          native: true
+                          nativeConditionsMet: 
hive.vectorized.execution.reducesink.new.enabled IS true, hive.execution.engine 
tez IN [tez, spark] IS true, Not ACID UPDATE or DELETE IS true, No buckets IS 
true, No TopN IS true, Uniform Hash IS true, No DISTINCT columns IS true, 
BinarySortableSerDe for keys IS true, LazyBinarySerDe for values IS true
                       Statistics: Num rows: 6 Data size: 24 Basic stats: 
COMPLETE Column stats: NONE
                       value expressions: value (type: int)
             Execution mode: vectorized, llap
             LLAP IO: all inputs
+            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: true
+                usesVectorUDFAdaptor: false
+                vectorized: true
 
   Stage: Stage-0
     Fetch Operator
@@ -798,10 +1203,14 @@ POSTHOOK: Input: default@myinput1
 #### A masked pattern was here ####
 10     NULL    NULL    10      10      NULL
 100    100     100     100     100     100
-PREHOOK: query: explain select * from myinput1 a join myinput1 b on 
a.key<=>b.value join myinput1 c on a.key<=>c.key
+PREHOOK: query: explain vectorization expression select * from myinput1 a join 
myinput1 b on a.key<=>b.value join myinput1 c on a.key<=>c.key
 PREHOOK: type: QUERY
-POSTHOOK: query: explain select * from myinput1 a join myinput1 b on 
a.key<=>b.value join myinput1 c on a.key<=>c.key
+POSTHOOK: query: explain vectorization expression select * from myinput1 a 
join myinput1 b on a.key<=>b.value join myinput1 c on a.key<=>c.key
 POSTHOOK: type: QUERY
+PLAN VECTORIZATION:
+  enabled: true
+  enabledConditionsMet: [hive.vectorized.execution.enabled IS true]
+
 STAGE DEPENDENCIES:
   Stage-1 is a root stage
   Stage-0 depends on stages: Stage-1
@@ -819,6 +1228,9 @@ STAGE PLANS:
                 TableScan
                   alias: a
                   Statistics: Num rows: 6 Data size: 24 Basic stats: COMPLETE 
Column stats: NONE
+                  TableScan Vectorization:
+                      native: true
+                      projectedOutputColumns: [0, 1]
                   Map Join Operator
                     condition map:
                          Inner Join 0 to 1
@@ -827,6 +1239,11 @@ STAGE PLANS:
                       0 key (type: int)
                       1 value (type: int)
                       2 key (type: int)
+                    Map Join Vectorization:
+                        className: VectorMapJoinOperator
+                        native: false
+                        nativeConditionsMet: hive.mapjoin.optimized.hashtable 
IS true, hive.vectorized.execution.mapjoin.native.enabled IS true, 
hive.execution.engine tez IN [tez, spark] IS true, Small table vectorizes IS 
true, Optimized Table and Supports Key Types IS true
+                        nativeConditionsNotMet: One MapJoin Condition IS 
false, No nullsafe IS false
                     nullSafes: [true]
                     outputColumnNames: _col0, _col1, _col5, _col6, _col10, 
_col11
                     input vertices:
@@ -836,9 +1253,16 @@ STAGE PLANS:
                     Select Operator
                       expressions: _col0 (type: int), _col1 (type: int), _col5 
(type: int), _col6 (type: int), _col10 (type: int), _col11 (type: int)
                       outputColumnNames: _col0, _col1, _col2, _col3, _col4, 
_col5
+                      Select Vectorization:
+                          className: VectorSelectOperator
+                          native: true
+                          projectedOutputColumns: [0, 1, 2, 3, 4, 5]
                       Statistics: Num rows: 13 Data size: 52 Basic stats: 
COMPLETE Column stats: NONE
                       File Output Operator
                         compressed: false
+                        File Sink Vectorization:
+                            className: VectorFileSinkOperator
+                            native: false
                         Statistics: Num rows: 13 Data size: 52 Basic stats: 
COMPLETE Column stats: NONE
                         table:
                             input format: 
org.apache.hadoop.mapred.SequenceFileInputFormat
@@ -846,32 +1270,70 @@ STAGE PLANS:
                             serde: 
org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
             Execution mode: vectorized, llap
             LLAP IO: all inputs
+            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
         Map 2 
             Map Operator Tree:
                 TableScan
                   alias: b
                   Statistics: Num rows: 6 Data size: 24 Basic stats: COMPLETE 
Column stats: NONE
+                  TableScan Vectorization:
+                      native: true
+                      projectedOutputColumns: [0, 1]
                   Reduce Output Operator
                     key expressions: value (type: int)
                     sort order: +
                     Map-reduce partition columns: value (type: int)
+                    Reduce Sink Vectorization:
+                        className: VectorReduceSinkLongOperator
+                        native: true
+                        nativeConditionsMet: 
hive.vectorized.execution.reducesink.new.enabled IS true, hive.execution.engine 
tez IN [tez, spark] IS true, Not ACID UPDATE or DELETE IS true, No buckets IS 
true, No TopN IS true, Uniform Hash IS true, No DISTINCT columns IS true, 
BinarySortableSerDe for keys IS true, LazyBinarySerDe for values IS true
                     Statistics: Num rows: 6 Data size: 24 Basic stats: 
COMPLETE Column stats: NONE
                     value expressions: key (type: int)
             Execution mode: vectorized, llap
             LLAP IO: all inputs
+            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: true
+                usesVectorUDFAdaptor: false
+                vectorized: true
         Map 3 
             Map Operator Tree:
                 TableScan
                   alias: c
                   Statistics: Num rows: 6 Data size: 24 Basic stats: COMPLETE 
Column stats: NONE
+                  TableScan Vectorization:
+                      native: true
+                      projectedOutputColumns: [0, 1]
                   Reduce Output Operator
                     key expressions: key (type: int)
                     sort order: +
                     Map-reduce partition columns: key (type: int)
+                    Reduce Sink Vectorization:
+                        className: VectorReduceSinkLongOperator
+                        native: true
+                        nativeConditionsMet: 
hive.vectorized.execution.reducesink.new.enabled IS true, hive.execution.engine 
tez IN [tez, spark] IS true, Not ACID UPDATE or DELETE IS true, No buckets IS 
true, No TopN IS true, Uniform Hash IS true, No DISTINCT columns IS true, 
BinarySortableSerDe for keys IS true, LazyBinarySerDe for values IS true
                     Statistics: Num rows: 6 Data size: 24 Basic stats: 
COMPLETE Column stats: NONE
                     value expressions: value (type: int)
             Execution mode: vectorized, llap
             LLAP IO: all inputs
+            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: true
+                usesVectorUDFAdaptor: false
+                vectorized: true
 
   Stage: Stage-0
     Fetch Operator
@@ -916,10 +1378,14 @@ NULL     NULL    48      NULL    NULL    NULL
 NULL   NULL    NULL    NULL    NULL    10
 NULL   NULL    NULL    NULL    NULL    35
 NULL   NULL    NULL    NULL    NULL    NULL
-PREHOOK: query: explain select * from myinput1 a join myinput1 b on 
a.key<=>b.value AND a.value=b.key join myinput1 c on a.key<=>c.key AND 
a.value=c.value
+PREHOOK: query: explain vectorization expression select * from myinput1 a join 
myinput1 b on a.key<=>b.value AND a.value=b.key join myinput1 c on 
a.key<=>c.key AND a.value=c.value
 PREHOOK: type: QUERY
-POSTHOOK: query: explain select * from myinput1 a join myinput1 b on 
a.key<=>b.value AND a.value=b.key join myinput1 c on a.key<=>c.key AND 
a.value=c.value
+POSTHOOK: query: explain vectorization expression select * from myinput1 a 
join myinput1 b on a.key<=>b.value AND a.value=b.key join myinput1 c on 
a.key<=>c.key AND a.value=c.value
 POSTHOOK: type: QUERY
+PLAN VECTORIZATION:
+  enabled: true
+  enabledConditionsMet: [hive.vectorized.execution.enabled IS true]
+
 STAGE DEPENDENCIES:
   Stage-1 is a root stage
   Stage-0 depends on stages: Stage-1
@@ -937,7 +1403,14 @@ STAGE PLANS:
                 TableScan
                   alias: a
                   Statistics: Num rows: 6 Data size: 24 Basic stats: COMPLETE 
Column stats: NONE
+                  TableScan Vectorization:
+                      native: true
+                      projectedOutputColumns: [0, 1]
                   Filter Operator
+                    Filter Vectorization:
+                        className: VectorFilterOperator
+                        native: true
+                        predicateExpression: SelectColumnIsNotNull(col 1) -> 
boolean
                     predicate: value is not null (type: boolean)
                     Statistics: Num rows: 6 Data size: 24 Basic stats: 
COMPLETE Column stats: NONE
                     Map Join Operator
@@ -948,6 +1421,11 @@ STAGE PLANS:
                         0 key (type: int), value (type: int)
                         1 value (type: int), key (type: int)
                         2 key (type: int), value (type: int)
+                      Map Join Vectorization:
+                          className: VectorMapJoinOperator
+                          native: false
+                          nativeConditionsMet: 
hive.mapjoin.optimized.hashtable IS true, 
hive.vectorized.execution.mapjoin.native.enabled IS true, hive.execution.engine 
tez IN [tez, spark] IS true, Small table vectorizes IS true, Optimized Table 
and Supports Key Types IS true
+                          nativeConditionsNotMet: One MapJoin Condition IS 
false, No nullsafe IS false
                       nullSafes: [true, false]
                       outputColumnNames: _col0, _col1, _col5, _col6, _col10, 
_col11
                       input vertices:
@@ -957,9 +1435,16 @@ STAGE PLANS:
                       Select Operator
                         expressions: _col0 (type: int), _col1 (type: int), 
_col5 (type: int), _col6 (type: int), _col10 (type: int), _col11 (type: int)
                         outputColumnNames: _col0, _col1, _col2, _col3, _col4, 
_col5
+                        Select Vectorization:
+                            className: VectorSelectOperator
+                            native: true
+                            projectedOutputColumns: [0, 1, 2, 3, 4, 5]
                         Statistics: Num rows: 13 Data size: 52 Basic stats: 
COMPLETE Column stats: NONE
                         File Output Operator
                           compressed: false
+                          File Sink Vectorization:
+                              className: VectorFileSinkOperator
+                              native: false
                           Statistics: Num rows: 13 Data size: 52 Basic stats: 
COMPLETE Column stats: NONE
                           table:
                               input format: 
org.apache.hadoop.mapred.SequenceFileInputFormat
@@ -967,36 +1452,82 @@ STAGE PLANS:
                               serde: 
org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
             Execution mode: vectorized, llap
             LLAP IO: all inputs
+            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
         Map 2 
             Map Operator Tree:
                 TableScan
                   alias: b
                   Statistics: Num rows: 6 Data size: 24 Basic stats: COMPLETE 
Column stats: NONE
+                  TableScan Vectorization:
+                      native: true
+                      projectedOutputColumns: [0, 1]
                   Filter Operator
+                    Filter Vectorization:
+                        className: VectorFilterOperator
+                        native: true
+                        predicateExpression: SelectColumnIsNotNull(col 0) -> 
boolean
                     predicate: key is not null (type: boolean)
                     Statistics: Num rows: 6 Data size: 24 Basic stats: 
COMPLETE Column stats: NONE
                     Reduce Output Operator
                       key expressions: value (type: int), key (type: int)
                       sort order: ++
                       Map-reduce partition columns: value (type: int), key 
(type: int)
+                      Reduce Sink Vectorization:
+                          className: VectorReduceSinkMultiKeyOperator
+                          native: true
+                          nativeConditionsMet: 
hive.vectorized.execution.reducesink.new.enabled IS true, hive.execution.engine 
tez IN [tez, spark] IS true, Not ACID UPDATE or DELETE IS true, No buckets IS 
true, No TopN IS true, Uniform Hash IS true, No DISTINCT columns IS true, 
BinarySortableSerDe for keys IS true, LazyBinarySerDe for values IS true
                       Statistics: Num rows: 6 Data size: 24 Basic stats: 
COMPLETE Column stats: NONE
             Execution mode: vectorized, llap
             LLAP IO: all inputs
+            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: true
+                usesVectorUDFAdaptor: false
+                vectorized: true
         Map 3 
             Map Operator Tree:
                 TableScan
                   alias: c
                   Statistics: Num rows: 6 Data size: 24 Basic stats: COMPLETE 
Column stats: NONE
+                  TableScan Vectorization:
+                      native: true
+                      projectedOutputColumns: [0, 1]
                   Filter Operator
+                    Filter Vectorization:
+                        className: VectorFilterOperator
+                        native: true
+                        predicateExpression: SelectColumnIsNotNull(col 1) -> 
boolean
                     predicate: value is not null (type: boolean)
                     Statistics: Num rows: 6 Data size: 24 Basic stats: 
COMPLETE Column stats: NONE
                     Reduce Output Operator
                       key expressions: key (type: int), value (type: int)
                       sort order: ++
                       Map-reduce partition columns: key (type: int), value 
(type: int)
+                      Reduce Sink Vectorization:
+                          className: VectorReduceSinkMultiKeyOperator
+                          native: true
+                          nativeConditionsMet: 
hive.vectorized.execution.reducesink.new.enabled IS true, hive.execution.engine 
tez IN [tez, spark] IS true, Not ACID UPDATE or DELETE IS true, No buckets IS 
true, No TopN IS true, Uniform Hash IS true, No DISTINCT columns IS true, 
BinarySortableSerDe for keys IS true, LazyBinarySerDe for values IS true
                       Statistics: Num rows: 6 Data size: 24 Basic stats: 
COMPLETE Column stats: NONE
             Execution mode: vectorized, llap
             LLAP IO: all inputs
+            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: true
+                usesVectorUDFAdaptor: false
+                vectorized: true
 
   Stage: Stage-0
     Fetch Operator
@@ -1014,10 +1545,14 @@ POSTHOOK: Input: default@myinput1
 #### A masked pattern was here ####
 100    100     100     100     100     100
 NULL   10      10      NULL    NULL    10
-PREHOOK: query: explain select * from myinput1 a join myinput1 b on 
a.key<=>b.value AND a.value<=>b.key join myinput1 c on a.key<=>c.key AND 
a.value<=>c.value
+PREHOOK: query: explain vectorization expression select * from myinput1 a join 
myinput1 b on a.key<=>b.value AND a.value<=>b.key join myinput1 c on 
a.key<=>c.key AND a.value<=>c.value
 PREHOOK: type: QUERY
-POSTHOOK: query: explain select * from myinput1 a join myinput1 b on 
a.key<=>b.value AND a.value<=>b.key join myinput1 c on a.key<=>c.key AND 
a.value<=>c.value
+POSTHOOK: query: explain vectorization expression select * from myinput1 a 
join myinput1 b on a.key<=>b.value AND a.value<=>b.key join myinput1 c on 
a.key<=>c.key AND a.value<=>c.value
 POSTHOOK: type: QUERY
+PLAN VECTORIZATION:
+  enabled: true
+  enabledConditionsMet: [hive.vectorized.execution.enabled IS true]
+
 STAGE DEPENDENCIES:
   Stage-1 is a root stage
   Stage-0 depends on stages: Stage-1
@@ -1035,6 +1570,9 @@ STAGE PLANS:
                 TableScan
                   alias: a
                   Statistics: Num rows: 6 Data size: 24 Basic stats: COMPLETE 
Column stats: NONE
+                  TableScan Vectorization:
+                      native: true
+                      projectedOutputColumns: [0, 1]
                   Map Join Operator
                     condition map:
                          Inner Join 0 to 1
@@ -1043,6 +1581,11 @@ STAGE PLANS:
                       0 key (type: int), value (type: int)
                       1 value (type: int), key (type: int)
                       2 key (type: int), value (type: int)
+                    Map Join Vectorization:
+                        className: VectorMapJoinOperator
+                        native: false
+                        nativeConditionsMet: hive.mapjoin.optimized.hashtable 
IS true, hive.vectorized.execution.mapjoin.native.enabled IS true, 
hive.execution.engine tez IN [tez, spark] IS true, Small table vectorizes IS 
true, Optimized Table and Supports Key Types IS true
+                        nativeConditionsNotMet: One MapJoin Condition IS 
false, No nullsafe IS false
                     nullSafes: [true, true]
                     outputColumnNames: _col0, _col1, _col5, _col6, _col10, 
_col11
                     input vertices:
@@ -1052,9 +1595,16 @@ STAGE PLANS:
                     Select Operator
                       expressions: _col0 (type: int), _col1 (type: int), _col5 
(type: int), _col6 (type: int), _col10 (type: int), _col11 (type: int)
                       outputColumnNames: _col0, _col1, _col2, _col3, _col4, 
_col5
+                      Select Vectorization:
+                          className: VectorSelectOperator
+                          native: true
+                          projectedOutputColumns: [0, 1, 2, 3, 4, 5]
                       Statistics: Num rows: 13 Data size: 52 Basic stats: 
COMPLETE Column stats: NONE
                       File Output Operator
                         compressed: false
+                        File Sink Vectorization:
+                            className: VectorFileSinkOperator
+                            native: false
                         Statistics: Num rows: 13 Data size: 52 Basic stats: 
COMPLETE Column stats: NONE
                         table:
                             input format: 
org.apache.hadoop.mapred.SequenceFileInputFormat
@@ -1062,30 +1612,68 @@ STAGE PLANS:
                             serde: 
org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
             Execution mode: vectorized, llap
             LLAP IO: all inputs
+            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
         Map 2 
             Map Operator Tree:
                 TableScan
                   alias: b
                   Statistics: Num rows: 6 Data size: 24 Basic stats: COMPLETE 
Column stats: NONE
+                  TableScan Vectorization:
+                      native: true
+                      projectedOutputColumns: [0, 1]
                   Reduce Output Operator
                     key expressions: value (type: int), key (type: int)
                     sort order: ++
                     Map-reduce partition columns: value (type: int), key 
(type: int)
+                    Reduce Sink Vectorization:
+                        className: VectorReduceSinkMultiKeyOperator
+                        native: true
+                        nativeConditionsMet: 
hive.vectorized.execution.reducesink.new.enabled IS true, hive.execution.engine 
tez IN [tez, spark] IS true, Not ACID UPDATE or DELETE IS true, No buckets IS 
true, No TopN IS true, Uniform Hash IS true, No DISTINCT columns IS true, 
BinarySortableSerDe for keys IS true, LazyBinarySerDe for values IS true
                     Statistics: Num rows: 6 Data size: 24 Basic stats: 
COMPLETE Column stats: NONE
             Execution mode: vectorized, llap
             LLAP IO: all inputs
+            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: true
+                usesVectorUDFAdaptor: false
+                vectorized: true
         Map 3 
             Map Operator Tree:
                 TableScan
                   alias: c
                   Statistics: Num rows: 6 Data size: 24 Basic stats: COMPLETE 
Column stats: NONE
+                  TableScan Vectorization:
+                      native: true
+                      projectedOutputColumns: [0, 1]
                   Reduce Output Operator
                     key expressions: key (type: int), value (type: int)
                     sort order: ++
                     Map-reduce partition columns: key (type: int), value 
(type: int)
+                    Reduce Sink Vectorization:
+                        className: VectorReduceSinkMultiKeyOperator
+                        native: true
+                        nativeConditionsMet: 
hive.vectorized.execution.reducesink.new.enabled IS true, hive.execution.engine 
tez IN [tez, spark] IS true, Not ACID UPDATE or DELETE IS true, No buckets IS 
true, No TopN IS true, Uniform Hash IS true, No DISTINCT columns IS true, 
BinarySortableSerDe for keys IS true, LazyBinarySerDe for values IS true
                     Statistics: Num rows: 6 Data size: 24 Basic stats: 
COMPLETE Column stats: NONE
             Execution mode: vectorized, llap
             LLAP IO: all inputs
+            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: true
+                usesVectorUDFAdaptor: false
+                vectorized: true
 
   Stage: Stage-0
     Fetch Operator

http://git-wip-us.apache.org/repos/asf/hive/blob/fcb57100/ql/src/test/results/clientpositive/llap/vector_number_compare_projection.q.out
----------------------------------------------------------------------
diff --git 
a/ql/src/test/results/clientpositive/llap/vector_number_compare_projection.q.out
 
b/ql/src/test/results/clientpositive/llap/vector_number_compare_projection.q.out
index c89eb11..e94151d 100644
--- 
a/ql/src/test/results/clientpositive/llap/vector_number_compare_projection.q.out
+++ 
b/ql/src/test/results/clientpositive/llap/vector_number_compare_projection.q.out
@@ -94,17 +94,21 @@ POSTHOOK: Lineage: vectortab2k_orc.i SIMPLE 
[(scratch)scratch.FieldSchema(name:i
 POSTHOOK: Lineage: vectortab2k_orc.si SIMPLE 
[(scratch)scratch.FieldSchema(name:si, type:smallint, comment:null), ]
 POSTHOOK: Lineage: vectortab2k_orc.t SIMPLE 
[(scratch)scratch.FieldSchema(name:t, type:tinyint, comment:null), ]
 scratch.t      scratch.si      scratch.i       scratch.b       scratch.f       
scratch.d       scratch.dc
-PREHOOK: query: EXPLAIN
+PREHOOK: query: EXPLAIN VECTORIZATION EXPRESSION
 SELECT sum(hash(*)) FROM
     (SELECT t, si, i, (t < 0) as compare1, (si <= 0) as compare2, (i = 0) as 
compare3 from vectortab2k_orc
         order by t, si, i) as q
 PREHOOK: type: QUERY
-POSTHOOK: query: EXPLAIN
+POSTHOOK: query: EXPLAIN VECTORIZATION EXPRESSION
 SELECT sum(hash(*)) FROM
     (SELECT t, si, i, (t < 0) as compare1, (si <= 0) as compare2, (i = 0) as 
compare3 from vectortab2k_orc
         order by t, si, i) as q
 POSTHOOK: type: QUERY
 Explain
+PLAN VECTORIZATION:
+  enabled: true
+  enabledConditionsMet: [hive.vectorized.execution.enabled IS true]
+
 STAGE DEPENDENCIES:
   Stage-1 is a root stage
   Stage-0 depends on stages: Stage-1
@@ -122,31 +126,73 @@ STAGE PLANS:
                 TableScan
                   alias: vectortab2k_orc
                   Statistics: Num rows: 2001 Data size: 273608 Basic stats: 
COMPLETE Column stats: NONE
+                  TableScan Vectorization:
+                      native: true
+                      projectedOutputColumns: [0, 1, 2, 3, 4, 5, 6]
                   Select Operator
                     expressions: t (type: tinyint), si (type: smallint), i 
(type: int), (t < 0) (type: boolean), (si <= 0) (type: boolean), (i = 0) (type: 
boolean)
                     outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5
+                    Select Vectorization:
+                        className: VectorSelectOperator
+                        native: true
+                        projectedOutputColumns: [0, 1, 2, 7, 8, 9]
+                        selectExpressions: LongColLessLongScalar(col 0, val 0) 
-> 7:long, LongColLessEqualLongScalar(col 1, val 0) -> 8:long, 
LongColEqualLongScalar(col 2, val 0) -> 9:long
                     Statistics: Num rows: 2001 Data size: 273608 Basic stats: 
COMPLETE Column stats: NONE
                     Reduce Output Operator
                       key expressions: _col0 (type: tinyint), _col1 (type: 
smallint), _col2 (type: int)
                       sort order: +++
+                      Reduce Sink Vectorization:
+                          className: VectorReduceSinkOperator
+                          native: false
+                          nativeConditionsMet: 
hive.vectorized.execution.reducesink.new.enabled IS true, hive.execution.engine 
tez IN [tez, spark] IS true, Not ACID UPDATE or DELETE IS true, No buckets IS 
true, No TopN IS true, No DISTINCT columns IS true, BinarySortableSerDe for 
keys IS true, LazyBinarySerDe for values IS true
+                          nativeConditionsNotMet: Uniform Hash IS false
                       Statistics: Num rows: 2001 Data size: 273608 Basic 
stats: COMPLETE Column stats: NONE
                       value expressions: _col3 (type: boolean), _col4 (type: 
boolean), _col5 (type: boolean)
             Execution mode: vectorized, llap
             LLAP IO: all inputs
+            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
         Reducer 2 
             Execution mode: vectorized, llap
+            Reduce Vectorization:
+                enabled: true
+                enableConditionsMet: hive.vectorized.execution.reduce.enabled 
IS true, hive.execution.engine tez IN [tez, spark] IS true
+                groupByVectorOutput: true
+                allNative: false
+                usesVectorUDFAdaptor: true
+                vectorized: true
             Reduce Operator Tree:
               Select Operator
                 expressions: 
hash(KEY.reducesinkkey0,KEY.reducesinkkey1,KEY.reducesinkkey2,VALUE._col0,VALUE._col1,VALUE._col2)
 (type: int)
                 outputColumnNames: _col0
+                Select Vectorization:
+                    className: VectorSelectOperator
+                    native: true
+                    projectedOutputColumns: [6]
+                    selectExpressions: 
VectorUDFAdaptor(hash(KEY.reducesinkkey0,KEY.reducesinkkey1,KEY.reducesinkkey2,VALUE._col0,VALUE._col1,VALUE._col2))
 -> 6:int
                 Statistics: Num rows: 2001 Data size: 273608 Basic stats: 
COMPLETE Column stats: NONE
                 Group By Operator
                   aggregations: sum(_col0)
+                  Group By Vectorization:
+                      aggregators: VectorUDAFSumLong(col 6) -> bigint
+                      className: VectorGroupByOperator
+                      vectorOutput: true
+                      native: false
+                      projectedOutputColumns: [0]
                   mode: complete
                   outputColumnNames: _col0
                   Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE 
Column stats: NONE
                   File Output Operator
                     compressed: false
+                    File Sink Vectorization:
+                        className: VectorFileSinkOperator
+                        native: false
                     Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE 
Column stats: NONE
                     table:
                         input format: 
org.apache.hadoop.mapred.SequenceFileInputFormat
@@ -173,17 +219,21 @@ POSTHOOK: Input: default@vectortab2k_orc
 #### A masked pattern was here ####
 _c0
 -3601806268
-PREHOOK: query: EXPLAIN
+PREHOOK: query: EXPLAIN VECTORIZATION EXPRESSION
 SELECT sum(hash(*)) FROM
     (SELECT t, si, i, b, (t > 0) as compare1, (si >= 0) as compare2, (i != 0) 
as compare3, (b > 0) as compare4 from vectortab2k_orc
         order by t, si, i, b) as q
 PREHOOK: type: QUERY
-POSTHOOK: query: EXPLAIN
+POSTHOOK: query: EXPLAIN VECTORIZATION EXPRESSION
 SELECT sum(hash(*)) FROM
     (SELECT t, si, i, b, (t > 0) as compare1, (si >= 0) as compare2, (i != 0) 
as compare3, (b > 0) as compare4 from vectortab2k_orc
         order by t, si, i, b) as q
 POSTHOOK: type: QUERY
 Explain
+PLAN VECTORIZATION:
+  enabled: true
+  enabledConditionsMet: [hive.vectorized.execution.enabled IS true]
+
 STAGE DEPENDENCIES:
   Stage-1 is a root stage
   Stage-0 depends on stages: Stage-1
@@ -201,31 +251,73 @@ STAGE PLANS:
                 TableScan
                   alias: vectortab2k_orc
                   Statistics: Num rows: 2001 Data size: 273608 Basic stats: 
COMPLETE Column stats: NONE
+                  TableScan Vectorization:
+                      native: true
+                      projectedOutputColumns: [0, 1, 2, 3, 4, 5, 6]
                   Select Operator
                     expressions: t (type: tinyint), si (type: smallint), i 
(type: int), b (type: bigint), (t > 0) (type: boolean), (si >= 0) (type: 
boolean), (i <> 0) (type: boolean), (b > 0) (type: boolean)
                     outputColumnNames: _col0, _col1, _col2, _col3, _col4, 
_col5, _col6, _col7
+                    Select Vectorization:
+                        className: VectorSelectOperator
+                        native: true
+                        projectedOutputColumns: [0, 1, 2, 3, 7, 8, 9, 10]
+                        selectExpressions: LongColGreaterLongScalar(col 0, val 
0) -> 7:long, LongColGreaterEqualLongScalar(col 1, val 0) -> 8:long, 
LongColNotEqualLongScalar(col 2, val 0) -> 9:long, LongColGreaterLongScalar(col 
3, val 0) -> 10:long
                     Statistics: Num rows: 2001 Data size: 273608 Basic stats: 
COMPLETE Column stats: NONE
                     Reduce Output Operator
                       key expressions: _col0 (type: tinyint), _col1 (type: 
smallint), _col2 (type: int), _col3 (type: bigint)
                       sort order: ++++
+                      Reduce Sink Vectorization:
+                          className: VectorReduceSinkOperator
+                          native: false
+                          nativeConditionsMet: 
hive.vectorized.execution.reducesink.new.enabled IS true, hive.execution.engine 
tez IN [tez, spark] IS true, Not ACID UPDATE or DELETE IS true, No buckets IS 
true, No TopN IS true, No DISTINCT columns IS true, BinarySortableSerDe for 
keys IS true, LazyBinarySerDe for values IS true
+                          nativeConditionsNotMet: Uniform Hash IS false
                       Statistics: Num rows: 2001 Data size: 273608 Basic 
stats: COMPLETE Column stats: NONE
                       value expressions: _col4 (type: boolean), _col5 (type: 
boolean), _col6 (type: boolean), _col7 (type: boolean)
             Execution mode: vectorized, llap
             LLAP IO: all inputs
+            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
         Reducer 2 
             Execution mode: vectorized, llap
+            Reduce Vectorization:
+                enabled: true
+                enableConditionsMet: hive.vectorized.execution.reduce.enabled 
IS true, hive.execution.engine tez IN [tez, spark] IS true
+                groupByVectorOutput: true
+                allNative: false
+                usesVectorUDFAdaptor: true
+                vectorized: true
             Reduce Operator Tree:
               Select Operator
                 expressions: 
hash(KEY.reducesinkkey0,KEY.reducesinkkey1,KEY.reducesinkkey2,KEY.reducesinkkey3,VALUE._col0,VALUE._col1,VALUE._col2,VALUE._col3)
 (type: int)
                 outputColumnNames: _col0
+                Select Vectorization:
+                    className: VectorSelectOperator
+                    native: true
+                    projectedOutputColumns: [8]
+                    selectExpressions: 
VectorUDFAdaptor(hash(KEY.reducesinkkey0,KEY.reducesinkkey1,KEY.reducesinkkey2,KEY.reducesinkkey3,VALUE._col0,VALUE._col1,VALUE._col2,VALUE._col3))
 -> 8:int
                 Statistics: Num rows: 2001 Data size: 273608 Basic stats: 
COMPLETE Column stats: NONE
                 Group By Operator
                   aggregations: sum(_col0)
+                  Group By Vectorization:
+                      aggregators: VectorUDAFSumLong(col 8) -> bigint
+                      className: VectorGroupByOperator
+                      vectorOutput: true
+                      native: false
+                      projectedOutputColumns: [0]
                   mode: complete
                   outputColumnNames: _col0
                   Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE 
Column stats: NONE
                   File Output Operator
                     compressed: false
+                    File Sink Vectorization:
+                        className: VectorFileSinkOperator
+                        native: false
                     Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE 
Column stats: NONE
                     table:
                         input format: 
org.apache.hadoop.mapred.SequenceFileInputFormat

Reply via email to