http://git-wip-us.apache.org/repos/asf/hive/blob/92fbe256/ql/src/test/results/clientpositive/llap/vector_udf1.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/llap/vector_udf1.q.out 
b/ql/src/test/results/clientpositive/llap/vector_udf1.q.out
index 0dd278e..16edaac 100644
--- a/ql/src/test/results/clientpositive/llap/vector_udf1.q.out
+++ b/ql/src/test/results/clientpositive/llap/vector_udf1.q.out
@@ -30,20 +30,24 @@ POSTHOOK: Lineage: varchar_udf_1.d1 SIMPLE []
 POSTHOOK: Lineage: varchar_udf_1.d2 SIMPLE []
 POSTHOOK: Lineage: varchar_udf_1.d3 EXPRESSION []
 POSTHOOK: Lineage: varchar_udf_1.d4 EXPRESSION []
-PREHOOK: query: explain
-select 
+PREHOOK: query: explain vectorization detail
+select
   concat(c1, c2),
   concat(c3, c4),
   concat(c1, c2) = concat(c3, c4)
 from varchar_udf_1 limit 1
 PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select 
+POSTHOOK: query: explain vectorization detail
+select
   concat(c1, c2),
   concat(c3, c4),
   concat(c1, c2) = concat(c3, c4)
 from varchar_udf_1 limit 1
 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
@@ -58,15 +62,29 @@ STAGE PLANS:
                 TableScan
                   alias: varchar_udf_1
                   Statistics: Num rows: 1 Data size: 732 Basic stats: COMPLETE 
Column stats: NONE
+                  TableScan Vectorization:
+                      native: true
+                      projectedOutputColumns: [0, 1, 2, 3, 4, 5, 6, 7]
                   Select Operator
                     expressions: concat(c1, c2) (type: string), concat(c3, c4) 
(type: varchar(30)), (concat(c1, c2) = UDFToString(concat(c3, c4))) (type: 
boolean)
                     outputColumnNames: _col0, _col1, _col2
+                    Select Vectorization:
+                        className: VectorSelectOperator
+                        native: true
+                        projectedOutputColumns: [8, 9, 13]
+                        selectExpressions: StringGroupConcatColCol(col 0, col 
1) -> 8:String_Family, StringGroupConcatColCol(col 2, col 3) -> 
9:String_Family, StringGroupColEqualStringGroupColumn(col 10, col 12)(children: 
StringGroupConcatColCol(col 0, col 1) -> 10:String_Family, 
CastStringGroupToString(col 11)(children: StringGroupConcatColCol(col 2, col 3) 
-> 11:String_Family) -> 12:String) -> 13:boolean
                     Statistics: Num rows: 1 Data size: 732 Basic stats: 
COMPLETE Column stats: NONE
                     Limit
                       Number of rows: 1
+                      Limit Vectorization:
+                          className: VectorLimitOperator
+                          native: true
                       Statistics: Num rows: 1 Data size: 732 Basic stats: 
COMPLETE Column stats: NONE
                       File Output Operator
                         compressed: false
+                        File Sink Vectorization:
+                            className: VectorFileSinkOperator
+                            native: false
                         Statistics: Num rows: 1 Data size: 732 Basic stats: 
COMPLETE Column stats: NONE
                         table:
                             input format: 
org.apache.hadoop.mapred.SequenceFileInputFormat
@@ -74,6 +92,20 @@ 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
+                rowBatchContext:
+                    dataColumnCount: 8
+                    includeColumns: [0, 1, 2, 3]
+                    dataColumns: c1:string, c2:string, c3:varchar(10), 
c4:varchar(20), d1:string, d2:string, d3:varchar(10), d4:varchar(10)
+                    partitionColumnCount: 0
+                    scratchColumnTypeNames: string, string, string, string, 
string, bigint
 
   Stage: Stage-0
     Fetch Operator
@@ -81,7 +113,7 @@ STAGE PLANS:
       Processor Tree:
         ListSink
 
-PREHOOK: query: select 
+PREHOOK: query: select
   concat(c1, c2),
   concat(c3, c4),
   concat(c1, c2) = concat(c3, c4)
@@ -89,7 +121,7 @@ from varchar_udf_1 limit 1
 PREHOOK: type: QUERY
 PREHOOK: Input: default@varchar_udf_1
 #### A masked pattern was here ####
-POSTHOOK: query: select 
+POSTHOOK: query: select
   concat(c1, c2),
   concat(c3, c4),
   concat(c1, c2) = concat(c3, c4)
@@ -98,20 +130,24 @@ POSTHOOK: type: QUERY
 POSTHOOK: Input: default@varchar_udf_1
 #### A masked pattern was here ####
 238val_238     238val_238      true
-PREHOOK: query: explain
+PREHOOK: query: explain vectorization detail
 select
   upper(c2),
   upper(c4),
   upper(c2) = upper(c4)
 from varchar_udf_1 limit 1
 PREHOOK: type: QUERY
-POSTHOOK: query: explain
+POSTHOOK: query: explain vectorization detail
 select
   upper(c2),
   upper(c4),
   upper(c2) = upper(c4)
 from varchar_udf_1 limit 1
 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
@@ -126,15 +162,29 @@ STAGE PLANS:
                 TableScan
                   alias: varchar_udf_1
                   Statistics: Num rows: 1 Data size: 732 Basic stats: COMPLETE 
Column stats: NONE
+                  TableScan Vectorization:
+                      native: true
+                      projectedOutputColumns: [0, 1, 2, 3, 4, 5, 6, 7]
                   Select Operator
                     expressions: upper(c2) (type: string), upper(c4) (type: 
varchar(20)), (upper(c2) = UDFToString(upper(c4))) (type: boolean)
                     outputColumnNames: _col0, _col1, _col2
+                    Select Vectorization:
+                        className: VectorSelectOperator
+                        native: true
+                        projectedOutputColumns: [8, 9, 13]
+                        selectExpressions: StringUpper(col 1) -> 8:String, 
StringUpper(col 3) -> 9:String, StringGroupColEqualStringGroupColumn(col 10, 
col 12)(children: StringUpper(col 1) -> 10:String, CastStringGroupToString(col 
11)(children: StringUpper(col 3) -> 11:String) -> 12:String) -> 13:boolean
                     Statistics: Num rows: 1 Data size: 732 Basic stats: 
COMPLETE Column stats: NONE
                     Limit
                       Number of rows: 1
+                      Limit Vectorization:
+                          className: VectorLimitOperator
+                          native: true
                       Statistics: Num rows: 1 Data size: 732 Basic stats: 
COMPLETE Column stats: NONE
                       File Output Operator
                         compressed: false
+                        File Sink Vectorization:
+                            className: VectorFileSinkOperator
+                            native: false
                         Statistics: Num rows: 1 Data size: 732 Basic stats: 
COMPLETE Column stats: NONE
                         table:
                             input format: 
org.apache.hadoop.mapred.SequenceFileInputFormat
@@ -142,6 +192,20 @@ 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
+                rowBatchContext:
+                    dataColumnCount: 8
+                    includeColumns: [1, 3]
+                    dataColumns: c1:string, c2:string, c3:varchar(10), 
c4:varchar(20), d1:string, d2:string, d3:varchar(10), d4:varchar(10)
+                    partitionColumnCount: 0
+                    scratchColumnTypeNames: string, string, string, string, 
string, bigint
 
   Stage: Stage-0
     Fetch Operator
@@ -166,20 +230,24 @@ POSTHOOK: type: QUERY
 POSTHOOK: Input: default@varchar_udf_1
 #### A masked pattern was here ####
 VAL_238        VAL_238 true
-PREHOOK: query: explain
+PREHOOK: query: explain vectorization detail
 select
   lower(c2),
   lower(c4),
   lower(c2) = lower(c4)
 from varchar_udf_1 limit 1
 PREHOOK: type: QUERY
-POSTHOOK: query: explain
+POSTHOOK: query: explain vectorization detail
 select
   lower(c2),
   lower(c4),
   lower(c2) = lower(c4)
 from varchar_udf_1 limit 1
 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
@@ -194,15 +262,29 @@ STAGE PLANS:
                 TableScan
                   alias: varchar_udf_1
                   Statistics: Num rows: 1 Data size: 732 Basic stats: COMPLETE 
Column stats: NONE
+                  TableScan Vectorization:
+                      native: true
+                      projectedOutputColumns: [0, 1, 2, 3, 4, 5, 6, 7]
                   Select Operator
                     expressions: lower(c2) (type: string), lower(c4) (type: 
varchar(20)), (lower(c2) = UDFToString(lower(c4))) (type: boolean)
                     outputColumnNames: _col0, _col1, _col2
+                    Select Vectorization:
+                        className: VectorSelectOperator
+                        native: true
+                        projectedOutputColumns: [8, 9, 13]
+                        selectExpressions: StringLower(col 1) -> 8:String, 
StringLower(col 3) -> 9:String, StringGroupColEqualStringGroupColumn(col 10, 
col 12)(children: StringLower(col 1) -> 10:String, CastStringGroupToString(col 
11)(children: StringLower(col 3) -> 11:String) -> 12:String) -> 13:boolean
                     Statistics: Num rows: 1 Data size: 732 Basic stats: 
COMPLETE Column stats: NONE
                     Limit
                       Number of rows: 1
+                      Limit Vectorization:
+                          className: VectorLimitOperator
+                          native: true
                       Statistics: Num rows: 1 Data size: 732 Basic stats: 
COMPLETE Column stats: NONE
                       File Output Operator
                         compressed: false
+                        File Sink Vectorization:
+                            className: VectorFileSinkOperator
+                            native: false
                         Statistics: Num rows: 1 Data size: 732 Basic stats: 
COMPLETE Column stats: NONE
                         table:
                             input format: 
org.apache.hadoop.mapred.SequenceFileInputFormat
@@ -210,6 +292,20 @@ 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
+                rowBatchContext:
+                    dataColumnCount: 8
+                    includeColumns: [1, 3]
+                    dataColumns: c1:string, c2:string, c3:varchar(10), 
c4:varchar(20), d1:string, d2:string, d3:varchar(10), d4:varchar(10)
+                    partitionColumnCount: 0
+                    scratchColumnTypeNames: string, string, string, string, 
string, bigint
 
   Stage: Stage-0
     Fetch Operator
@@ -234,20 +330,24 @@ POSTHOOK: type: QUERY
 POSTHOOK: Input: default@varchar_udf_1
 #### A masked pattern was here ####
 val_238        val_238 true
-PREHOOK: query: explain
+PREHOOK: query: explain vectorization detail
 select
   ascii(c2),
   ascii(c4),
   ascii(c2) = ascii(c4)
 from varchar_udf_1 limit 1
 PREHOOK: type: QUERY
-POSTHOOK: query: explain
+POSTHOOK: query: explain vectorization detail
 select
   ascii(c2),
   ascii(c4),
   ascii(c2) = ascii(c4)
 from varchar_udf_1 limit 1
 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
@@ -262,15 +362,29 @@ STAGE PLANS:
                 TableScan
                   alias: varchar_udf_1
                   Statistics: Num rows: 1 Data size: 732 Basic stats: COMPLETE 
Column stats: NONE
+                  TableScan Vectorization:
+                      native: true
+                      projectedOutputColumns: [0, 1, 2, 3, 4, 5, 6, 7]
                   Select Operator
                     expressions: ascii(c2) (type: int), ascii(c4) (type: int), 
(ascii(c2) = ascii(c4)) (type: boolean)
                     outputColumnNames: _col0, _col1, _col2
+                    Select Vectorization:
+                        className: VectorSelectOperator
+                        native: true
+                        projectedOutputColumns: [8, 9, 12]
+                        selectExpressions: VectorUDFAdaptor(ascii(c2)) -> 
8:int, VectorUDFAdaptor(ascii(c4)) -> 9:int, LongColEqualLongColumn(col 10, col 
11)(children: VectorUDFAdaptor(ascii(c2)) -> 10:int, 
VectorUDFAdaptor(ascii(c4)) -> 11:int) -> 12:long
                     Statistics: Num rows: 1 Data size: 732 Basic stats: 
COMPLETE Column stats: NONE
                     Limit
                       Number of rows: 1
+                      Limit Vectorization:
+                          className: VectorLimitOperator
+                          native: true
                       Statistics: Num rows: 1 Data size: 732 Basic stats: 
COMPLETE Column stats: NONE
                       File Output Operator
                         compressed: false
+                        File Sink Vectorization:
+                            className: VectorFileSinkOperator
+                            native: false
                         Statistics: Num rows: 1 Data size: 732 Basic stats: 
COMPLETE Column stats: NONE
                         table:
                             input format: 
org.apache.hadoop.mapred.SequenceFileInputFormat
@@ -278,6 +392,20 @@ 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: true
+                vectorized: true
+                rowBatchContext:
+                    dataColumnCount: 8
+                    includeColumns: [1, 3]
+                    dataColumns: c1:string, c2:string, c3:varchar(10), 
c4:varchar(20), d1:string, d2:string, d3:varchar(10), d4:varchar(10)
+                    partitionColumnCount: 0
+                    scratchColumnTypeNames: bigint, bigint, bigint, bigint, 
bigint
 
   Stage: Stage-0
     Fetch Operator
@@ -302,20 +430,24 @@ POSTHOOK: type: QUERY
 POSTHOOK: Input: default@varchar_udf_1
 #### A masked pattern was here ####
 118    118     true
-PREHOOK: query: explain
-select 
+PREHOOK: query: explain vectorization detail
+select
   concat_ws('|', c1, c2),
   concat_ws('|', c3, c4),
   concat_ws('|', c1, c2) = concat_ws('|', c3, c4)
 from varchar_udf_1 limit 1
 PREHOOK: type: QUERY
-POSTHOOK: query: explain
-select 
+POSTHOOK: query: explain vectorization detail
+select
   concat_ws('|', c1, c2),
   concat_ws('|', c3, c4),
   concat_ws('|', c1, c2) = concat_ws('|', c3, c4)
 from varchar_udf_1 limit 1
 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
@@ -330,15 +462,29 @@ STAGE PLANS:
                 TableScan
                   alias: varchar_udf_1
                   Statistics: Num rows: 1 Data size: 732 Basic stats: COMPLETE 
Column stats: NONE
+                  TableScan Vectorization:
+                      native: true
+                      projectedOutputColumns: [0, 1, 2, 3, 4, 5, 6, 7]
                   Select Operator
                     expressions: concat_ws('|', c1, c2) (type: string), 
concat_ws('|', c3, c4) (type: string), (concat_ws('|', c1, c2) = concat_ws('|', 
c3, c4)) (type: boolean)
                     outputColumnNames: _col0, _col1, _col2
+                    Select Vectorization:
+                        className: VectorSelectOperator
+                        native: true
+                        projectedOutputColumns: [8, 9, 12]
+                        selectExpressions: VectorUDFAdaptor(concat_ws('|', c1, 
c2)) -> 8:string, VectorUDFAdaptor(concat_ws('|', c3, c4)) -> 9:string, 
StringGroupColEqualStringGroupColumn(col 10, col 11)(children: 
VectorUDFAdaptor(concat_ws('|', c1, c2)) -> 10:string, 
VectorUDFAdaptor(concat_ws('|', c3, c4)) -> 11:string) -> 12:boolean
                     Statistics: Num rows: 1 Data size: 732 Basic stats: 
COMPLETE Column stats: NONE
                     Limit
                       Number of rows: 1
+                      Limit Vectorization:
+                          className: VectorLimitOperator
+                          native: true
                       Statistics: Num rows: 1 Data size: 732 Basic stats: 
COMPLETE Column stats: NONE
                       File Output Operator
                         compressed: false
+                        File Sink Vectorization:
+                            className: VectorFileSinkOperator
+                            native: false
                         Statistics: Num rows: 1 Data size: 732 Basic stats: 
COMPLETE Column stats: NONE
                         table:
                             input format: 
org.apache.hadoop.mapred.SequenceFileInputFormat
@@ -346,6 +492,20 @@ 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: true
+                vectorized: true
+                rowBatchContext:
+                    dataColumnCount: 8
+                    includeColumns: [0, 1, 2, 3]
+                    dataColumns: c1:string, c2:string, c3:varchar(10), 
c4:varchar(20), d1:string, d2:string, d3:varchar(10), d4:varchar(10)
+                    partitionColumnCount: 0
+                    scratchColumnTypeNames: string, string, string, string, 
bigint
 
   Stage: Stage-0
     Fetch Operator
@@ -353,7 +513,7 @@ STAGE PLANS:
       Processor Tree:
         ListSink
 
-PREHOOK: query: select 
+PREHOOK: query: select
   concat_ws('|', c1, c2),
   concat_ws('|', c3, c4),
   concat_ws('|', c1, c2) = concat_ws('|', c3, c4)
@@ -361,7 +521,7 @@ from varchar_udf_1 limit 1
 PREHOOK: type: QUERY
 PREHOOK: Input: default@varchar_udf_1
 #### A masked pattern was here ####
-POSTHOOK: query: select 
+POSTHOOK: query: select
   concat_ws('|', c1, c2),
   concat_ws('|', c3, c4),
   concat_ws('|', c1, c2) = concat_ws('|', c3, c4)
@@ -370,20 +530,24 @@ POSTHOOK: type: QUERY
 POSTHOOK: Input: default@varchar_udf_1
 #### A masked pattern was here ####
 238|val_238    238|val_238     true
-PREHOOK: query: explain
+PREHOOK: query: explain vectorization detail
 select
   decode(encode(c2, 'US-ASCII'), 'US-ASCII'),
   decode(encode(c4, 'US-ASCII'), 'US-ASCII'),
   decode(encode(c2, 'US-ASCII'), 'US-ASCII') = decode(encode(c4, 'US-ASCII'), 
'US-ASCII')
 from varchar_udf_1 limit 1
 PREHOOK: type: QUERY
-POSTHOOK: query: explain
+POSTHOOK: query: explain vectorization detail
 select
   decode(encode(c2, 'US-ASCII'), 'US-ASCII'),
   decode(encode(c4, 'US-ASCII'), 'US-ASCII'),
   decode(encode(c2, 'US-ASCII'), 'US-ASCII') = decode(encode(c4, 'US-ASCII'), 
'US-ASCII')
 from varchar_udf_1 limit 1
 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
@@ -398,15 +562,29 @@ STAGE PLANS:
                 TableScan
                   alias: varchar_udf_1
                   Statistics: Num rows: 1 Data size: 732 Basic stats: COMPLETE 
Column stats: NONE
+                  TableScan Vectorization:
+                      native: true
+                      projectedOutputColumns: [0, 1, 2, 3, 4, 5, 6, 7]
                   Select Operator
                     expressions: decode(encode(c2,'US-ASCII'),'US-ASCII') 
(type: string), decode(encode(c4,'US-ASCII'),'US-ASCII') (type: string), 
(decode(encode(c2,'US-ASCII'),'US-ASCII') = 
decode(encode(c4,'US-ASCII'),'US-ASCII')) (type: boolean)
                     outputColumnNames: _col0, _col1, _col2
+                    Select Vectorization:
+                        className: VectorSelectOperator
+                        native: true
+                        projectedOutputColumns: [9, 10, 13]
+                        selectExpressions: 
VectorUDFAdaptor(decode(encode(c2,'US-ASCII'),'US-ASCII'))(children: 
VectorUDFAdaptor(encode(c2,'US-ASCII')) -> 8:binary) -> 9:string, 
VectorUDFAdaptor(decode(encode(c4,'US-ASCII'),'US-ASCII'))(children: 
VectorUDFAdaptor(encode(c4,'US-ASCII')) -> 8:binary) -> 10:string, 
StringGroupColEqualStringGroupColumn(col 11, col 12)(children: 
VectorUDFAdaptor(decode(encode(c2,'US-ASCII'),'US-ASCII'))(children: 
VectorUDFAdaptor(encode(c2,'US-ASCII')) -> 8:binary) -> 11:string, 
VectorUDFAdaptor(decode(encode(c4,'US-ASCII'),'US-ASCII'))(children: 
VectorUDFAdaptor(encode(c4,'US-ASCII')) -> 8:binary) -> 12:string) -> 13:boolean
                     Statistics: Num rows: 1 Data size: 732 Basic stats: 
COMPLETE Column stats: NONE
                     Limit
                       Number of rows: 1
+                      Limit Vectorization:
+                          className: VectorLimitOperator
+                          native: true
                       Statistics: Num rows: 1 Data size: 732 Basic stats: 
COMPLETE Column stats: NONE
                       File Output Operator
                         compressed: false
+                        File Sink Vectorization:
+                            className: VectorFileSinkOperator
+                            native: false
                         Statistics: Num rows: 1 Data size: 732 Basic stats: 
COMPLETE Column stats: NONE
                         table:
                             input format: 
org.apache.hadoop.mapred.SequenceFileInputFormat
@@ -414,6 +592,20 @@ 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: true
+                vectorized: true
+                rowBatchContext:
+                    dataColumnCount: 8
+                    includeColumns: [1, 3]
+                    dataColumns: c1:string, c2:string, c3:varchar(10), 
c4:varchar(20), d1:string, d2:string, d3:varchar(10), d4:varchar(10)
+                    partitionColumnCount: 0
+                    scratchColumnTypeNames: string, string, string, string, 
string, bigint
 
   Stage: Stage-0
     Fetch Operator
@@ -438,20 +630,24 @@ POSTHOOK: type: QUERY
 POSTHOOK: Input: default@varchar_udf_1
 #### A masked pattern was here ####
 val_238        val_238 true
-PREHOOK: query: explain
+PREHOOK: query: explain vectorization detail
 select
   instr(c2, '_'),
   instr(c4, '_'),
   instr(c2, '_') = instr(c4, '_')
 from varchar_udf_1 limit 1
 PREHOOK: type: QUERY
-POSTHOOK: query: explain
+POSTHOOK: query: explain vectorization detail
 select
   instr(c2, '_'),
   instr(c4, '_'),
   instr(c2, '_') = instr(c4, '_')
 from varchar_udf_1 limit 1
 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
@@ -466,15 +662,29 @@ STAGE PLANS:
                 TableScan
                   alias: varchar_udf_1
                   Statistics: Num rows: 1 Data size: 732 Basic stats: COMPLETE 
Column stats: NONE
+                  TableScan Vectorization:
+                      native: true
+                      projectedOutputColumns: [0, 1, 2, 3, 4, 5, 6, 7]
                   Select Operator
                     expressions: instr(c2, '_') (type: int), instr(c4, '_') 
(type: int), (instr(c2, '_') = instr(c4, '_')) (type: boolean)
                     outputColumnNames: _col0, _col1, _col2
+                    Select Vectorization:
+                        className: VectorSelectOperator
+                        native: true
+                        projectedOutputColumns: [8, 9, 12]
+                        selectExpressions: VectorUDFAdaptor(instr(c2, '_')) -> 
8:int, VectorUDFAdaptor(instr(c4, '_')) -> 9:int, LongColEqualLongColumn(col 
10, col 11)(children: VectorUDFAdaptor(instr(c2, '_')) -> 10:int, 
VectorUDFAdaptor(instr(c4, '_')) -> 11:int) -> 12:long
                     Statistics: Num rows: 1 Data size: 732 Basic stats: 
COMPLETE Column stats: NONE
                     Limit
                       Number of rows: 1
+                      Limit Vectorization:
+                          className: VectorLimitOperator
+                          native: true
                       Statistics: Num rows: 1 Data size: 732 Basic stats: 
COMPLETE Column stats: NONE
                       File Output Operator
                         compressed: false
+                        File Sink Vectorization:
+                            className: VectorFileSinkOperator
+                            native: false
                         Statistics: Num rows: 1 Data size: 732 Basic stats: 
COMPLETE Column stats: NONE
                         table:
                             input format: 
org.apache.hadoop.mapred.SequenceFileInputFormat
@@ -482,6 +692,20 @@ 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: true
+                vectorized: true
+                rowBatchContext:
+                    dataColumnCount: 8
+                    includeColumns: [1, 3]
+                    dataColumns: c1:string, c2:string, c3:varchar(10), 
c4:varchar(20), d1:string, d2:string, d3:varchar(10), d4:varchar(10)
+                    partitionColumnCount: 0
+                    scratchColumnTypeNames: bigint, bigint, bigint, bigint, 
bigint
 
   Stage: Stage-0
     Fetch Operator
@@ -506,20 +730,24 @@ POSTHOOK: type: QUERY
 POSTHOOK: Input: default@varchar_udf_1
 #### A masked pattern was here ####
 4      4       true
-PREHOOK: query: explain
+PREHOOK: query: explain vectorization detail
 select
   replace(c1, '_', c2),
   replace(c3, '_', c4),
   replace(c1, '_', c2) = replace(c3, '_', c4)
 from varchar_udf_1 limit 1
 PREHOOK: type: QUERY
-POSTHOOK: query: explain
+POSTHOOK: query: explain vectorization detail
 select
   replace(c1, '_', c2),
   replace(c3, '_', c4),
   replace(c1, '_', c2) = replace(c3, '_', c4)
 from varchar_udf_1 limit 1
 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
@@ -534,15 +762,29 @@ STAGE PLANS:
                 TableScan
                   alias: varchar_udf_1
                   Statistics: Num rows: 1 Data size: 732 Basic stats: COMPLETE 
Column stats: NONE
+                  TableScan Vectorization:
+                      native: true
+                      projectedOutputColumns: [0, 1, 2, 3, 4, 5, 6, 7]
                   Select Operator
                     expressions: replace(c1, '_', c2) (type: string), 
replace(c3, '_', c4) (type: string), (replace(c1, '_', c2) = replace(c3, '_', 
c4)) (type: boolean)
                     outputColumnNames: _col0, _col1, _col2
+                    Select Vectorization:
+                        className: VectorSelectOperator
+                        native: true
+                        projectedOutputColumns: [8, 9, 12]
+                        selectExpressions: VectorUDFAdaptor(replace(c1, '_', 
c2)) -> 8:string, VectorUDFAdaptor(replace(c3, '_', c4)) -> 9:string, 
StringGroupColEqualStringGroupColumn(col 10, col 11)(children: 
VectorUDFAdaptor(replace(c1, '_', c2)) -> 10:string, 
VectorUDFAdaptor(replace(c3, '_', c4)) -> 11:string) -> 12:boolean
                     Statistics: Num rows: 1 Data size: 732 Basic stats: 
COMPLETE Column stats: NONE
                     Limit
                       Number of rows: 1
+                      Limit Vectorization:
+                          className: VectorLimitOperator
+                          native: true
                       Statistics: Num rows: 1 Data size: 732 Basic stats: 
COMPLETE Column stats: NONE
                       File Output Operator
                         compressed: false
+                        File Sink Vectorization:
+                            className: VectorFileSinkOperator
+                            native: false
                         Statistics: Num rows: 1 Data size: 732 Basic stats: 
COMPLETE Column stats: NONE
                         table:
                             input format: 
org.apache.hadoop.mapred.SequenceFileInputFormat
@@ -550,6 +792,20 @@ 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: true
+                vectorized: true
+                rowBatchContext:
+                    dataColumnCount: 8
+                    includeColumns: [0, 1, 2, 3]
+                    dataColumns: c1:string, c2:string, c3:varchar(10), 
c4:varchar(20), d1:string, d2:string, d3:varchar(10), d4:varchar(10)
+                    partitionColumnCount: 0
+                    scratchColumnTypeNames: string, string, string, string, 
bigint
 
   Stage: Stage-0
     Fetch Operator
@@ -574,20 +830,24 @@ POSTHOOK: type: QUERY
 POSTHOOK: Input: default@varchar_udf_1
 #### A masked pattern was here ####
 238    238     true
-PREHOOK: query: explain
+PREHOOK: query: explain vectorization detail
 select
   reverse(c2),
   reverse(c4),
   reverse(c2) = reverse(c4)
 from varchar_udf_1 limit 1
 PREHOOK: type: QUERY
-POSTHOOK: query: explain
+POSTHOOK: query: explain vectorization detail
 select
   reverse(c2),
   reverse(c4),
   reverse(c2) = reverse(c4)
 from varchar_udf_1 limit 1
 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
@@ -602,15 +862,29 @@ STAGE PLANS:
                 TableScan
                   alias: varchar_udf_1
                   Statistics: Num rows: 1 Data size: 732 Basic stats: COMPLETE 
Column stats: NONE
+                  TableScan Vectorization:
+                      native: true
+                      projectedOutputColumns: [0, 1, 2, 3, 4, 5, 6, 7]
                   Select Operator
                     expressions: reverse(c2) (type: string), reverse(c4) 
(type: string), (reverse(c2) = reverse(c4)) (type: boolean)
                     outputColumnNames: _col0, _col1, _col2
+                    Select Vectorization:
+                        className: VectorSelectOperator
+                        native: true
+                        projectedOutputColumns: [8, 9, 12]
+                        selectExpressions: VectorUDFAdaptor(reverse(c2)) -> 
8:string, VectorUDFAdaptor(reverse(c4)) -> 9:string, 
StringGroupColEqualStringGroupColumn(col 10, col 11)(children: 
VectorUDFAdaptor(reverse(c2)) -> 10:string, VectorUDFAdaptor(reverse(c4)) -> 
11:string) -> 12:boolean
                     Statistics: Num rows: 1 Data size: 732 Basic stats: 
COMPLETE Column stats: NONE
                     Limit
                       Number of rows: 1
+                      Limit Vectorization:
+                          className: VectorLimitOperator
+                          native: true
                       Statistics: Num rows: 1 Data size: 732 Basic stats: 
COMPLETE Column stats: NONE
                       File Output Operator
                         compressed: false
+                        File Sink Vectorization:
+                            className: VectorFileSinkOperator
+                            native: false
                         Statistics: Num rows: 1 Data size: 732 Basic stats: 
COMPLETE Column stats: NONE
                         table:
                             input format: 
org.apache.hadoop.mapred.SequenceFileInputFormat
@@ -618,6 +892,20 @@ 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: true
+                vectorized: true
+                rowBatchContext:
+                    dataColumnCount: 8
+                    includeColumns: [1, 3]
+                    dataColumns: c1:string, c2:string, c3:varchar(10), 
c4:varchar(20), d1:string, d2:string, d3:varchar(10), d4:varchar(10)
+                    partitionColumnCount: 0
+                    scratchColumnTypeNames: string, string, string, string, 
bigint
 
   Stage: Stage-0
     Fetch Operator
@@ -642,20 +930,24 @@ POSTHOOK: type: QUERY
 POSTHOOK: Input: default@varchar_udf_1
 #### A masked pattern was here ####
 832_lav        832_lav true
-PREHOOK: query: explain
+PREHOOK: query: explain vectorization detail
 select
   next_day(d1, 'TU'),
   next_day(d4, 'WE'),
   next_day(d1, 'TU') = next_day(d4, 'WE')
 from varchar_udf_1 limit 1
 PREHOOK: type: QUERY
-POSTHOOK: query: explain
+POSTHOOK: query: explain vectorization detail
 select
   next_day(d1, 'TU'),
   next_day(d4, 'WE'),
   next_day(d1, 'TU') = next_day(d4, 'WE')
 from varchar_udf_1 limit 1
 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
@@ -670,15 +962,29 @@ STAGE PLANS:
                 TableScan
                   alias: varchar_udf_1
                   Statistics: Num rows: 1 Data size: 732 Basic stats: COMPLETE 
Column stats: NONE
+                  TableScan Vectorization:
+                      native: true
+                      projectedOutputColumns: [0, 1, 2, 3, 4, 5, 6, 7]
                   Select Operator
                     expressions: next_day(d1, 'TU') (type: string), 
next_day(d4, 'WE') (type: string), (next_day(d1, 'TU') = next_day(d4, 'WE')) 
(type: boolean)
                     outputColumnNames: _col0, _col1, _col2
+                    Select Vectorization:
+                        className: VectorSelectOperator
+                        native: true
+                        projectedOutputColumns: [8, 9, 12]
+                        selectExpressions: VectorUDFAdaptor(next_day(d1, 
'TU')) -> 8:string, VectorUDFAdaptor(next_day(d4, 'WE')) -> 9:string, 
StringGroupColEqualStringGroupColumn(col 10, col 11)(children: 
VectorUDFAdaptor(next_day(d1, 'TU')) -> 10:string, 
VectorUDFAdaptor(next_day(d4, 'WE')) -> 11:string) -> 12:boolean
                     Statistics: Num rows: 1 Data size: 732 Basic stats: 
COMPLETE Column stats: NONE
                     Limit
                       Number of rows: 1
+                      Limit Vectorization:
+                          className: VectorLimitOperator
+                          native: true
                       Statistics: Num rows: 1 Data size: 732 Basic stats: 
COMPLETE Column stats: NONE
                       File Output Operator
                         compressed: false
+                        File Sink Vectorization:
+                            className: VectorFileSinkOperator
+                            native: false
                         Statistics: Num rows: 1 Data size: 732 Basic stats: 
COMPLETE Column stats: NONE
                         table:
                             input format: 
org.apache.hadoop.mapred.SequenceFileInputFormat
@@ -686,6 +992,20 @@ 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: true
+                vectorized: true
+                rowBatchContext:
+                    dataColumnCount: 8
+                    includeColumns: [4, 7]
+                    dataColumns: c1:string, c2:string, c3:varchar(10), 
c4:varchar(20), d1:string, d2:string, d3:varchar(10), d4:varchar(10)
+                    partitionColumnCount: 0
+                    scratchColumnTypeNames: string, string, string, string, 
bigint
 
   Stage: Stage-0
     Fetch Operator
@@ -710,20 +1030,24 @@ POSTHOOK: type: QUERY
 POSTHOOK: Input: default@varchar_udf_1
 #### A masked pattern was here ####
 2015-01-20     2017-01-18      false
-PREHOOK: query: explain
+PREHOOK: query: explain vectorization detail
 select
   months_between(d1, d3),
   months_between(d2, d4),
   months_between(d1, d3) = months_between(d2, d4)
 from varchar_udf_1 limit 1
 PREHOOK: type: QUERY
-POSTHOOK: query: explain
+POSTHOOK: query: explain vectorization detail
 select
   months_between(d1, d3),
   months_between(d2, d4),
   months_between(d1, d3) = months_between(d2, d4)
 from varchar_udf_1 limit 1
 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
@@ -738,15 +1062,29 @@ STAGE PLANS:
                 TableScan
                   alias: varchar_udf_1
                   Statistics: Num rows: 1 Data size: 732 Basic stats: COMPLETE 
Column stats: NONE
+                  TableScan Vectorization:
+                      native: true
+                      projectedOutputColumns: [0, 1, 2, 3, 4, 5, 6, 7]
                   Select Operator
                     expressions: months_between(d1, d3) (type: double), 
months_between(d2, d4) (type: double), (months_between(d1, d3) = 
months_between(d2, d4)) (type: boolean)
                     outputColumnNames: _col0, _col1, _col2
+                    Select Vectorization:
+                        className: VectorSelectOperator
+                        native: true
+                        projectedOutputColumns: [8, 9, 12]
+                        selectExpressions: VectorUDFAdaptor(months_between(d1, 
d3)) -> 8:double, VectorUDFAdaptor(months_between(d2, d4)) -> 9:double, 
DoubleColEqualDoubleColumn(col 10, col 11)(children: 
VectorUDFAdaptor(months_between(d1, d3)) -> 10:double, 
VectorUDFAdaptor(months_between(d2, d4)) -> 11:double) -> 12:long
                     Statistics: Num rows: 1 Data size: 732 Basic stats: 
COMPLETE Column stats: NONE
                     Limit
                       Number of rows: 1
+                      Limit Vectorization:
+                          className: VectorLimitOperator
+                          native: true
                       Statistics: Num rows: 1 Data size: 732 Basic stats: 
COMPLETE Column stats: NONE
                       File Output Operator
                         compressed: false
+                        File Sink Vectorization:
+                            className: VectorFileSinkOperator
+                            native: false
                         Statistics: Num rows: 1 Data size: 732 Basic stats: 
COMPLETE Column stats: NONE
                         table:
                             input format: 
org.apache.hadoop.mapred.SequenceFileInputFormat
@@ -754,6 +1092,20 @@ 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: true
+                vectorized: true
+                rowBatchContext:
+                    dataColumnCount: 8
+                    includeColumns: [4, 5, 6, 7]
+                    dataColumns: c1:string, c2:string, c3:varchar(10), 
c4:varchar(20), d1:string, d2:string, d3:varchar(10), d4:varchar(10)
+                    partitionColumnCount: 0
+                    scratchColumnTypeNames: double, double, double, double, 
bigint
 
   Stage: Stage-0
     Fetch Operator
@@ -778,20 +1130,24 @@ POSTHOOK: type: QUERY
 POSTHOOK: Input: default@varchar_udf_1
 #### A masked pattern was here ####
 -23.90322581   -23.90322581    true
-PREHOOK: query: explain
+PREHOOK: query: explain vectorization detail
 select
   length(c2),
   length(c4),
   length(c2) = length(c4)
 from varchar_udf_1 limit 1
 PREHOOK: type: QUERY
-POSTHOOK: query: explain
+POSTHOOK: query: explain vectorization detail
 select
   length(c2),
   length(c4),
   length(c2) = length(c4)
 from varchar_udf_1 limit 1
 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
@@ -806,15 +1162,29 @@ STAGE PLANS:
                 TableScan
                   alias: varchar_udf_1
                   Statistics: Num rows: 1 Data size: 732 Basic stats: COMPLETE 
Column stats: NONE
+                  TableScan Vectorization:
+                      native: true
+                      projectedOutputColumns: [0, 1, 2, 3, 4, 5, 6, 7]
                   Select Operator
                     expressions: length(c2) (type: int), length(c4) (type: 
int), (length(c2) = length(c4)) (type: boolean)
                     outputColumnNames: _col0, _col1, _col2
+                    Select Vectorization:
+                        className: VectorSelectOperator
+                        native: true
+                        projectedOutputColumns: [8, 9, 12]
+                        selectExpressions: StringLength(col 1) -> 8:Long, 
StringLength(col 3) -> 9:Long, LongColEqualLongColumn(col 10, col 11)(children: 
StringLength(col 1) -> 10:Long, StringLength(col 3) -> 11:Long) -> 12:long
                     Statistics: Num rows: 1 Data size: 732 Basic stats: 
COMPLETE Column stats: NONE
                     Limit
                       Number of rows: 1
+                      Limit Vectorization:
+                          className: VectorLimitOperator
+                          native: true
                       Statistics: Num rows: 1 Data size: 732 Basic stats: 
COMPLETE Column stats: NONE
                       File Output Operator
                         compressed: false
+                        File Sink Vectorization:
+                            className: VectorFileSinkOperator
+                            native: false
                         Statistics: Num rows: 1 Data size: 732 Basic stats: 
COMPLETE Column stats: NONE
                         table:
                             input format: 
org.apache.hadoop.mapred.SequenceFileInputFormat
@@ -822,6 +1192,20 @@ 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
+                rowBatchContext:
+                    dataColumnCount: 8
+                    includeColumns: [1, 3]
+                    dataColumns: c1:string, c2:string, c3:varchar(10), 
c4:varchar(20), d1:string, d2:string, d3:varchar(10), d4:varchar(10)
+                    partitionColumnCount: 0
+                    scratchColumnTypeNames: bigint, bigint, bigint, bigint, 
bigint
 
   Stage: Stage-0
     Fetch Operator
@@ -846,20 +1230,24 @@ POSTHOOK: type: QUERY
 POSTHOOK: Input: default@varchar_udf_1
 #### A masked pattern was here ####
 7      7       true
-PREHOOK: query: explain
+PREHOOK: query: explain vectorization detail
 select
   locate('a', 'abcdabcd', 3),
   locate(cast('a' as varchar(1)), cast('abcdabcd' as varchar(10)), 3),
   locate('a', 'abcdabcd', 3) = locate(cast('a' as varchar(1)), cast('abcdabcd' 
as varchar(10)), 3)
 from varchar_udf_1 limit 1
 PREHOOK: type: QUERY
-POSTHOOK: query: explain
+POSTHOOK: query: explain vectorization detail
 select
   locate('a', 'abcdabcd', 3),
   locate(cast('a' as varchar(1)), cast('abcdabcd' as varchar(10)), 3),
   locate('a', 'abcdabcd', 3) = locate(cast('a' as varchar(1)), cast('abcdabcd' 
as varchar(10)), 3)
 from varchar_udf_1 limit 1
 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
@@ -874,15 +1262,29 @@ STAGE PLANS:
                 TableScan
                   alias: varchar_udf_1
                   Statistics: Num rows: 1 Data size: 732 Basic stats: COMPLETE 
Column stats: COMPLETE
+                  TableScan Vectorization:
+                      native: true
+                      projectedOutputColumns: [0, 1, 2, 3, 4, 5, 6, 7]
                   Select Operator
                     expressions: 5 (type: int), 5 (type: int), true (type: 
boolean)
                     outputColumnNames: _col0, _col1, _col2
+                    Select Vectorization:
+                        className: VectorSelectOperator
+                        native: true
+                        projectedOutputColumns: [8, 9, 10]
+                        selectExpressions: ConstantVectorExpression(val 5) -> 
8:long, ConstantVectorExpression(val 5) -> 9:long, ConstantVectorExpression(val 
1) -> 10:long
                     Statistics: Num rows: 1 Data size: 12 Basic stats: 
COMPLETE Column stats: COMPLETE
                     Limit
                       Number of rows: 1
+                      Limit Vectorization:
+                          className: VectorLimitOperator
+                          native: true
                       Statistics: Num rows: 1 Data size: 12 Basic stats: 
COMPLETE Column stats: COMPLETE
                       File Output Operator
                         compressed: false
+                        File Sink Vectorization:
+                            className: VectorFileSinkOperator
+                            native: false
                         Statistics: Num rows: 1 Data size: 12 Basic stats: 
COMPLETE Column stats: COMPLETE
                         table:
                             input format: 
org.apache.hadoop.mapred.SequenceFileInputFormat
@@ -890,6 +1292,20 @@ 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
+                rowBatchContext:
+                    dataColumnCount: 8
+                    includeColumns: []
+                    dataColumns: c1:string, c2:string, c3:varchar(10), 
c4:varchar(20), d1:string, d2:string, d3:varchar(10), d4:varchar(10)
+                    partitionColumnCount: 0
+                    scratchColumnTypeNames: bigint, bigint, bigint
 
   Stage: Stage-0
     Fetch Operator
@@ -914,20 +1330,24 @@ POSTHOOK: type: QUERY
 POSTHOOK: Input: default@varchar_udf_1
 #### A masked pattern was here ####
 5      5       true
-PREHOOK: query: explain
+PREHOOK: query: explain vectorization detail
 select
   lpad(c2, 15, ' '),
   lpad(c4, 15, ' '),
   lpad(c2, 15, ' ') = lpad(c4, 15, ' ')
 from varchar_udf_1 limit 1
 PREHOOK: type: QUERY
-POSTHOOK: query: explain
+POSTHOOK: query: explain vectorization detail
 select
   lpad(c2, 15, ' '),
   lpad(c4, 15, ' '),
   lpad(c2, 15, ' ') = lpad(c4, 15, ' ')
 from varchar_udf_1 limit 1
 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
@@ -942,15 +1362,29 @@ STAGE PLANS:
                 TableScan
                   alias: varchar_udf_1
                   Statistics: Num rows: 1 Data size: 732 Basic stats: COMPLETE 
Column stats: NONE
+                  TableScan Vectorization:
+                      native: true
+                      projectedOutputColumns: [0, 1, 2, 3, 4, 5, 6, 7]
                   Select Operator
                     expressions: lpad(c2, 15, ' ') (type: string), lpad(c4, 
15, ' ') (type: string), (lpad(c2, 15, ' ') = lpad(c4, 15, ' ')) (type: boolean)
                     outputColumnNames: _col0, _col1, _col2
+                    Select Vectorization:
+                        className: VectorSelectOperator
+                        native: true
+                        projectedOutputColumns: [8, 9, 12]
+                        selectExpressions: VectorUDFAdaptor(lpad(c2, 15, ' ')) 
-> 8:string, VectorUDFAdaptor(lpad(c4, 15, ' ')) -> 9:string, 
StringGroupColEqualStringGroupColumn(col 10, col 11)(children: 
VectorUDFAdaptor(lpad(c2, 15, ' ')) -> 10:string, VectorUDFAdaptor(lpad(c4, 15, 
' ')) -> 11:string) -> 12:boolean
                     Statistics: Num rows: 1 Data size: 732 Basic stats: 
COMPLETE Column stats: NONE
                     Limit
                       Number of rows: 1
+                      Limit Vectorization:
+                          className: VectorLimitOperator
+                          native: true
                       Statistics: Num rows: 1 Data size: 732 Basic stats: 
COMPLETE Column stats: NONE
                       File Output Operator
                         compressed: false
+                        File Sink Vectorization:
+                            className: VectorFileSinkOperator
+                            native: false
                         Statistics: Num rows: 1 Data size: 732 Basic stats: 
COMPLETE Column stats: NONE
                         table:
                             input format: 
org.apache.hadoop.mapred.SequenceFileInputFormat
@@ -958,6 +1392,20 @@ 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: true
+                vectorized: true
+                rowBatchContext:
+                    dataColumnCount: 8
+                    includeColumns: [1, 3]
+                    dataColumns: c1:string, c2:string, c3:varchar(10), 
c4:varchar(20), d1:string, d2:string, d3:varchar(10), d4:varchar(10)
+                    partitionColumnCount: 0
+                    scratchColumnTypeNames: string, string, string, string, 
bigint
 
   Stage: Stage-0
     Fetch Operator
@@ -982,20 +1430,24 @@ POSTHOOK: type: QUERY
 POSTHOOK: Input: default@varchar_udf_1
 #### A masked pattern was here ####
         val_238                val_238 true
-PREHOOK: query: explain
+PREHOOK: query: explain vectorization detail
 select
   ltrim(c2),
   ltrim(c4),
   ltrim(c2) = ltrim(c4)
 from varchar_udf_1 limit 1
 PREHOOK: type: QUERY
-POSTHOOK: query: explain
+POSTHOOK: query: explain vectorization detail
 select
   ltrim(c2),
   ltrim(c4),
   ltrim(c2) = ltrim(c4)
 from varchar_udf_1 limit 1
 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
@@ -1010,15 +1462,29 @@ STAGE PLANS:
                 TableScan
                   alias: varchar_udf_1
                   Statistics: Num rows: 1 Data size: 732 Basic stats: COMPLETE 
Column stats: NONE
+                  TableScan Vectorization:
+                      native: true
+                      projectedOutputColumns: [0, 1, 2, 3, 4, 5, 6, 7]
                   Select Operator
                     expressions: ltrim(c2) (type: string), ltrim(c4) (type: 
string), (ltrim(c2) = ltrim(c4)) (type: boolean)
                     outputColumnNames: _col0, _col1, _col2
+                    Select Vectorization:
+                        className: VectorSelectOperator
+                        native: true
+                        projectedOutputColumns: [8, 9, 12]
+                        selectExpressions: StringLTrim(col 1) -> 8:String, 
StringLTrim(col 3) -> 9:String, StringGroupColEqualStringGroupColumn(col 10, 
col 11)(children: StringLTrim(col 1) -> 10:String, StringLTrim(col 3) -> 
11:String) -> 12:boolean
                     Statistics: Num rows: 1 Data size: 732 Basic stats: 
COMPLETE Column stats: NONE
                     Limit
                       Number of rows: 1
+                      Limit Vectorization:
+                          className: VectorLimitOperator
+                          native: true
                       Statistics: Num rows: 1 Data size: 732 Basic stats: 
COMPLETE Column stats: NONE
                       File Output Operator
                         compressed: false
+                        File Sink Vectorization:
+                            className: VectorFileSinkOperator
+                            native: false
                         Statistics: Num rows: 1 Data size: 732 Basic stats: 
COMPLETE Column stats: NONE
                         table:
                             input format: 
org.apache.hadoop.mapred.SequenceFileInputFormat
@@ -1026,6 +1492,20 @@ 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
+                rowBatchContext:
+                    dataColumnCount: 8
+                    includeColumns: [1, 3]
+                    dataColumns: c1:string, c2:string, c3:varchar(10), 
c4:varchar(20), d1:string, d2:string, d3:varchar(10), d4:varchar(10)
+                    partitionColumnCount: 0
+                    scratchColumnTypeNames: string, string, string, string, 
bigint
 
   Stage: Stage-0
     Fetch Operator
@@ -1050,20 +1530,24 @@ POSTHOOK: type: QUERY
 POSTHOOK: Input: default@varchar_udf_1
 #### A masked pattern was here ####
 val_238        val_238 true
-PREHOOK: query: explain
+PREHOOK: query: explain vectorization detail
 select
   c2 regexp 'val',
   c4 regexp 'val',
   (c2 regexp 'val') = (c4 regexp 'val')
 from varchar_udf_1 limit 1
 PREHOOK: type: QUERY
-POSTHOOK: query: explain
+POSTHOOK: query: explain vectorization detail
 select
   c2 regexp 'val',
   c4 regexp 'val',
   (c2 regexp 'val') = (c4 regexp 'val')
 from varchar_udf_1 limit 1
 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
@@ -1078,15 +1562,29 @@ STAGE PLANS:
                 TableScan
                   alias: varchar_udf_1
                   Statistics: Num rows: 1 Data size: 732 Basic stats: COMPLETE 
Column stats: NONE
+                  TableScan Vectorization:
+                      native: true
+                      projectedOutputColumns: [0, 1, 2, 3, 4, 5, 6, 7]
                   Select Operator
                     expressions: c2 regexp 'val' (type: boolean), c4 regexp 
'val' (type: boolean), (c2 regexp 'val' = c4 regexp 'val') (type: boolean)
                     outputColumnNames: _col0, _col1, _col2
+                    Select Vectorization:
+                        className: VectorSelectOperator
+                        native: true
+                        projectedOutputColumns: [8, 9, 12]
+                        selectExpressions: VectorUDFAdaptor(c2 regexp 'val') 
-> 8:boolean, VectorUDFAdaptor(c4 regexp 'val') -> 9:boolean, 
LongColEqualLongColumn(col 10, col 11)(children: VectorUDFAdaptor(c2 regexp 
'val') -> 10:boolean, VectorUDFAdaptor(c4 regexp 'val') -> 11:boolean) -> 
12:long
                     Statistics: Num rows: 1 Data size: 732 Basic stats: 
COMPLETE Column stats: NONE
                     Limit
                       Number of rows: 1
+                      Limit Vectorization:
+                          className: VectorLimitOperator
+                          native: true
                       Statistics: Num rows: 1 Data size: 732 Basic stats: 
COMPLETE Column stats: NONE
                       File Output Operator
                         compressed: false
+                        File Sink Vectorization:
+                            className: VectorFileSinkOperator
+                            native: false
                         Statistics: Num rows: 1 Data size: 732 Basic stats: 
COMPLETE Column stats: NONE
                         table:
                             input format: 
org.apache.hadoop.mapred.SequenceFileInputFormat
@@ -1094,6 +1592,20 @@ 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: true
+                vectorized: true
+                rowBatchContext:
+                    dataColumnCount: 8
+                    includeColumns: [1, 3]
+                    dataColumns: c1:string, c2:string, c3:varchar(10), 
c4:varchar(20), d1:string, d2:string, d3:varchar(10), d4:varchar(10)
+                    partitionColumnCount: 0
+                    scratchColumnTypeNames: bigint, bigint, bigint, bigint, 
bigint
 
   Stage: Stage-0
     Fetch Operator
@@ -1118,20 +1630,24 @@ POSTHOOK: type: QUERY
 POSTHOOK: Input: default@varchar_udf_1
 #### A masked pattern was here ####
 true   true    true
-PREHOOK: query: explain
+PREHOOK: query: explain vectorization detail
 select
   regexp_extract(c2, 'val_([0-9]+)', 1),
   regexp_extract(c4, 'val_([0-9]+)', 1),
   regexp_extract(c2, 'val_([0-9]+)', 1) = regexp_extract(c4, 'val_([0-9]+)', 1)
 from varchar_udf_1 limit 1
 PREHOOK: type: QUERY
-POSTHOOK: query: explain
+POSTHOOK: query: explain vectorization detail
 select
   regexp_extract(c2, 'val_([0-9]+)', 1),
   regexp_extract(c4, 'val_([0-9]+)', 1),
   regexp_extract(c2, 'val_([0-9]+)', 1) = regexp_extract(c4, 'val_([0-9]+)', 1)
 from varchar_udf_1 limit 1
 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
@@ -1146,15 +1662,29 @@ STAGE PLANS:
                 TableScan
                   alias: varchar_udf_1
                   Statistics: Num rows: 1 Data size: 732 Basic stats: COMPLETE 
Column stats: NONE
+                  TableScan Vectorization:
+                      native: true
+                      projectedOutputColumns: [0, 1, 2, 3, 4, 5, 6, 7]
                   Select Operator
                     expressions: regexp_extract(c2, 'val_([0-9]+)', 1) (type: 
string), regexp_extract(c4, 'val_([0-9]+)', 1) (type: string), 
(regexp_extract(c2, 'val_([0-9]+)', 1) = regexp_extract(c4, 'val_([0-9]+)', 1)) 
(type: boolean)
                     outputColumnNames: _col0, _col1, _col2
+                    Select Vectorization:
+                        className: VectorSelectOperator
+                        native: true
+                        projectedOutputColumns: [8, 9, 12]
+                        selectExpressions: VectorUDFAdaptor(regexp_extract(c2, 
'val_([0-9]+)', 1)) -> 8:string, VectorUDFAdaptor(regexp_extract(c4, 
'val_([0-9]+)', 1)) -> 9:string, StringGroupColEqualStringGroupColumn(col 10, 
col 11)(children: VectorUDFAdaptor(regexp_extract(c2, 'val_([0-9]+)', 1)) -> 
10:string, VectorUDFAdaptor(regexp_extract(c4, 'val_([0-9]+)', 1)) -> 
11:string) -> 12:boolean
                     Statistics: Num rows: 1 Data size: 732 Basic stats: 
COMPLETE Column stats: NONE
                     Limit
                       Number of rows: 1
+                      Limit Vectorization:
+                          className: VectorLimitOperator
+                          native: true
                       Statistics: Num rows: 1 Data size: 732 Basic stats: 
COMPLETE Column stats: NONE
                       File Output Operator
                         compressed: false
+                        File Sink Vectorization:
+                            className: VectorFileSinkOperator
+                            native: false
                         Statistics: Num rows: 1 Data size: 732 Basic stats: 
COMPLETE Column stats: NONE
                         table:
                             input format: 
org.apache.hadoop.mapred.SequenceFileInputFormat
@@ -1162,6 +1692,20 @@ 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: true
+                vectorized: true
+                rowBatchContext:
+                    dataColumnCount: 8
+                    includeColumns: [1, 3]
+                    dataColumns: c1:string, c2:string, c3:varchar(10), 
c4:varchar(20), d1:string, d2:string, d3:varchar(10), d4:varchar(10)
+                    partitionColumnCount: 0
+                    scratchColumnTypeNames: string, string, string, string, 
bigint
 
   Stage: Stage-0
     Fetch Operator
@@ -1186,20 +1730,24 @@ POSTHOOK: type: QUERY
 POSTHOOK: Input: default@varchar_udf_1
 #### A masked pattern was here ####
 238    238     true
-PREHOOK: query: explain
+PREHOOK: query: explain vectorization detail
 select
   regexp_replace(c2, 'val', 'replaced'),
   regexp_replace(c4, 'val', 'replaced'),
   regexp_replace(c2, 'val', 'replaced') = regexp_replace(c4, 'val', 'replaced')
 from varchar_udf_1 limit 1
 PREHOOK: type: QUERY
-POSTHOOK: query: explain
+POSTHOOK: query: explain vectorization detail
 select
   regexp_replace(c2, 'val', 'replaced'),
   regexp_replace(c4, 'val', 'replaced'),
   regexp_replace(c2, 'val', 'replaced') = regexp_replace(c4, 'val', 'replaced')
 from varchar_udf_1 limit 1
 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
@@ -1214,15 +1762,29 @@ STAGE PLANS:
                 TableScan
                   alias: varchar_udf_1
                   Statistics: Num rows: 1 Data size: 732 Basic stats: COMPLETE 
Column stats: NONE
+                  TableScan Vectorization:
+                      native: true
+                      projectedOutputColumns: [0, 1, 2, 3, 4, 5, 6, 7]
                   Select Operator
                     expressions: regexp_replace(c2, 'val', 'replaced') (type: 
string), regexp_replace(c4, 'val', 'replaced') (type: string), 
(regexp_replace(c2, 'val', 'replaced') = regexp_replace(c4, 'val', 'replaced')) 
(type: boolean)
                     outputColumnNames: _col0, _col1, _col2
+                    Select Vectorization:
+                        className: VectorSelectOperator
+                        native: true
+                        projectedOutputColumns: [8, 9, 12]
+                        selectExpressions: VectorUDFAdaptor(regexp_replace(c2, 
'val', 'replaced')) -> 8:string, VectorUDFAdaptor(regexp_replace(c4, 'val', 
'replaced')) -> 9:string, StringGroupColEqualStringGroupColumn(col 10, col 
11)(children: VectorUDFAdaptor(regexp_replace(c2, 'val', 'replaced')) -> 
10:string, VectorUDFAdaptor(regexp_replace(c4, 'val', 'replaced')) -> 
11:string) -> 12:boolean
                     Statistics: Num rows: 1 Data size: 732 Basic stats: 
COMPLETE Column stats: NONE
                     Limit
                       Number of rows: 1
+                      Limit Vectorization:
+                          className: VectorLimitOperator
+                          native: true
                       Statistics: Num rows: 1 Data size: 732 Basic stats: 
COMPLETE Column stats: NONE
                       File Output Operator
                         compressed: false
+                        File Sink Vectorization:
+                            className: VectorFileSinkOperator
+                            native: false
                         Statistics: Num rows: 1 Data size: 732 Basic stats: 
COMPLETE Column stats: NONE
                         table:
                             input format: 
org.apache.hadoop.mapred.SequenceFileInputFormat
@@ -1230,6 +1792,20 @@ 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: true
+                vectorized: true
+                rowBatchContext:
+                    dataColumnCount: 8
+                    includeColumns: [1, 3]
+                    dataColumns: c1:string, c2:string, c3:varchar(10), 
c4:varchar(20), d1:string, d2:string, d3:varchar(10), d4:varchar(10)
+                    partitionColumnCount: 0
+                    scratchColumnTypeNames: string, string, string, string, 
bigint
 
   Stage: Stage-0
     Fetch Operator
@@ -1254,20 +1830,24 @@ POSTHOOK: type: QUERY
 POSTHOOK: Input: default@varchar_udf_1
 #### A masked pattern was here ####
 replaced_238   replaced_238    true
-PREHOOK: query: explain
+PREHOOK: query: explain vectorization detail
 select
   reverse(c2),
   reverse(c4),
   reverse(c2) = reverse(c4)
 from varchar_udf_1 limit 1
 PREHOOK: type: QUERY
-POSTHOOK: query: explain
+POSTHOOK: query: explain vectorization detail
 select
   reverse(c2),
   reverse(c4),
   reverse(c2) = reverse(c4)
 from varchar_udf_1 limit 1
 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
@@ -1282,15 +1862,29 @@ STAGE PLANS:
                 TableScan
                   alias: varchar_udf_1
                   Statistics: Num rows: 1 Data size: 732 Basic stats: COMPLETE 
Column stats: NONE
+                  TableScan Vectorization:
+                      native: true
+                      projectedOutputColumns: [0, 1, 2, 3, 4, 5, 6, 7]
                   Select Operator
                     expressions: reverse(c2) (type: string), reverse(c4) 
(type: string), (reverse(c2) = reverse(c4)) (type: boolean)
                     outputColumnNames: _col0, _col1, _col2
+                    Select Vectorization:
+                        className: VectorSelectOperator
+                        native: true
+                        projectedOutputColumns: [8, 9, 12]
+                        selectExpressions: VectorUDFAdaptor(reverse(c2)) -> 
8:string, VectorUDFAdaptor(reverse(c4)) -> 9:string, 
StringGroupColEqualStringGroupColumn(col 10, col 11)(children: 
VectorUDFAdaptor(reverse(c2)) -> 10:string, VectorUDFAdaptor(reverse(c4)) -> 
11:string) -> 12:boolean
                     Statistics: Num rows: 1 Data size: 732 Basic stats: 
COMPLETE Column stats: NONE
                     Limit
                       Number of rows: 1
+                      Limit Vectorization:
+                          className: VectorLimitOperator
+                          native: true
                       Statistics: Num rows: 1 Data size: 732 Basic stats: 
COMPLETE Column stats: NONE
                       File Output Operator
                         compressed: false
+                        File Sink Vectorization:
+                            className: VectorFileSinkOperator
+                            native: false
                         Statistics: Num rows: 1 Data size: 732 Basic stats: 
COMPLETE Column stats: NONE
                         table:
                             input format: 
org.apache.hadoop.mapred.SequenceFileInputFormat
@@ -1298,6 +1892,20 @@ 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: true
+                vectorized: true
+                rowBatchContext:
+                    dataColumnCount: 8
+                    includeColumns: [1, 3]
+                    dataColumns: c1:string, c2:string, c3:varchar(10), 
c4:varchar(20), d1:string, d2:string, d3:varchar(10), d4:varchar(10)
+                    partitionColumnCount: 0
+                    scratchColumnTypeNames: string, string, string, string, 
bigint
 
   Stage: Stage-0
     Fetch Operator
@@ -1322,20 +1930,24 @@ POSTHOOK: type: QUERY
 POSTHOOK: Input: default@varchar_udf_1
 #### A masked pattern was here ####
 832_lav        832_lav true
-PREHOOK: query: explain
+PREHOOK: query: explain vectorization detail
 select
   rpad(c2, 15, ' '),
   rpad(c4, 15, ' '),
   rpad(c2, 15, ' ') = rpad(c4, 15, ' ')
 from varchar_udf_1 limit 1
 PREHOOK: type: QUERY
-POSTHOOK: query: explain
+POSTHOOK: query: explain vectorization detail
 select
   rpad(c2, 15, ' '),
   rpad(c4, 15, ' '),
   rpad(c2, 15, ' ') = rpad(c4, 15, ' ')
 from varchar_udf_1 limit 1
 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
@@ -1350,15 +1962,29 @@ STAGE PLANS:
                 TableScan
                   alias: varchar_udf_1
                   Statistics: Num rows: 1 Data size: 732 Basic stats: COMPLETE 
Column stats: NONE
+                  TableScan Vectorization:
+                      native: true
+                      projectedOutputColumns: [0, 1, 2, 3, 4, 5, 6, 7]
                   Select Operator
                     expressions: rpad(c2, 15, ' ') (type: string), rpad(c4, 
15, ' ') (type: string), (rpad(c2, 15, ' ') = rpad(c4, 15, ' ')) (type: boolean)
                     outputColumnNames: _col0, _col1, _col2
+                    Select Vectorization:
+                        className: VectorSelectOperator
+                        native: true
+                        projectedOutputColumns: [8, 9, 12]
+                        selectExpressions: VectorUDFAdaptor(rpad(c2, 15, ' ')) 
-> 8:string, VectorUDFAdaptor(rpad(c4, 15, ' ')) -> 9:string, 
StringGroupColEqualStringGroupColumn(col 10, col 11)(children: 
VectorUDFAdaptor(rpad(c2, 15, ' ')) -> 10:string, VectorUDFAdaptor(rpad(c4, 15, 
' ')) -> 11:string) -> 12:boolean
                     Statistics: Num rows: 1 Data size: 732 Basic stats: 
COMPLETE Column stats: NONE
                     Limit
                       Number of rows: 1
+                      Limit Vectorization:
+                          className: VectorLimitOperator
+                          native: true
                       Statistics: Num rows: 1 Data size: 732 Basic stats: 
COMPLETE Column stats: NONE
                       File Output Operator
                         compressed: false
+                        File Sink Vectorization:
+                            className: VectorFileSinkOperator
+                            native: false
                         Statistics: Num rows: 1 Data size: 732 Basic stats: 
COMPLETE Column stats: NONE
                         table:
                             input format: 
org.apache.hadoop.mapred.SequenceFileInputFormat
@@ -1366,6 +1992,20 @@ 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: true
+                vectorized: true
+                rowBatchContext:
+                    dataColumnCount: 8
+                    includeColumns: [1, 3]
+                    dataColumns: c1:string, c2:string, c3:varchar(10), 
c4:varchar(20), d1:string, d2:string, d3:varchar(10), d4:varchar(10)
+                    partitionColumnCount: 0
+                    scratchColumnTypeNames: string, string, string, string, 
bigint
 
   Stage: Stage-0
     Fetch Operator
@@ -1390,20 +2030,24 @@ POSTHOOK: type: QUERY
 POSTHOOK: Input: default@varchar_udf_1
 #### A masked pattern was here ####
 val_238                val_238         true
-PREHOOK: query: explain
+PREHOOK: query: explain vectorization detail
 select
   rtrim(c2),
   rtrim(c4),
   rtrim(c2) = rtrim(c4)
 from varchar_udf_1 limit 1
 PREHOOK: type: QUERY
-POSTHOOK: query: explain
+POSTHOOK: query: explain vectorization detail
 select
   rtrim(c2),
   rtrim(c4),
   rtrim(c2) = rtrim(c4)
 from varchar_udf_1 limit 1
 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
@@ -1418,15 +2062,29 @@ STAGE PLANS:
                 TableScan
                   alias: varchar_udf_1
                   Statistics: Num rows: 1 Data size: 732 Basic stats: COMPLETE 
Column stats: NONE
+                  TableScan Vectorization:
+                      native: true
+                      projectedOutputColumns: [0, 1, 2, 3, 4, 5, 6, 7]
                   Select Operator
                     expressions: rtrim(c2) (type: string), rtrim(c4) (type: 
string), (rtrim(c2) = rtrim(c4)) (type: boolean)
                     outputColumnNames: _col0, _col1, _col2
+                    Select Vectorization:
+                        className: VectorSelectOperator
+                        native: true
+                        projectedOutputColumns: [8, 9, 12]
+                        selectExpressions: StringRTrim(col 1) -> 8:String, 
StringRTrim(col 3) -> 9:String, StringGroupColEqualStringGroupColumn(col 10, 
col 11)(children: StringRTrim(col 1) -> 10:String, StringRTrim(col 3) -> 
11:String) -> 12:boolean
                     Statistics: Num rows: 1 Data size: 732 Basic stats: 
COMPLETE Column stats: NONE
                     Limit
                       Number of rows: 1
+                      Limit Vectorization:
+                          className: VectorLimitOperator
+                          native: true
                       Statistics: Num rows: 1 Data size: 732 Basic stats: 
COMPLETE Column stats: NONE
                       File Output Operator
                         compressed: false
+                        File Sink Vectorization:
+                            className: VectorFileSinkOperator
+                            native: false
                         Statistics: Num rows: 1 Data size: 732 Basic stats: 
COMPLETE Column stats: NONE
                         table:
                             input format: 
org.apache.hadoop.mapred.SequenceFileInputFormat
@@ -1434,6 +2092,20 @@ 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
+                rowBatchContext:
+                    dataColumnCount: 8
+                    includeColumns: [1, 3]
+                    dataColumns: c1:string, c2:string, c3:varchar(10), 
c4:varchar(20), d1:string, d2:string, d3:varchar(10), d4:varchar(10)
+                    partitionColumnCount: 0
+                    scratchColumnTypeNames: string, string, string, string, 
bigint
 
   Stage: Stage-0
     Fetch Operator
@@ -1458,18 +2130,22 @@ POSTHOOK: type: QUERY
 POSTHOOK: Input: default@varchar_udf_1
 #### A masked pattern was here ####
 val_238        val_238 true
-PREHOOK: query: explain
+PREHOOK: query: explain vectorization detail
 select
   sentences('See spot run.  See jane run.'),
   sentences(cast('See spot run.  See jane run.' as varchar(50)))
 from varchar_udf_1 limit 1
 PREHOOK: type: QUERY
-POSTHOOK: query: explain
+POSTHOOK: query: explain vectorization detail
 select
   sentences('See spot run.  See jane run.'),
   sentences(cast('See spot run.  See jane run.' as varchar(50)))
 from varchar_udf_1 limit 1
 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
@@ -1484,22 +2160,50 @@ STAGE PLANS:
                 TableScan
                   alias: varchar_udf_1
                   Statistics: Num rows: 1 Data size: 732 Basic stats: COMPLETE 
Column stats: COMPLETE
+                  TableScan Vectorization:
+                      native: true
+                      projectedOutputColumns: [0, 1, 2, 3, 4, 5, 6, 7]
                   Select Operator
                     expressions: sentences('See spot run.  See jane run.') 
(type: array<array<string>>), sentences('See spot run.  See jane run.') (type: 
array<array<string>>)
                     outputColumnNames: _col0, _col1
+                    Select Vectorization:
+                        className: VectorSelectOperator
+                        native: true
+                        projectedOutputColumns: [8, 9]
+                        selectExpressions: VectorUDFAdaptor(sentences('See 
spot run.  See jane run.')) -> 8:array<array<string>>, 
VectorUDFAdaptor(sentences('See spot run.  See jane run.')) -> 
9:array<array<string>>
                     Statistics: Num rows: 1 Data size: 112 Basic stats: 
COMPLETE Column stats: COMPLETE
                     Limit
                       Number of rows: 1
+                      Limit Vectorization:
+                          className: VectorLimitOperator
+                          native: true
                       Statistics: Num rows: 1 Data size: 112 Basic stats: 
COMPLETE Column stats: COMPLETE
                       File Output Operator
                         compressed: false
+                        File Sink Vectorization:
+                            className: VectorFileSinkOperator
+                            native: false
                         Statistics: Num rows: 1 Data size: 112 Basic stats: 
COMPLETE Column stats: COMPLETE
                         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
-            Execution mode: llap
+            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: true
+                vectorized: true
+                rowBatchContext:
+                    dataColumnCount: 8
+                    includeColumns: []
+                    dataColumns: c1:string, c2:string, c3:varchar(10), 
c4:varchar(20), d1:string, d2:string, d3:varchar(10), d4:varchar(10)
+                    partitionColumnCount: 0
+                    scratchColumnTypeNames: array<array<string>>, 
array<array<string>>
 
   Stage: Stage-0
     Fetch Operator
@@ -1522,18 +2226,22 @@ POSTHOOK: type: QUERY
 POSTHOOK: Input: default@varchar_udf_1
 #### A masked pattern was here ####
 [["See","spot","run"],["See","jane","run"]]    
[["See","spot","run"],["See","jane","run"]]
-PREHOOK: query: explain
+PREHOOK: query: explain vectorization detail
 select
   split(c2, '_'),
   split(c4, '_')
 from varchar_udf_1 limit 1
 PREHOOK: type: QUERY
-POSTHOOK: query: explain
+POSTHOOK: query: explain vectorization detail
 select
   split(c2, '_'),
   split(c4, '_')
 from varchar_udf_1 limit 1
 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
@@ -1548,22 +2256,50 @@ STAGE PLANS:
                 TableScan
                   alias: varchar_udf_1
                   Statistics: Num rows: 1 Data size: 732 Basic stats: COMPLETE 
Column stats: NONE
+                  TableScan Vectorization:
+                      native: true
+                      projectedOutputColumns: [0, 1, 2, 3, 4, 5, 6, 7]
                   Select Operator
                     expressions: split(c2, '_') (type: array<string>), 
split(c4, '_') (type: array<string>)
                     outputColumnNames: _col0, _col1
+                    Select Vectorization:
+                        className: VectorSelectOperator
+                        native: true
+                        projectedOutputColumns: [8, 9]
+                        selectExpressions: VectorUDFAdaptor(split(c2, '_')) -> 
8:array<string>, VectorUDFAdaptor(split(c4, '_')) -> 9:array<string>
                     Statistics: Num rows: 1 Data size: 732 Basic stats: 
COMPLETE Column stats: NONE
                     Limit
                       Number of rows: 1
+                      Limit Vectorization:
+                          className: VectorLimitOperator
+                          native: true
                       Statistics: Num rows: 1 Data size: 732 Basic stats: 
COMPLETE Column stats: NONE
                       File Output Operator
                         compressed: false
+                        File Sink Vectorization:
+                            className: VectorFileSinkOperator
+                            native: false
                         Statistics: Num rows: 1 Data size: 732 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
-            Execution mode: llap
+            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: true
+                vectorized: true
+                rowBatchContext:
+                    dataColumnCount: 8
+                    includeColumns: [1, 3]
+                    dataColumns: c1:string, c2:string, c3:varchar(10), 
c4:varchar(20), d1:string, d2:string, d3:varchar(10), d4:varchar(10)
+                    partitionColumnCount: 0
+                    scratchColumnTypeNames: array<string>, array<string>
 
   Stage: Stage-0
     Fetch Operator
@@ -1586,18 +2322,22 @@ POSTHOOK: type: QUERY
 POSTHOOK: Input: default@varchar_udf_1
 #### A masked pat

<TRUNCATED>

Reply via email to