You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by mm...@apache.org on 2018/02/16 15:52:17 UTC

[03/32] hive git commit: HIVE-18622: Vectorization: IF Statements, Comparisons, and more do not handle NULLs correctly (Matt McCline, reviewed by Sergey Shelukhin, Deepak Jaiswal, Vihang Karajgaonkar)

http://git-wip-us.apache.org/repos/asf/hive/blob/a4689020/ql/src/test/results/clientpositive/vector_string_decimal.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/vector_string_decimal.q.out b/ql/src/test/results/clientpositive/vector_string_decimal.q.out
index 59b0588..d792c46 100644
--- a/ql/src/test/results/clientpositive/vector_string_decimal.q.out
+++ b/ql/src/test/results/clientpositive/vector_string_decimal.q.out
@@ -56,48 +56,52 @@ STAGE DEPENDENCIES:
 
 STAGE PLANS:
   Stage: Stage-1
-    Map Reduce
-      Map Operator Tree:
-          TableScan
-            alias: orc_decimal
-            Statistics: Num rows: 4 Data size: 448 Basic stats: COMPLETE Column stats: NONE
-            TableScan Vectorization:
-                native: true
-            Filter Operator
-              Filter Vectorization:
-                  className: VectorFilterOperator
-                  native: true
-                  predicateExpression: FilterDoubleColumnInList(col 2:double, values [1.0E8, 2.0E8])(children: CastDecimalToDouble(col 0:decimal(18,0)) -> 2:double)
-              predicate: (UDFToDouble(id)) IN (1.0E8, 2.0E8) (type: boolean)
-              Statistics: Num rows: 2 Data size: 224 Basic stats: COMPLETE Column stats: NONE
-              Select Operator
-                expressions: id (type: decimal(18,0))
-                outputColumnNames: _col0
-                Select Vectorization:
-                    className: VectorSelectOperator
-                    native: true
-                    projectedOutputColumnNums: [0]
-                Statistics: Num rows: 2 Data size: 224 Basic stats: COMPLETE Column stats: NONE
-                File Output Operator
-                  compressed: false
-                  File Sink Vectorization:
-                      className: VectorFileSinkOperator
-                      native: false
-                  Statistics: Num rows: 2 Data size: 224 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: vectorized
-      Map Vectorization:
-          enabled: true
-          enabledConditionsMet: hive.vectorized.use.vectorized.input.format IS true
-          inputFormatFeatureSupport: []
-          featureSupportInUse: []
-          inputFileFormats: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
-          allNative: false
-          usesVectorUDFAdaptor: false
-          vectorized: true
+    Tez
+#### A masked pattern was here ####
+      Vertices:
+        Map 1 
+            Map Operator Tree:
+                TableScan
+                  alias: orc_decimal
+                  Statistics: Num rows: 4 Data size: 448 Basic stats: COMPLETE Column stats: COMPLETE
+                  TableScan Vectorization:
+                      native: true
+                  Filter Operator
+                    Filter Vectorization:
+                        className: VectorFilterOperator
+                        native: true
+                        predicateExpression: FilterDoubleColumnInList(col 2:double, values [1.0E8, 2.0E8])(children: CastDecimalToDouble(col 0:decimal(18,0)) -> 2:double)
+                    predicate: (UDFToDouble(id)) IN (1.0E8, 2.0E8) (type: boolean)
+                    Statistics: Num rows: 2 Data size: 224 Basic stats: COMPLETE Column stats: COMPLETE
+                    Select Operator
+                      expressions: id (type: decimal(18,0))
+                      outputColumnNames: _col0
+                      Select Vectorization:
+                          className: VectorSelectOperator
+                          native: true
+                          projectedOutputColumnNums: [0]
+                      Statistics: Num rows: 2 Data size: 224 Basic stats: COMPLETE Column stats: COMPLETE
+                      File Output Operator
+                        compressed: false
+                        File Sink Vectorization:
+                            className: VectorFileSinkOperator
+                            native: false
+                        Statistics: Num rows: 2 Data size: 224 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: vectorized, llap
+            LLAP IO: all inputs
+            Map Vectorization:
+                enabled: true
+                enabledConditionsMet: hive.vectorized.use.vectorized.input.format IS true
+                inputFormatFeatureSupport: []
+                featureSupportInUse: []
+                inputFileFormats: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
+                allNative: false
+                usesVectorUDFAdaptor: false
+                vectorized: true
 
   Stage: Stage-0
     Fetch Operator

http://git-wip-us.apache.org/repos/asf/hive/blob/a4689020/ql/src/test/results/clientpositive/vector_udf2.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/vector_udf2.q.out b/ql/src/test/results/clientpositive/vector_udf2.q.out
deleted file mode 100644
index 222a901..0000000
--- a/ql/src/test/results/clientpositive/vector_udf2.q.out
+++ /dev/null
@@ -1,188 +0,0 @@
-PREHOOK: query: drop table varchar_udf_2
-PREHOOK: type: DROPTABLE
-POSTHOOK: query: drop table varchar_udf_2
-POSTHOOK: type: DROPTABLE
-PREHOOK: query: create table varchar_udf_2 (c1 string, c2 string, c3 varchar(10), c4 varchar(20)) STORED AS ORC
-PREHOOK: type: CREATETABLE
-PREHOOK: Output: database:default
-PREHOOK: Output: default@varchar_udf_2
-POSTHOOK: query: create table varchar_udf_2 (c1 string, c2 string, c3 varchar(10), c4 varchar(20)) STORED AS ORC
-POSTHOOK: type: CREATETABLE
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@varchar_udf_2
-PREHOOK: query: insert overwrite table varchar_udf_2
-  select key, value, key, value from src where key = '238' limit 1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@src
-PREHOOK: Output: default@varchar_udf_2
-POSTHOOK: query: insert overwrite table varchar_udf_2
-  select key, value, key, value from src where key = '238' limit 1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@src
-POSTHOOK: Output: default@varchar_udf_2
-POSTHOOK: Lineage: varchar_udf_2.c1 SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ]
-POSTHOOK: Lineage: varchar_udf_2.c2 SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ]
-POSTHOOK: Lineage: varchar_udf_2.c3 EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ]
-POSTHOOK: Lineage: varchar_udf_2.c4 EXPRESSION [(src)src.FieldSchema(name:value, type:string, comment:default), ]
-PREHOOK: query: explain vectorization expression
-select 
-  c1 LIKE '%38%',
-  c2 LIKE 'val_%',
-  c3 LIKE '%38',
-  c1 LIKE '%3x8%',
-  c2 LIKE 'xval_%',
-  c3 LIKE '%x38'
-from varchar_udf_2 limit 1
-PREHOOK: type: QUERY
-POSTHOOK: query: explain vectorization expression
-select 
-  c1 LIKE '%38%',
-  c2 LIKE 'val_%',
-  c3 LIKE '%38',
-  c1 LIKE '%3x8%',
-  c2 LIKE 'xval_%',
-  c3 LIKE '%x38'
-from varchar_udf_2 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
-
-STAGE PLANS:
-  Stage: Stage-1
-    Map Reduce
-      Map Operator Tree:
-          TableScan
-            alias: varchar_udf_2
-            Statistics: Num rows: 1 Data size: 356 Basic stats: COMPLETE Column stats: NONE
-            TableScan Vectorization:
-                native: true
-            Select Operator
-              expressions: (c1 like '%38%') (type: boolean), (c2 like 'val_%') (type: boolean), (c3 like '%38') (type: boolean), (c1 like '%3x8%') (type: boolean), (c2 like 'xval_%') (type: boolean), (c3 like '%x38') (type: boolean)
-              outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5
-              Select Vectorization:
-                  className: VectorSelectOperator
-                  native: true
-                  projectedOutputColumnNums: [5, 6, 7, 8, 9, 10]
-                  selectExpressions: SelectStringColLikeStringScalar(col 0:string) -> 5:boolean, SelectStringColLikeStringScalar(col 1:string) -> 6:boolean, SelectStringColLikeStringScalar(col 2:varchar(10)) -> 7:boolean, SelectStringColLikeStringScalar(col 0:string) -> 8:boolean, SelectStringColLikeStringScalar(col 1:string) -> 9:boolean, SelectStringColLikeStringScalar(col 2:varchar(10)) -> 10:boolean
-              Statistics: Num rows: 1 Data size: 356 Basic stats: COMPLETE Column stats: NONE
-              Limit
-                Number of rows: 1
-                Limit Vectorization:
-                    className: VectorLimitOperator
-                    native: true
-                Statistics: Num rows: 1 Data size: 356 Basic stats: COMPLETE Column stats: NONE
-                File Output Operator
-                  compressed: false
-                  File Sink Vectorization:
-                      className: VectorFileSinkOperator
-                      native: false
-                  Statistics: Num rows: 1 Data size: 356 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: vectorized
-      Map Vectorization:
-          enabled: true
-          enabledConditionsMet: hive.vectorized.use.vectorized.input.format IS true
-          inputFormatFeatureSupport: []
-          featureSupportInUse: []
-          inputFileFormats: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
-          allNative: false
-          usesVectorUDFAdaptor: false
-          vectorized: true
-
-  Stage: Stage-0
-    Fetch Operator
-      limit: 1
-      Processor Tree:
-        ListSink
-
-PREHOOK: query: select 
-  c1 LIKE '%38%',
-  c2 LIKE 'val_%',
-  c3 LIKE '%38',
-  c1 LIKE '%3x8%',
-  c2 LIKE 'xval_%',
-  c3 LIKE '%x38'
-from varchar_udf_2 limit 1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@varchar_udf_2
-#### A masked pattern was here ####
-POSTHOOK: query: select 
-  c1 LIKE '%38%',
-  c2 LIKE 'val_%',
-  c3 LIKE '%38',
-  c1 LIKE '%3x8%',
-  c2 LIKE 'xval_%',
-  c3 LIKE '%x38'
-from varchar_udf_2 limit 1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@varchar_udf_2
-#### A masked pattern was here ####
-true	true	true	false	false	false
-PREHOOK: query: drop table varchar_udf_2
-PREHOOK: type: DROPTABLE
-PREHOOK: Input: default@varchar_udf_2
-PREHOOK: Output: default@varchar_udf_2
-POSTHOOK: query: drop table varchar_udf_2
-POSTHOOK: type: DROPTABLE
-POSTHOOK: Input: default@varchar_udf_2
-POSTHOOK: Output: default@varchar_udf_2
-PREHOOK: query: create temporary table HIVE_14349 (a string) stored as orc
-PREHOOK: type: CREATETABLE
-PREHOOK: Output: database:default
-PREHOOK: Output: default@HIVE_14349
-POSTHOOK: query: create temporary table HIVE_14349 (a string) stored as orc
-POSTHOOK: type: CREATETABLE
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@HIVE_14349
-PREHOOK: query: insert into HIVE_14349 values('XYZa'), ('badXYZa')
-PREHOOK: type: QUERY
-PREHOOK: Input: _dummy_database@_dummy_table
-PREHOOK: Output: default@hive_14349
-POSTHOOK: query: insert into HIVE_14349 values('XYZa'), ('badXYZa')
-POSTHOOK: type: QUERY
-POSTHOOK: Input: _dummy_database@_dummy_table
-POSTHOOK: Output: default@hive_14349
-POSTHOOK: Lineage: hive_14349.a SCRIPT []
-PREHOOK: query: select * from HIVE_14349 where a LIKE 'XYZ%a%'
-PREHOOK: type: QUERY
-PREHOOK: Input: default@hive_14349
-#### A masked pattern was here ####
-POSTHOOK: query: select * from HIVE_14349 where a LIKE 'XYZ%a%'
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@hive_14349
-#### A masked pattern was here ####
-XYZa
-PREHOOK: query: insert into HIVE_14349 values ('XYZab'), ('XYZabBAD'), ('badXYZab'), ('badXYZabc')
-PREHOOK: type: QUERY
-PREHOOK: Input: _dummy_database@_dummy_table
-PREHOOK: Output: default@hive_14349
-POSTHOOK: query: insert into HIVE_14349 values ('XYZab'), ('XYZabBAD'), ('badXYZab'), ('badXYZabc')
-POSTHOOK: type: QUERY
-POSTHOOK: Input: _dummy_database@_dummy_table
-POSTHOOK: Output: default@hive_14349
-POSTHOOK: Lineage: hive_14349.a SCRIPT []
-PREHOOK: query: select * from HIVE_14349 where a LIKE 'XYZ%a_'
-PREHOOK: type: QUERY
-PREHOOK: Input: default@hive_14349
-#### A masked pattern was here ####
-POSTHOOK: query: select * from HIVE_14349 where a LIKE 'XYZ%a_'
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@hive_14349
-#### A masked pattern was here ####
-XYZab
-PREHOOK: query: drop table HIVE_14349
-PREHOOK: type: DROPTABLE
-PREHOOK: Input: default@hive_14349
-PREHOOK: Output: default@hive_14349
-POSTHOOK: query: drop table HIVE_14349
-POSTHOOK: type: DROPTABLE
-POSTHOOK: Input: default@hive_14349
-POSTHOOK: Output: default@hive_14349

http://git-wip-us.apache.org/repos/asf/hive/blob/a4689020/ql/src/test/results/clientpositive/vector_udf_string_to_boolean.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/vector_udf_string_to_boolean.q.out b/ql/src/test/results/clientpositive/vector_udf_string_to_boolean.q.out
index 1761b5a..647fcb7 100644
--- a/ql/src/test/results/clientpositive/vector_udf_string_to_boolean.q.out
+++ b/ql/src/test/results/clientpositive/vector_udf_string_to_boolean.q.out
@@ -124,33 +124,42 @@ STAGE DEPENDENCIES:
 
 STAGE PLANS:
   Stage: Stage-1
-    Map Reduce
-      Map Operator Tree:
-          TableScan
-            alias: t
-            Statistics: Num rows: 12 Data size: 1047 Basic stats: COMPLETE Column stats: NONE
-            Select Operator
-              expressions: s (type: string), UDFToBoolean(s) (type: boolean)
-              outputColumnNames: _col0, _col1
-              Statistics: Num rows: 12 Data size: 1047 Basic stats: COMPLETE Column stats: NONE
-              Reduce Output Operator
-                key expressions: _col0 (type: string)
-                sort order: +
-                Statistics: Num rows: 12 Data size: 1047 Basic stats: COMPLETE Column stats: NONE
-                value expressions: _col1 (type: boolean)
-      Execution mode: vectorized
-      Reduce Operator Tree:
-        Select Operator
-          expressions: KEY.reducesinkkey0 (type: string), VALUE._col0 (type: boolean)
-          outputColumnNames: _col0, _col1
-          Statistics: Num rows: 12 Data size: 1047 Basic stats: COMPLETE Column stats: NONE
-          File Output Operator
-            compressed: false
-            Statistics: Num rows: 12 Data size: 1047 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
+    Tez
+#### A masked pattern was here ####
+      Edges:
+        Reducer 2 <- Map 1 (SIMPLE_EDGE)
+#### A masked pattern was here ####
+      Vertices:
+        Map 1 
+            Map Operator Tree:
+                TableScan
+                  alias: t
+                  Statistics: Num rows: 12 Data size: 1068 Basic stats: COMPLETE Column stats: COMPLETE
+                  Select Operator
+                    expressions: s (type: string), UDFToBoolean(s) (type: boolean)
+                    outputColumnNames: _col0, _col1
+                    Statistics: Num rows: 12 Data size: 1116 Basic stats: COMPLETE Column stats: COMPLETE
+                    Reduce Output Operator
+                      key expressions: _col0 (type: string)
+                      sort order: +
+                      Statistics: Num rows: 12 Data size: 1116 Basic stats: COMPLETE Column stats: COMPLETE
+                      value expressions: _col1 (type: boolean)
+            Execution mode: llap
+            LLAP IO: all inputs
+        Reducer 2 
+            Execution mode: llap
+            Reduce Operator Tree:
+              Select Operator
+                expressions: KEY.reducesinkkey0 (type: string), VALUE._col0 (type: boolean)
+                outputColumnNames: _col0, _col1
+                Statistics: Num rows: 12 Data size: 1116 Basic stats: COMPLETE Column stats: COMPLETE
+                File Output Operator
+                  compressed: false
+                  Statistics: Num rows: 12 Data size: 1116 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
 
   Stage: Stage-0
     Fetch Operator

http://git-wip-us.apache.org/repos/asf/hive/blob/a4689020/ql/src/test/results/clientpositive/vectorization_div0.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/vectorization_div0.q.out b/ql/src/test/results/clientpositive/vectorization_div0.q.out
index 64c05c7..2c55516 100644
--- a/ql/src/test/results/clientpositive/vectorization_div0.q.out
+++ b/ql/src/test/results/clientpositive/vectorization_div0.q.out
@@ -14,48 +14,52 @@ STAGE DEPENDENCIES:
 
 STAGE PLANS:
   Stage: Stage-1
-    Map Reduce
-      Map Operator Tree:
-          TableScan
-            alias: alltypesorc
-            Statistics: Num rows: 12288 Data size: 2641964 Basic stats: COMPLETE Column stats: NONE
-            TableScan Vectorization:
-                native: true
-            Select Operator
-              expressions: (UDFToDouble(cint) / 0.0) (type: double), (UDFToDouble(ctinyint) / 0.0) (type: double), (UDFToDouble(cbigint) / 0.0) (type: double), (cdouble / 0.0) (type: double)
-              outputColumnNames: _col0, _col1, _col2, _col3
-              Select Vectorization:
-                  className: VectorSelectOperator
-                  native: true
-                  projectedOutputColumnNums: [14, 15, 16, 13]
-                  selectExpressions: DoubleColDivideDoubleScalar(col 13:double, val 0.0)(children: CastLongToDouble(col 2:int) -> 13:double) -> 14:double, DoubleColDivideDoubleScalar(col 13:double, val 0.0)(children: CastLongToDouble(col 0:tinyint) -> 13:double) -> 15:double, DoubleColDivideDoubleScalar(col 13:double, val 0.0)(children: CastLongToDouble(col 3:bigint) -> 13:double) -> 16:double, DoubleColDivideDoubleScalar(col 5:double, val 0.0) -> 13:double
-              Statistics: Num rows: 12288 Data size: 2641964 Basic stats: COMPLETE Column stats: NONE
-              Limit
-                Number of rows: 100
-                Limit Vectorization:
-                    className: VectorLimitOperator
-                    native: true
-                Statistics: Num rows: 100 Data size: 21500 Basic stats: COMPLETE Column stats: NONE
-                File Output Operator
-                  compressed: false
-                  File Sink Vectorization:
-                      className: VectorFileSinkOperator
-                      native: false
-                  Statistics: Num rows: 100 Data size: 21500 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: vectorized
-      Map Vectorization:
-          enabled: true
-          enabledConditionsMet: hive.vectorized.use.vectorized.input.format IS true
-          inputFormatFeatureSupport: []
-          featureSupportInUse: []
-          inputFileFormats: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
-          allNative: false
-          usesVectorUDFAdaptor: false
-          vectorized: true
+    Tez
+#### A masked pattern was here ####
+      Vertices:
+        Map 1 
+            Map Operator Tree:
+                TableScan
+                  alias: alltypesorc
+                  Statistics: Num rows: 12288 Data size: 220184 Basic stats: COMPLETE Column stats: COMPLETE
+                  TableScan Vectorization:
+                      native: true
+                  Select Operator
+                    expressions: (UDFToDouble(cint) / 0.0) (type: double), (UDFToDouble(ctinyint) / 0.0) (type: double), (UDFToDouble(cbigint) / 0.0) (type: double), (cdouble / 0.0) (type: double)
+                    outputColumnNames: _col0, _col1, _col2, _col3
+                    Select Vectorization:
+                        className: VectorSelectOperator
+                        native: true
+                        projectedOutputColumnNums: [14, 15, 16, 13]
+                        selectExpressions: DoubleColDivideDoubleScalar(col 13:double, val 0.0)(children: CastLongToDouble(col 2:int) -> 13:double) -> 14:double, DoubleColDivideDoubleScalar(col 13:double, val 0.0)(children: CastLongToDouble(col 0:tinyint) -> 13:double) -> 15:double, DoubleColDivideDoubleScalar(col 13:double, val 0.0)(children: CastLongToDouble(col 3:bigint) -> 13:double) -> 16:double, DoubleColDivideDoubleScalar(col 5:double, val 0.0) -> 13:double
+                    Statistics: Num rows: 12288 Data size: 393216 Basic stats: COMPLETE Column stats: COMPLETE
+                    Limit
+                      Number of rows: 100
+                      Limit Vectorization:
+                          className: VectorLimitOperator
+                          native: true
+                      Statistics: Num rows: 100 Data size: 3200 Basic stats: COMPLETE Column stats: COMPLETE
+                      File Output Operator
+                        compressed: false
+                        File Sink Vectorization:
+                            className: VectorFileSinkOperator
+                            native: false
+                        Statistics: Num rows: 100 Data size: 3200 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: vectorized, llap
+            LLAP IO: all inputs
+            Map Vectorization:
+                enabled: true
+                enabledConditionsMet: hive.vectorized.use.vectorized.input.format IS true
+                inputFormatFeatureSupport: []
+                featureSupportInUse: []
+                inputFileFormats: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
+                allNative: false
+                usesVectorUDFAdaptor: false
+                vectorized: true
 
   Stage: Stage-0
     Fetch Operator
@@ -189,69 +193,89 @@ STAGE DEPENDENCIES:
 
 STAGE PLANS:
   Stage: Stage-1
-    Map Reduce
-      Map Operator Tree:
-          TableScan
-            alias: alltypesorc
-            Statistics: Num rows: 12288 Data size: 2641964 Basic stats: COMPLETE Column stats: NONE
-            TableScan Vectorization:
-                native: true
-            Filter Operator
-              Filter Vectorization:
-                  className: VectorFilterOperator
-                  native: true
-                  predicateExpression: FilterExprAndExpr(children: FilterLongColGreaterLongScalar(col 3:bigint, val 0), FilterLongColLessLongScalar(col 3:bigint, val 100000000))
-              predicate: ((cbigint < 100000000) and (cbigint > 0)) (type: boolean)
-              Statistics: Num rows: 1365 Data size: 293479 Basic stats: COMPLETE Column stats: NONE
+    Tez
+#### A masked pattern was here ####
+      Edges:
+        Reducer 2 <- Map 1 (SIMPLE_EDGE)
+#### A masked pattern was here ####
+      Vertices:
+        Map 1 
+            Map Operator Tree:
+                TableScan
+                  alias: alltypesorc
+                  Statistics: Num rows: 12288 Data size: 146792 Basic stats: COMPLETE Column stats: COMPLETE
+                  TableScan Vectorization:
+                      native: true
+                  Filter Operator
+                    Filter Vectorization:
+                        className: VectorFilterOperator
+                        native: true
+                        predicateExpression: FilterExprAndExpr(children: FilterLongColGreaterLongScalar(col 3:bigint, val 0), FilterLongColLessLongScalar(col 3:bigint, val 100000000))
+                    predicate: ((cbigint < 100000000) and (cbigint > 0)) (type: boolean)
+                    Statistics: Num rows: 1365 Data size: 16320 Basic stats: COMPLETE Column stats: COMPLETE
+                    Select Operator
+                      expressions: (cbigint - 988888) (type: bigint), (cdouble / UDFToDouble((cbigint - 988888))) (type: double), (1.2 / CAST( (cbigint - 988888) AS decimal(19,0))) (type: decimal(22,21))
+                      outputColumnNames: _col0, _col1, _col2
+                      Select Vectorization:
+                          className: VectorSelectOperator
+                          native: true
+                          projectedOutputColumnNums: [13, 16, 18]
+                          selectExpressions: LongColSubtractLongScalar(col 3:bigint, val 988888) -> 13:bigint, DoubleColDivideDoubleColumn(col 5:double, col 15:double)(children: CastLongToDouble(col 14:bigint)(children: LongColSubtractLongScalar(col 3:bigint, val 988888) -> 14:bigint) -> 15:double) -> 16:double, DecimalScalarDivideDecimalColumn(val 1.2, col 17:decimal(19,0))(children: CastLongToDecimal(col 14:bigint)(children: LongColSubtractLongScalar(col 3:bigint, val 988888) -> 14:bigint) -> 17:decimal(19,0)) -> 18:decimal(22,21)
+                      Statistics: Num rows: 1365 Data size: 174720 Basic stats: COMPLETE Column stats: COMPLETE
+                      Reduce Output Operator
+                        key expressions: _col0 (type: bigint), _col1 (type: double)
+                        sort order: ++
+                        Reduce Sink Vectorization:
+                            className: VectorReduceSinkObjectHashOperator
+                            native: true
+                            nativeConditionsMet: hive.vectorized.execution.reducesink.new.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, No PTF TopN IS true, No DISTINCT columns IS true, BinarySortableSerDe for keys IS true, LazyBinarySerDe for values IS true
+                        Statistics: Num rows: 1365 Data size: 174720 Basic stats: COMPLETE Column stats: COMPLETE
+                        TopN Hash Memory Usage: 0.1
+                        value expressions: _col2 (type: decimal(22,21))
+            Execution mode: vectorized, llap
+            LLAP IO: all inputs
+            Map Vectorization:
+                enabled: true
+                enabledConditionsMet: hive.vectorized.use.vectorized.input.format IS true
+                inputFormatFeatureSupport: []
+                featureSupportInUse: []
+                inputFileFormats: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
+                allNative: true
+                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
+                allNative: false
+                usesVectorUDFAdaptor: false
+                vectorized: true
+            Reduce Operator Tree:
               Select Operator
-                expressions: (cbigint - 988888) (type: bigint), (cdouble / UDFToDouble((cbigint - 988888))) (type: double), (1.2 / CAST( (cbigint - 988888) AS decimal(19,0))) (type: decimal(22,21))
+                expressions: KEY.reducesinkkey0 (type: bigint), KEY.reducesinkkey1 (type: double), VALUE._col0 (type: decimal(22,21))
                 outputColumnNames: _col0, _col1, _col2
                 Select Vectorization:
                     className: VectorSelectOperator
                     native: true
-                    projectedOutputColumnNums: [13, 16, 18]
-                    selectExpressions: LongColSubtractLongScalar(col 3:bigint, val 988888) -> 13:bigint, DoubleColDivideDoubleColumn(col 5:double, col 15:double)(children: CastLongToDouble(col 14:bigint)(children: LongColSubtractLongScalar(col 3:bigint, val 988888) -> 14:bigint) -> 15:double) -> 16:double, DecimalScalarDivideDecimalColumn(val 1.2, col 17:decimal(19,0))(children: CastLongToDecimal(col 14:bigint)(children: LongColSubtractLongScalar(col 3:bigint, val 988888) -> 14:bigint) -> 17:decimal(19,0)) -> 18:decimal(22,21)
-                Statistics: Num rows: 1365 Data size: 293479 Basic stats: COMPLETE Column stats: NONE
-                Reduce Output Operator
-                  key expressions: _col0 (type: bigint), _col1 (type: double)
-                  sort order: ++
-                  Reduce Sink Vectorization:
-                      className: VectorReduceSinkOperator
-                      native: false
-                      nativeConditionsMet: hive.vectorized.execution.reducesink.new.enabled IS true, No PTF TopN IS true, No DISTINCT columns IS true, BinarySortableSerDe for keys IS true, LazyBinarySerDe for values IS true
-                      nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false
-                  Statistics: Num rows: 1365 Data size: 293479 Basic stats: COMPLETE Column stats: NONE
-                  TopN Hash Memory Usage: 0.1
-                  value expressions: _col2 (type: decimal(22,21))
-      Execution mode: vectorized
-      Map Vectorization:
-          enabled: true
-          enabledConditionsMet: hive.vectorized.use.vectorized.input.format IS true
-          inputFormatFeatureSupport: []
-          featureSupportInUse: []
-          inputFileFormats: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
-          allNative: false
-          usesVectorUDFAdaptor: false
-          vectorized: true
-      Reduce Vectorization:
-          enabled: false
-          enableConditionsMet: hive.vectorized.execution.reduce.enabled IS true
-          enableConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false
-      Reduce Operator Tree:
-        Select Operator
-          expressions: KEY.reducesinkkey0 (type: bigint), KEY.reducesinkkey1 (type: double), VALUE._col0 (type: decimal(22,21))
-          outputColumnNames: _col0, _col1, _col2
-          Statistics: Num rows: 1365 Data size: 293479 Basic stats: COMPLETE Column stats: NONE
-          Limit
-            Number of rows: 100
-            Statistics: Num rows: 100 Data size: 21500 Basic stats: COMPLETE Column stats: NONE
-            File Output Operator
-              compressed: false
-              Statistics: Num rows: 100 Data size: 21500 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
+                    projectedOutputColumnNums: [0, 1, 2]
+                Statistics: Num rows: 1365 Data size: 174720 Basic stats: COMPLETE Column stats: COMPLETE
+                Limit
+                  Number of rows: 100
+                  Limit Vectorization:
+                      className: VectorLimitOperator
+                      native: true
+                  Statistics: Num rows: 100 Data size: 12800 Basic stats: COMPLETE Column stats: COMPLETE
+                  File Output Operator
+                    compressed: false
+                    File Sink Vectorization:
+                        className: VectorFileSinkOperator
+                        native: false
+                    Statistics: Num rows: 100 Data size: 12800 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
 
   Stage: Stage-0
     Fetch Operator
@@ -269,9 +293,9 @@ from alltypesorc where cbigint > 0 and cbigint < 100000000 order by s1, s2 limit
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@alltypesorc
 #### A masked pattern was here ####
--985319	NULL	-0.000001217879691754650
--985319	2.0297994862577501E-4	-0.000001217879691754650
 -63925	0.11256941728588189	-0.000018771998435666797
+-985319	2.0297994862577501E-4	-0.000001217879691754650
+-985319	NULL	-0.000001217879691754650
 0	NULL	NULL
 0	NULL	NULL
 0	NULL	NULL
@@ -281,21 +305,6 @@ POSTHOOK: Input: default@alltypesorc
 0	NULL	NULL
 0	NULL	NULL
 0	NULL	NULL
-392309	NULL	0.000003058813333367320
-673083	-0.010691103474608629	0.000001782841046349410
-2331159	NULL	0.000000514765402102559
-2342037	NULL	0.000000512374484263058
-3533105	-5.660743170667161E-5	0.000000339644590240030
-3768727	0.004139594085748318	0.000000318409903397089
-4728619	NULL	0.000000253773881972728
-5391403	NULL	0.000000222576572369010
-7022666	-0.0010246820794268159	0.000000170875277280736
-7470430	NULL	0.000000160633323650714
-8276429	NULL	0.000000144990067576246
-8286860	-8.683626850218298E-4	0.000000144807562816314
-8299981	-8.669899364829872E-4	0.000000144578644216174
-9247593	NULL	0.000000129763496295739
-9821695	-7.326637611939691E-4	0.000000122178503812224
 10000738	0.001559984873116364	0.000000119991144653525
 10081828	0.0015474376273826532	0.000000119026033770860
 10745355	-6.696847149303117E-4	0.000000111676161466978
@@ -315,6 +324,8 @@ POSTHOOK: Input: default@alltypesorc
 20165679	7.736411950224934E-4	0.000000059507046601307
 20547875	NULL	0.000000058400199534015
 23264783	NULL	0.000000051580107151655
+2331159	NULL	0.000000514765402102559
+2342037	NULL	0.000000512374484263058
 23475527	6.645644206411213E-4	0.000000051117063314489
 24379905	NULL	0.000000049220864478348
 24514624	-2.935390728407664E-4	0.000000048950373458716
@@ -330,12 +341,15 @@ POSTHOOK: Input: default@alltypesorc
 33126539	NULL	0.000000036224732079617
 34603086	NULL	0.000000034678987879867
 35156265	NULL	0.000000034133318769784
+3533105	-5.660743170667161E-5	0.000000339644590240030
 35862260	NULL	0.000000033461360215447
 36123797	-1.992038655294182E-4	0.000000033219099310075
 36341671	-1.980096072082101E-4	0.000000033019945615599
 36413215	-5.4925114412446145E-6	0.000000032955068647468
 36578596	4.2650625518814335E-4	0.000000032806070522772
 36796441	-1.955623914823719E-4	0.000000032611849607955
+3768727	0.004139594085748318	0.000000318409903397089
+392309	NULL	0.000003058813333367320
 39723587	NULL	0.000000030208752296211
 39985709	-1.7996429674411925E-4	0.000000030010722080731
 40018606	NULL	0.000000029986051987918
@@ -348,6 +362,7 @@ POSTHOOK: Input: default@alltypesorc
 45717793	3.4124569399052136E-4	0.000000026247986205283
 46163162	NULL	0.000000025994753132379
 46525838	3.353190543284787E-4	0.000000025792120068853
+4728619	NULL	0.000000253773881972728
 48626663	NULL	0.000000024677819244969
 49102701	-1.465499830650864E-4	0.000000024438574163161
 50300445	-1.4306036457530346E-4	0.000000023856647789100
@@ -356,6 +371,7 @@ POSTHOOK: Input: default@alltypesorc
 52667422	2.9621727070673783E-4	0.000000022784483356713
 52962061	2.945693522010029E-4	0.000000022657728520044
 53695172	NULL	0.000000022348377988248
+5391403	NULL	0.000000222576572369010
 54760317	NULL	0.000000021913678841560
 55020655	2.835480602693661E-4	0.000000021809991175132
 56102034	NULL	0.000000021389598815615
@@ -369,6 +385,14 @@ POSTHOOK: Input: default@alltypesorc
 59347745	NULL	0.000000020219807846111
 60229567	NULL	0.000000019923769334088
 60330397	NULL	0.000000019890470801974
+673083	-0.010691103474608629	0.000001782841046349410
+7022666	-0.0010246820794268159	0.000000170875277280736
+7470430	NULL	0.000000160633323650714
+8276429	NULL	0.000000144990067576246
+8286860	-8.683626850218298E-4	0.000000144807562816314
+8299981	-8.669899364829872E-4	0.000000144578644216174
+9247593	NULL	0.000000129763496295739
+9821695	-7.326637611939691E-4	0.000000122178503812224
 PREHOOK: query: explain vectorization expression
 select (cdouble + 200.0) as s1, cbigint / (cdouble + 200.0) as s2, (cdouble + 200.0) / (cdouble + 200.0), cbigint / (cdouble + 200.0), 3 / (cdouble + 200.0), 1.2 / (cdouble + 200.0) 
 from alltypesorc where cdouble >= -500 and cdouble < -199 order by s1, s2 limit 100
@@ -387,69 +411,89 @@ STAGE DEPENDENCIES:
 
 STAGE PLANS:
   Stage: Stage-1
-    Map Reduce
-      Map Operator Tree:
-          TableScan
-            alias: alltypesorc
-            Statistics: Num rows: 12288 Data size: 2641964 Basic stats: COMPLETE Column stats: NONE
-            TableScan Vectorization:
-                native: true
-            Filter Operator
-              Filter Vectorization:
-                  className: VectorFilterOperator
-                  native: true
-                  predicateExpression: FilterExprAndExpr(children: FilterDoubleColGreaterEqualDoubleScalar(col 5:double, val -500.0), FilterDoubleColLessDoubleScalar(col 5:double, val -199.0))
-              predicate: ((cdouble < -199.0) and (cdouble >= -500.0)) (type: boolean)
-              Statistics: Num rows: 1365 Data size: 293479 Basic stats: COMPLETE Column stats: NONE
+    Tez
+#### A masked pattern was here ####
+      Edges:
+        Reducer 2 <- Map 1 (SIMPLE_EDGE)
+#### A masked pattern was here ####
+      Vertices:
+        Map 1 
+            Map Operator Tree:
+                TableScan
+                  alias: alltypesorc
+                  Statistics: Num rows: 12288 Data size: 146792 Basic stats: COMPLETE Column stats: COMPLETE
+                  TableScan Vectorization:
+                      native: true
+                  Filter Operator
+                    Filter Vectorization:
+                        className: VectorFilterOperator
+                        native: true
+                        predicateExpression: FilterExprAndExpr(children: FilterDoubleColGreaterEqualDoubleScalar(col 5:double, val -500.0), FilterDoubleColLessDoubleScalar(col 5:double, val -199.0))
+                    predicate: ((cdouble < -199.0) and (cdouble >= -500.0)) (type: boolean)
+                    Statistics: Num rows: 1365 Data size: 16320 Basic stats: COMPLETE Column stats: COMPLETE
+                    Select Operator
+                      expressions: (cdouble + 200.0) (type: double), (UDFToDouble(cbigint) / (cdouble + 200.0)) (type: double), ((cdouble + 200.0) / (cdouble + 200.0)) (type: double), (3.0 / (cdouble + 200.0)) (type: double), (1.2 / (cdouble + 200.0)) (type: double)
+                      outputColumnNames: _col0, _col1, _col2, _col4, _col5
+                      Select Vectorization:
+                          className: VectorSelectOperator
+                          native: true
+                          projectedOutputColumnNums: [13, 16, 17, 15, 18]
+                          selectExpressions: DoubleColAddDoubleScalar(col 5:double, val 200.0) -> 13:double, DoubleColDivideDoubleColumn(col 14:double, col 15:double)(children: CastLongToDouble(col 3:bigint) -> 14:double, DoubleColAddDoubleScalar(col 5:double, val 200.0) -> 15:double) -> 16:double, DoubleColDivideDoubleColumn(col 14:double, col 15:double)(children: DoubleColAddDoubleScalar(col 5:double, val 200.0) -> 14:double, DoubleColAddDoubleScalar(col 5:double, val 200.0) -> 15:double) -> 17:double, DoubleScalarDivideDoubleColumn(val 3.0, col 14:double)(children: DoubleColAddDoubleScalar(col 5:double, val 200.0) -> 14:double) -> 15:double, DoubleScalarDivideDoubleColumn(val 1.2, col 14:double)(children: DoubleColAddDoubleScalar(col 5:double, val 200.0) -> 14:double) -> 18:double
+                      Statistics: Num rows: 1365 Data size: 65520 Basic stats: COMPLETE Column stats: COMPLETE
+                      Reduce Output Operator
+                        key expressions: _col0 (type: double), _col1 (type: double)
+                        sort order: ++
+                        Reduce Sink Vectorization:
+                            className: VectorReduceSinkObjectHashOperator
+                            native: true
+                            nativeConditionsMet: hive.vectorized.execution.reducesink.new.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, No PTF TopN IS true, No DISTINCT columns IS true, BinarySortableSerDe for keys IS true, LazyBinarySerDe for values IS true
+                        Statistics: Num rows: 1365 Data size: 65520 Basic stats: COMPLETE Column stats: COMPLETE
+                        TopN Hash Memory Usage: 0.1
+                        value expressions: _col2 (type: double), _col4 (type: double), _col5 (type: double)
+            Execution mode: vectorized, llap
+            LLAP IO: all inputs
+            Map Vectorization:
+                enabled: true
+                enabledConditionsMet: hive.vectorized.use.vectorized.input.format IS true
+                inputFormatFeatureSupport: []
+                featureSupportInUse: []
+                inputFileFormats: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
+                allNative: true
+                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
+                allNative: false
+                usesVectorUDFAdaptor: false
+                vectorized: true
+            Reduce Operator Tree:
               Select Operator
-                expressions: (cdouble + 200.0) (type: double), (UDFToDouble(cbigint) / (cdouble + 200.0)) (type: double), ((cdouble + 200.0) / (cdouble + 200.0)) (type: double), (3.0 / (cdouble + 200.0)) (type: double), (1.2 / (cdouble + 200.0)) (type: double)
-                outputColumnNames: _col0, _col1, _col2, _col4, _col5
+                expressions: KEY.reducesinkkey0 (type: double), KEY.reducesinkkey1 (type: double), VALUE._col0 (type: double), KEY.reducesinkkey1 (type: double), VALUE._col1 (type: double), VALUE._col2 (type: double)
+                outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5
                 Select Vectorization:
                     className: VectorSelectOperator
                     native: true
-                    projectedOutputColumnNums: [13, 16, 17, 15, 18]
-                    selectExpressions: DoubleColAddDoubleScalar(col 5:double, val 200.0) -> 13:double, DoubleColDivideDoubleColumn(col 14:double, col 15:double)(children: CastLongToDouble(col 3:bigint) -> 14:double, DoubleColAddDoubleScalar(col 5:double, val 200.0) -> 15:double) -> 16:double, DoubleColDivideDoubleColumn(col 14:double, col 15:double)(children: DoubleColAddDoubleScalar(col 5:double, val 200.0) -> 14:double, DoubleColAddDoubleScalar(col 5:double, val 200.0) -> 15:double) -> 17:double, DoubleScalarDivideDoubleColumn(val 3.0, col 14:double)(children: DoubleColAddDoubleScalar(col 5:double, val 200.0) -> 14:double) -> 15:double, DoubleScalarDivideDoubleColumn(val 1.2, col 14:double)(children: DoubleColAddDoubleScalar(col 5:double, val 200.0) -> 14:double) -> 18:double
-                Statistics: Num rows: 1365 Data size: 293479 Basic stats: COMPLETE Column stats: NONE
-                Reduce Output Operator
-                  key expressions: _col0 (type: double), _col1 (type: double)
-                  sort order: ++
-                  Reduce Sink Vectorization:
-                      className: VectorReduceSinkOperator
-                      native: false
-                      nativeConditionsMet: hive.vectorized.execution.reducesink.new.enabled IS true, No PTF TopN IS true, No DISTINCT columns IS true, BinarySortableSerDe for keys IS true, LazyBinarySerDe for values IS true
-                      nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false
-                  Statistics: Num rows: 1365 Data size: 293479 Basic stats: COMPLETE Column stats: NONE
-                  TopN Hash Memory Usage: 0.1
-                  value expressions: _col2 (type: double), _col4 (type: double), _col5 (type: double)
-      Execution mode: vectorized
-      Map Vectorization:
-          enabled: true
-          enabledConditionsMet: hive.vectorized.use.vectorized.input.format IS true
-          inputFormatFeatureSupport: []
-          featureSupportInUse: []
-          inputFileFormats: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
-          allNative: false
-          usesVectorUDFAdaptor: false
-          vectorized: true
-      Reduce Vectorization:
-          enabled: false
-          enableConditionsMet: hive.vectorized.execution.reduce.enabled IS true
-          enableConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false
-      Reduce Operator Tree:
-        Select Operator
-          expressions: KEY.reducesinkkey0 (type: double), KEY.reducesinkkey1 (type: double), VALUE._col0 (type: double), KEY.reducesinkkey1 (type: double), VALUE._col1 (type: double), VALUE._col2 (type: double)
-          outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5
-          Statistics: Num rows: 1365 Data size: 293479 Basic stats: COMPLETE Column stats: NONE
-          Limit
-            Number of rows: 100
-            Statistics: Num rows: 100 Data size: 21500 Basic stats: COMPLETE Column stats: NONE
-            File Output Operator
-              compressed: false
-              Statistics: Num rows: 100 Data size: 21500 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
+                    projectedOutputColumnNums: [0, 1, 2, 1, 3, 4]
+                Statistics: Num rows: 1365 Data size: 65520 Basic stats: COMPLETE Column stats: COMPLETE
+                Limit
+                  Number of rows: 100
+                  Limit Vectorization:
+                      className: VectorLimitOperator
+                      native: true
+                  Statistics: Num rows: 100 Data size: 4800 Basic stats: COMPLETE Column stats: COMPLETE
+                  File Output Operator
+                    compressed: false
+                    File Sink Vectorization:
+                        className: VectorFileSinkOperator
+                        native: false
+                    Statistics: Num rows: 100 Data size: 4800 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
 
   Stage: Stage-0
     Fetch Operator
@@ -467,68 +511,68 @@ from alltypesorc where cdouble >= -500 and cdouble < -199 order by s1, s2 limit
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@alltypesorc
 #### A masked pattern was here ####
--292.0	NULL	1.0	NULL	-0.010273972602739725	-0.00410958904109589
--290.0	NULL	1.0	NULL	-0.010344827586206896	-0.004137931034482759
--289.0	NULL	1.0	NULL	-0.010380622837370242	-0.004152249134948096
--281.0	NULL	1.0	NULL	-0.010676156583629894	-0.004270462633451957
--279.0	NULL	1.0	NULL	-0.010752688172043012	-0.004301075268817204
--274.0	6888911.518248175	1.0	6888911.518248175	-0.010948905109489052	-0.00437956204379562
--273.0	6028764.868131869	1.0	6028764.868131869	-0.01098901098901099	-0.004395604395604396
--257.0	6404096.53307393	1.0	6404096.53307393	-0.011673151750972763	-0.004669260700389105
--250.0	6583411.236	1.0	6583411.236	-0.012	-0.0048
--247.0	NULL	1.0	NULL	-0.012145748987854251	-0.004858299595141701
--247.0	-7546669.174089069	1.0	-7546669.174089069	-0.012145748987854251	-0.004858299595141701
--246.0	NULL	1.0	NULL	-0.012195121951219513	-0.004878048780487805
--237.0	NULL	1.0	NULL	-0.012658227848101266	-0.005063291139240506
--236.0	NULL	1.0	NULL	-0.012711864406779662	-0.005084745762711864
--229.0	7187130.170305677	1.0	7187130.170305677	-0.013100436681222707	-0.005240174672489083
--228.0	8278779.631578947	1.0	8278779.631578947	-0.013157894736842105	-0.005263157894736842
--225.0	NULL	1.0	NULL	-0.013333333333333334	-0.005333333333333333
--210.0	-8876320.40952381	1.0	-8876320.40952381	-0.014285714285714285	-0.005714285714285714
--201.0	NULL	1.0	NULL	-0.014925373134328358	-0.005970149253731343
--199.0	NULL	1.0	NULL	-0.01507537688442211	-0.006030150753768844
--189.0	NULL	1.0	NULL	-0.015873015873015872	-0.006349206349206349
--188.0	NULL	1.0	NULL	-0.015957446808510637	-0.006382978723404255
--184.0	8944852.222826088	1.0	8944852.222826088	-0.016304347826086956	-0.006521739130434782
--183.0	8993731.196721312	1.0	8993731.196721312	-0.01639344262295082	-0.006557377049180328
--181.0	NULL	1.0	NULL	-0.016574585635359115	-0.0066298342541436465
--179.0	NULL	1.0	NULL	-0.01675977653631285	-0.0067039106145251395
--169.0	9738774.01775148	1.0	9738774.01775148	-0.01775147928994083	-0.007100591715976331
--164.0	NULL	1.0	NULL	-0.018292682926829267	-0.007317073170731707
--161.0	NULL	1.0	NULL	-0.018633540372670808	-0.007453416149068323
--154.0	1.2256894519480519E7	1.0	1.2256894519480519E7	-0.01948051948051948	-0.007792207792207792
--152.0	NULL	1.0	NULL	-0.019736842105263157	-0.007894736842105263
--148.0	NULL	1.0	NULL	-0.02027027027027027	-0.008108108108108109
--140.0	NULL	1.0	NULL	-0.02142857142857143	-0.008571428571428572
--138.0	NULL	1.0	NULL	-0.021739130434782608	-0.008695652173913044
--137.0	NULL	1.0	NULL	-0.021897810218978103	-0.00875912408759124
--132.0	NULL	1.0	NULL	-0.022727272727272728	-0.00909090909090909
--129.0	1.2758548906976745E7	1.0	1.2758548906976745E7	-0.023255813953488372	-0.009302325581395349
--128.0	NULL	1.0	NULL	-0.0234375	-0.009375
--126.0	NULL	1.0	NULL	-0.023809523809523808	-0.009523809523809523
--126.0	-1.4793867349206349E7	1.0	-1.4793867349206349E7	-0.023809523809523808	-0.009523809523809523
--116.0	NULL	1.0	NULL	-0.02586206896551724	-0.010344827586206896
--113.0	NULL	1.0	NULL	-0.02654867256637168	-0.010619469026548672
 -113.0	-1.6495816690265486E7	1.0	-1.6495816690265486E7	-0.02654867256637168	-0.010619469026548672
--96.0	NULL	1.0	NULL	-0.03125	-0.012499999999999999
--94.0	-1.9830077510638297E7	1.0	-1.9830077510638297E7	-0.031914893617021274	-0.01276595744680851
--93.0	NULL	1.0	NULL	-0.03225806451612903	-0.012903225806451613
--77.0	2.4513789038961038E7	1.0	2.4513789038961038E7	-0.03896103896103896	-0.015584415584415584
--69.0	2.735596747826087E7	1.0	2.735596747826087E7	-0.043478260869565216	-0.017391304347826087
--62.0	NULL	1.0	NULL	-0.04838709677419355	-0.01935483870967742
--62.0	3.0444544451612905E7	1.0	3.0444544451612905E7	-0.04838709677419355	-0.01935483870967742
--60.0	NULL	1.0	NULL	-0.05	-0.02
--57.0	-3.27022330877193E7	1.0	-3.27022330877193E7	-0.05263157894736842	-0.021052631578947368
--49.0	3.35888328367347E7	1.0	3.35888328367347E7	-0.061224489795918366	-0.024489795918367346
--46.0	3.577940889130435E7	1.0	3.577940889130435E7	-0.06521739130434782	-0.02608695652173913
--38.0	4.3311916026315786E7	1.0	4.3311916026315786E7	-0.07894736842105263	-0.031578947368421054
+-113.0	NULL	1.0	NULL	-0.02654867256637168	-0.010619469026548672
+-116.0	NULL	1.0	NULL	-0.02586206896551724	-0.010344827586206896
+-12.0	-1.5533560716666666E8	1.0	-1.5533560716666666E8	-0.25	-0.09999999999999999
+-126.0	-1.4793867349206349E7	1.0	-1.4793867349206349E7	-0.023809523809523808	-0.009523809523809523
+-126.0	NULL	1.0	NULL	-0.023809523809523808	-0.009523809523809523
+-128.0	NULL	1.0	NULL	-0.0234375	-0.009375
+-129.0	1.2758548906976745E7	1.0	1.2758548906976745E7	-0.023255813953488372	-0.009302325581395349
+-132.0	NULL	1.0	NULL	-0.022727272727272728	-0.00909090909090909
+-137.0	NULL	1.0	NULL	-0.021897810218978103	-0.00875912408759124
+-138.0	NULL	1.0	NULL	-0.021739130434782608	-0.008695652173913044
+-140.0	NULL	1.0	NULL	-0.02142857142857143	-0.008571428571428572
+-148.0	NULL	1.0	NULL	-0.02027027027027027	-0.008108108108108109
+-152.0	NULL	1.0	NULL	-0.019736842105263157	-0.007894736842105263
+-154.0	1.2256894519480519E7	1.0	1.2256894519480519E7	-0.01948051948051948	-0.007792207792207792
+-161.0	NULL	1.0	NULL	-0.018633540372670808	-0.007453416149068323
+-164.0	NULL	1.0	NULL	-0.018292682926829267	-0.007317073170731707
+-169.0	9738774.01775148	1.0	9738774.01775148	-0.01775147928994083	-0.007100591715976331
+-17.0	NULL	1.0	NULL	-0.17647058823529413	-0.07058823529411765
+-179.0	NULL	1.0	NULL	-0.01675977653631285	-0.0067039106145251395
+-181.0	NULL	1.0	NULL	-0.016574585635359115	-0.0066298342541436465
+-183.0	8993731.196721312	1.0	8993731.196721312	-0.01639344262295082	-0.006557377049180328
+-184.0	8944852.222826088	1.0	8944852.222826088	-0.016304347826086956	-0.006521739130434782
+-188.0	NULL	1.0	NULL	-0.015957446808510637	-0.006382978723404255
+-189.0	NULL	1.0	NULL	-0.015873015873015872	-0.006349206349206349
+-199.0	NULL	1.0	NULL	-0.01507537688442211	-0.006030150753768844
+-20.0	NULL	1.0	NULL	-0.15	-0.06
+-201.0	NULL	1.0	NULL	-0.014925373134328358	-0.005970149253731343
+-21.0	8.988389314285715E7	1.0	8.988389314285715E7	-0.14285714285714285	-0.05714285714285714
+-210.0	-8876320.40952381	1.0	-8876320.40952381	-0.014285714285714285	-0.005714285714285714
+-225.0	NULL	1.0	NULL	-0.013333333333333334	-0.005333333333333333
+-228.0	8278779.631578947	1.0	8278779.631578947	-0.013157894736842105	-0.005263157894736842
+-229.0	7187130.170305677	1.0	7187130.170305677	-0.013100436681222707	-0.005240174672489083
+-236.0	NULL	1.0	NULL	-0.012711864406779662	-0.005084745762711864
+-237.0	NULL	1.0	NULL	-0.012658227848101266	-0.005063291139240506
+-246.0	NULL	1.0	NULL	-0.012195121951219513	-0.004878048780487805
+-247.0	-7546669.174089069	1.0	-7546669.174089069	-0.012145748987854251	-0.004858299595141701
+-247.0	NULL	1.0	NULL	-0.012145748987854251	-0.004858299595141701
+-250.0	6583411.236	1.0	6583411.236	-0.012	-0.0048
+-257.0	6404096.53307393	1.0	6404096.53307393	-0.011673151750972763	-0.004669260700389105
+-273.0	6028764.868131869	1.0	6028764.868131869	-0.01098901098901099	-0.004395604395604396
+-274.0	6888911.518248175	1.0	6888911.518248175	-0.010948905109489052	-0.00437956204379562
+-279.0	NULL	1.0	NULL	-0.010752688172043012	-0.004301075268817204
 -28.0	5.878045746428572E7	1.0	5.878045746428572E7	-0.10714285714285714	-0.04285714285714286
 -28.0	6.741291985714285E7	1.0	6.741291985714285E7	-0.10714285714285714	-0.04285714285714286
--21.0	8.988389314285715E7	1.0	8.988389314285715E7	-0.14285714285714285	-0.05714285714285714
--20.0	NULL	1.0	NULL	-0.15	-0.06
--17.0	NULL	1.0	NULL	-0.17647058823529413	-0.07058823529411765
--12.0	-1.5533560716666666E8	1.0	-1.5533560716666666E8	-0.25	-0.09999999999999999
+-281.0	NULL	1.0	NULL	-0.010676156583629894	-0.004270462633451957
+-289.0	NULL	1.0	NULL	-0.010380622837370242	-0.004152249134948096
+-290.0	NULL	1.0	NULL	-0.010344827586206896	-0.004137931034482759
+-292.0	NULL	1.0	NULL	-0.010273972602739725	-0.00410958904109589
 -3.0	NULL	1.0	NULL	-1.0	-0.39999999999999997
+-38.0	4.3311916026315786E7	1.0	4.3311916026315786E7	-0.07894736842105263	-0.031578947368421054
+-46.0	3.577940889130435E7	1.0	3.577940889130435E7	-0.06521739130434782	-0.02608695652173913
+-49.0	3.35888328367347E7	1.0	3.35888328367347E7	-0.061224489795918366	-0.024489795918367346
+-57.0	-3.27022330877193E7	1.0	-3.27022330877193E7	-0.05263157894736842	-0.021052631578947368
+-60.0	NULL	1.0	NULL	-0.05	-0.02
+-62.0	3.0444544451612905E7	1.0	3.0444544451612905E7	-0.04838709677419355	-0.01935483870967742
+-62.0	NULL	1.0	NULL	-0.04838709677419355	-0.01935483870967742
+-69.0	2.735596747826087E7	1.0	2.735596747826087E7	-0.043478260869565216	-0.017391304347826087
+-77.0	2.4513789038961038E7	1.0	2.4513789038961038E7	-0.03896103896103896	-0.015584415584415584
+-93.0	NULL	1.0	NULL	-0.03225806451612903	-0.012903225806451613
+-94.0	-1.9830077510638297E7	1.0	-1.9830077510638297E7	-0.031914893617021274	-0.01276595744680851
+-96.0	NULL	1.0	NULL	-0.03125	-0.012499999999999999
 0.0	NULL	NULL	NULL	NULL	NULL
 0.0	NULL	NULL	NULL	NULL	NULL
 0.0	NULL	NULL	NULL	NULL	NULL
@@ -585,69 +629,89 @@ STAGE DEPENDENCIES:
 
 STAGE PLANS:
   Stage: Stage-1
-    Map Reduce
-      Map Operator Tree:
-          TableScan
-            alias: alltypesorc
-            Statistics: Num rows: 12288 Data size: 2641964 Basic stats: COMPLETE Column stats: NONE
-            TableScan Vectorization:
-                native: true
-            Filter Operator
-              Filter Vectorization:
-                  className: VectorFilterOperator
-                  native: true
-                  predicateExpression: FilterExprOrExpr(children: FilterLongColGreaterLongScalar(col 2:int, val 500000000), FilterDoubleColGreaterDoubleScalar(col 5:double, val 1.0E9), FilterLongColEqualLongScalar(col 0:tinyint, val 0))
-              predicate: ((cdouble > 1.0E9) or (cint > 500000000) or (ctinyint = 0)) (type: boolean)
-              Statistics: Num rows: 12288 Data size: 2641964 Basic stats: COMPLETE Column stats: NONE
+    Tez
+#### A masked pattern was here ####
+      Edges:
+        Reducer 2 <- Map 1 (SIMPLE_EDGE)
+#### A masked pattern was here ####
+      Vertices:
+        Map 1 
+            Map Operator Tree:
+                TableScan
+                  alias: alltypesorc
+                  Statistics: Num rows: 12288 Data size: 220184 Basic stats: COMPLETE Column stats: COMPLETE
+                  TableScan Vectorization:
+                      native: true
+                  Filter Operator
+                    Filter Vectorization:
+                        className: VectorFilterOperator
+                        native: true
+                        predicateExpression: FilterExprOrExpr(children: FilterLongColGreaterLongScalar(col 2:int, val 500000000), FilterDoubleColGreaterDoubleScalar(col 5:double, val 1.0E9), FilterLongColEqualLongScalar(col 0:tinyint, val 0))
+                    predicate: ((cdouble > 1.0E9) or (cint > 500000000) or (ctinyint = 0)) (type: boolean)
+                    Statistics: Num rows: 4193 Data size: 75144 Basic stats: COMPLETE Column stats: COMPLETE
+                    Select Operator
+                      expressions: cint (type: int), cbigint (type: bigint), ctinyint (type: tinyint), (cint / (cint - 528534767)) (type: double), (cbigint / (cbigint - 1018195815)) (type: double), (ctinyint / ctinyint) (type: double), (cint % (cint - 528534767)) (type: int), (cbigint % (cbigint - 1018195815)) (type: bigint), (ctinyint % ctinyint) (type: tinyint)
+                      outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8
+                      Select Vectorization:
+                          className: VectorSelectOperator
+                          native: true
+                          projectedOutputColumnNums: [2, 3, 0, 14, 15, 16, 17, 18, 13]
+                          selectExpressions: LongColDivideLongColumn(col 2:int, col 13:int)(children: LongColSubtractLongScalar(col 2:int, val 528534767) -> 13:int) -> 14:double, LongColDivideLongColumn(col 3:bigint, col 13:bigint)(children: LongColSubtractLongScalar(col 3:bigint, val 1018195815) -> 13:bigint) -> 15:double, LongColDivideLongColumn(col 0:tinyint, col 0:tinyint) -> 16:double, LongColModuloLongColumn(col 2:int, col 13:int)(children: LongColSubtractLongScalar(col 2:int, val 528534767) -> 13:int) -> 17:int, LongColModuloLongColumn(col 3:bigint, col 13:bigint)(children: LongColSubtractLongScalar(col 3:bigint, val 1018195815) -> 13:bigint) -> 18:bigint, LongColModuloLongColumn(col 0:tinyint, col 0:tinyint) -> 13:tinyint
+                      Statistics: Num rows: 4193 Data size: 217816 Basic stats: COMPLETE Column stats: COMPLETE
+                      Reduce Output Operator
+                        key expressions: _col3 (type: double), _col4 (type: double)
+                        sort order: ++
+                        Reduce Sink Vectorization:
+                            className: VectorReduceSinkObjectHashOperator
+                            native: true
+                            nativeConditionsMet: hive.vectorized.execution.reducesink.new.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, No PTF TopN IS true, No DISTINCT columns IS true, BinarySortableSerDe for keys IS true, LazyBinarySerDe for values IS true
+                        Statistics: Num rows: 4193 Data size: 217816 Basic stats: COMPLETE Column stats: COMPLETE
+                        TopN Hash Memory Usage: 0.1
+                        value expressions: _col0 (type: int), _col1 (type: bigint), _col2 (type: tinyint), _col5 (type: double), _col6 (type: int), _col7 (type: bigint), _col8 (type: tinyint)
+            Execution mode: vectorized, llap
+            LLAP IO: all inputs
+            Map Vectorization:
+                enabled: true
+                enabledConditionsMet: hive.vectorized.use.vectorized.input.format IS true
+                inputFormatFeatureSupport: []
+                featureSupportInUse: []
+                inputFileFormats: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
+                allNative: true
+                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
+                allNative: false
+                usesVectorUDFAdaptor: false
+                vectorized: true
+            Reduce Operator Tree:
               Select Operator
-                expressions: cint (type: int), cbigint (type: bigint), ctinyint (type: tinyint), (cint / (cint - 528534767)) (type: double), (cbigint / (cbigint - 1018195815)) (type: double), (ctinyint / ctinyint) (type: double), (cint % (cint - 528534767)) (type: int), (cbigint % (cbigint - 1018195815)) (type: bigint), (ctinyint % ctinyint) (type: tinyint)
+                expressions: VALUE._col0 (type: int), VALUE._col1 (type: bigint), VALUE._col2 (type: tinyint), KEY.reducesinkkey0 (type: double), KEY.reducesinkkey1 (type: double), VALUE._col3 (type: double), VALUE._col4 (type: int), VALUE._col5 (type: bigint), VALUE._col6 (type: tinyint)
                 outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8
                 Select Vectorization:
                     className: VectorSelectOperator
                     native: true
-                    projectedOutputColumnNums: [2, 3, 0, 14, 15, 16, 17, 18, 13]
-                    selectExpressions: LongColDivideLongColumn(col 2:int, col 13:int)(children: LongColSubtractLongScalar(col 2:int, val 528534767) -> 13:int) -> 14:double, LongColDivideLongColumn(col 3:bigint, col 13:bigint)(children: LongColSubtractLongScalar(col 3:bigint, val 1018195815) -> 13:bigint) -> 15:double, LongColDivideLongColumn(col 0:tinyint, col 0:tinyint) -> 16:double, LongColModuloLongColumn(col 2:int, col 13:int)(children: LongColSubtractLongScalar(col 2:int, val 528534767) -> 13:int) -> 17:int, LongColModuloLongColumn(col 3:bigint, col 13:bigint)(children: LongColSubtractLongScalar(col 3:bigint, val 1018195815) -> 13:bigint) -> 18:bigint, LongColModuloLongColumn(col 0:tinyint, col 0:tinyint) -> 13:tinyint
-                Statistics: Num rows: 12288 Data size: 2641964 Basic stats: COMPLETE Column stats: NONE
-                Reduce Output Operator
-                  key expressions: _col3 (type: double), _col4 (type: double)
-                  sort order: ++
-                  Reduce Sink Vectorization:
-                      className: VectorReduceSinkOperator
-                      native: false
-                      nativeConditionsMet: hive.vectorized.execution.reducesink.new.enabled IS true, No PTF TopN IS true, No DISTINCT columns IS true, BinarySortableSerDe for keys IS true, LazyBinarySerDe for values IS true
-                      nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false
-                  Statistics: Num rows: 12288 Data size: 2641964 Basic stats: COMPLETE Column stats: NONE
-                  TopN Hash Memory Usage: 0.1
-                  value expressions: _col0 (type: int), _col1 (type: bigint), _col2 (type: tinyint), _col5 (type: double), _col6 (type: int), _col7 (type: bigint), _col8 (type: tinyint)
-      Execution mode: vectorized
-      Map Vectorization:
-          enabled: true
-          enabledConditionsMet: hive.vectorized.use.vectorized.input.format IS true
-          inputFormatFeatureSupport: []
-          featureSupportInUse: []
-          inputFileFormats: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
-          allNative: false
-          usesVectorUDFAdaptor: false
-          vectorized: true
-      Reduce Vectorization:
-          enabled: false
-          enableConditionsMet: hive.vectorized.execution.reduce.enabled IS true
-          enableConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false
-      Reduce Operator Tree:
-        Select Operator
-          expressions: VALUE._col0 (type: int), VALUE._col1 (type: bigint), VALUE._col2 (type: tinyint), KEY.reducesinkkey0 (type: double), KEY.reducesinkkey1 (type: double), VALUE._col3 (type: double), VALUE._col4 (type: int), VALUE._col5 (type: bigint), VALUE._col6 (type: tinyint)
-          outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8
-          Statistics: Num rows: 12288 Data size: 2641964 Basic stats: COMPLETE Column stats: NONE
-          Limit
-            Number of rows: 100
-            Statistics: Num rows: 100 Data size: 21500 Basic stats: COMPLETE Column stats: NONE
-            File Output Operator
-              compressed: false
-              Statistics: Num rows: 100 Data size: 21500 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
+                    projectedOutputColumnNums: [2, 3, 4, 0, 1, 5, 6, 7, 8]
+                Statistics: Num rows: 4193 Data size: 217816 Basic stats: COMPLETE Column stats: COMPLETE
+                Limit
+                  Number of rows: 100
+                  Limit Vectorization:
+                      className: VectorLimitOperator
+                      native: true
+                  Statistics: Num rows: 100 Data size: 5216 Basic stats: COMPLETE Column stats: COMPLETE
+                  File Output Operator
+                    compressed: false
+                    File Sink Vectorization:
+                        className: VectorFileSinkOperator
+                        native: false
+                    Statistics: Num rows: 100 Data size: 5216 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
 
   Stage: Stage-0
     Fetch Operator
@@ -665,103 +729,103 @@ from alltypesorc where cint > 500000000 or cdouble > 1000000000 or ctinyint = 0
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@alltypesorc
 #### A masked pattern was here ####
-528534767	NULL	-47	NULL	NULL	1.0	NULL	NULL	0
-528534767	NULL	-4	NULL	NULL	1.0	NULL	NULL	0
-528534767	NULL	38	NULL	NULL	1.0	NULL	NULL	0
+528534767	NULL	-1	NULL	NULL	1.0	NULL	NULL	0
+528534767	NULL	-11	NULL	NULL	1.0	NULL	NULL	0
+528534767	NULL	-11	NULL	NULL	1.0	NULL	NULL	0
+528534767	NULL	-11	NULL	NULL	1.0	NULL	NULL	0
+528534767	NULL	-12	NULL	NULL	1.0	NULL	NULL	0
 528534767	NULL	-13	NULL	NULL	1.0	NULL	NULL	0
-528534767	NULL	9	NULL	NULL	1.0	NULL	NULL	0
+528534767	NULL	-16	NULL	NULL	1.0	NULL	NULL	0
+528534767	NULL	-16	NULL	NULL	1.0	NULL	NULL	0
+528534767	NULL	-19	NULL	NULL	1.0	NULL	NULL	0
+528534767	NULL	-21	NULL	NULL	1.0	NULL	NULL	0
+528534767	NULL	-21	NULL	NULL	1.0	NULL	NULL	0
 528534767	NULL	-22	NULL	NULL	1.0	NULL	NULL	0
-528534767	NULL	26	NULL	NULL	1.0	NULL	NULL	0
-528534767	NULL	0	NULL	NULL	NULL	NULL	NULL	NULL
-528534767	NULL	-12	NULL	NULL	1.0	NULL	NULL	0
-528534767	NULL	-1	NULL	NULL	1.0	NULL	NULL	0
-528534767	NULL	36	NULL	NULL	1.0	NULL	NULL	0
-528534767	NULL	-43	NULL	NULL	1.0	NULL	NULL	0
-528534767	NULL	-37	NULL	NULL	1.0	NULL	NULL	0
-528534767	NULL	2	NULL	NULL	1.0	NULL	NULL	0
-528534767	NULL	-48	NULL	NULL	1.0	NULL	NULL	0
-528534767	NULL	38	NULL	NULL	1.0	NULL	NULL	0
 528534767	NULL	-22	NULL	NULL	1.0	NULL	NULL	0
-528534767	NULL	10	NULL	NULL	1.0	NULL	NULL	0
-528534767	NULL	-45	NULL	NULL	1.0	NULL	NULL	0
-528534767	NULL	13	NULL	NULL	1.0	NULL	NULL	0
-528534767	NULL	-5	NULL	NULL	1.0	NULL	NULL	0
+528534767	NULL	-22	NULL	NULL	1.0	NULL	NULL	0
+528534767	NULL	-23	NULL	NULL	1.0	NULL	NULL	0
+528534767	NULL	-23	NULL	NULL	1.0	NULL	NULL	0
+528534767	NULL	-23	NULL	NULL	1.0	NULL	NULL	0
+528534767	NULL	-24	NULL	NULL	1.0	NULL	NULL	0
+528534767	NULL	-28	NULL	NULL	1.0	NULL	NULL	0
 528534767	NULL	-28	NULL	NULL	1.0	NULL	NULL	0
-528534767	NULL	41	NULL	NULL	1.0	NULL	NULL	0
-528534767	NULL	43	NULL	NULL	1.0	NULL	NULL	0
-528534767	NULL	-21	NULL	NULL	1.0	NULL	NULL	0
-528534767	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL
-528534767	NULL	27	NULL	NULL	1.0	NULL	NULL	0
-528534767	NULL	-5	NULL	NULL	1.0	NULL	NULL	0
-528534767	NULL	34	NULL	NULL	1.0	NULL	NULL	0
-528534767	NULL	-53	NULL	NULL	1.0	NULL	NULL	0
-528534767	NULL	-5	NULL	NULL	1.0	NULL	NULL	0
 528534767	NULL	-30	NULL	NULL	1.0	NULL	NULL	0
+528534767	NULL	-32	NULL	NULL	1.0	NULL	NULL	0
 528534767	NULL	-33	NULL	NULL	1.0	NULL	NULL	0
-528534767	NULL	-21	NULL	NULL	1.0	NULL	NULL	0
-528534767	NULL	0	NULL	NULL	NULL	NULL	NULL	NULL
-528534767	NULL	-59	NULL	NULL	1.0	NULL	NULL	0
-528534767	NULL	61	NULL	NULL	1.0	NULL	NULL	0
-528534767	NULL	21	NULL	NULL	1.0	NULL	NULL	0
-528534767	NULL	-40	NULL	NULL	1.0	NULL	NULL	0
-528534767	NULL	-55	NULL	NULL	1.0	NULL	NULL	0
-528534767	NULL	34	NULL	NULL	1.0	NULL	NULL	0
-528534767	NULL	-36	NULL	NULL	1.0	NULL	NULL	0
-528534767	NULL	30	NULL	NULL	1.0	NULL	NULL	0
-528534767	NULL	18	NULL	NULL	1.0	NULL	NULL	0
-528534767	NULL	53	NULL	NULL	1.0	NULL	NULL	0
 528534767	NULL	-33	NULL	NULL	1.0	NULL	NULL	0
-528534767	NULL	19	NULL	NULL	1.0	NULL	NULL	0
-528534767	NULL	61	NULL	NULL	1.0	NULL	NULL	0
-528534767	NULL	-4	NULL	NULL	1.0	NULL	NULL	0
-528534767	NULL	51	NULL	NULL	1.0	NULL	NULL	0
-528534767	NULL	5	NULL	NULL	1.0	NULL	NULL	0
 528534767	NULL	-34	NULL	NULL	1.0	NULL	NULL	0
-528534767	NULL	53	NULL	NULL	1.0	NULL	NULL	0
-528534767	NULL	40	NULL	NULL	1.0	NULL	NULL	0
-528534767	NULL	-19	NULL	NULL	1.0	NULL	NULL	0
-528534767	NULL	-23	NULL	NULL	1.0	NULL	NULL	0
+528534767	NULL	-34	NULL	NULL	1.0	NULL	NULL	0
+528534767	NULL	-36	NULL	NULL	1.0	NULL	NULL	0
+528534767	NULL	-37	NULL	NULL	1.0	NULL	NULL	0
+528534767	NULL	-4	NULL	NULL	1.0	NULL	NULL	0
+528534767	NULL	-4	NULL	NULL	1.0	NULL	NULL	0
+528534767	NULL	-40	NULL	NULL	1.0	NULL	NULL	0
+528534767	NULL	-43	NULL	NULL	1.0	NULL	NULL	0
+528534767	NULL	-44	NULL	NULL	1.0	NULL	NULL	0
+528534767	NULL	-45	NULL	NULL	1.0	NULL	NULL	0
+528534767	NULL	-45	NULL	NULL	1.0	NULL	NULL	0
+528534767	NULL	-47	NULL	NULL	1.0	NULL	NULL	0
+528534767	NULL	-48	NULL	NULL	1.0	NULL	NULL	0
+528534767	NULL	-48	NULL	NULL	1.0	NULL	NULL	0
+528534767	NULL	-5	NULL	NULL	1.0	NULL	NULL	0
+528534767	NULL	-5	NULL	NULL	1.0	NULL	NULL	0
+528534767	NULL	-5	NULL	NULL	1.0	NULL	NULL	0
+528534767	NULL	-50	NULL	NULL	1.0	NULL	NULL	0
+528534767	NULL	-51	NULL	NULL	1.0	NULL	NULL	0
+528534767	NULL	-53	NULL	NULL	1.0	NULL	NULL	0
 528534767	NULL	-54	NULL	NULL	1.0	NULL	NULL	0
-528534767	NULL	38	NULL	NULL	1.0	NULL	NULL	0
-528534767	NULL	-16	NULL	NULL	1.0	NULL	NULL	0
+528534767	NULL	-55	NULL	NULL	1.0	NULL	NULL	0
+528534767	NULL	-55	NULL	NULL	1.0	NULL	NULL	0
+528534767	NULL	-56	NULL	NULL	1.0	NULL	NULL	0
 528534767	NULL	-56	NULL	NULL	1.0	NULL	NULL	0
-528534767	NULL	29	NULL	NULL	1.0	NULL	NULL	0
-528534767	NULL	46	NULL	NULL	1.0	NULL	NULL	0
-528534767	NULL	-16	NULL	NULL	1.0	NULL	NULL	0
-528534767	NULL	28	NULL	NULL	1.0	NULL	NULL	0
-528534767	NULL	-22	NULL	NULL	1.0	NULL	NULL	0
 528534767	NULL	-57	NULL	NULL	1.0	NULL	NULL	0
-528534767	NULL	4	NULL	NULL	1.0	NULL	NULL	0
+528534767	NULL	-59	NULL	NULL	1.0	NULL	NULL	0
+528534767	NULL	-62	NULL	NULL	1.0	NULL	NULL	0
+528534767	NULL	-7	NULL	NULL	1.0	NULL	NULL	0
+528534767	NULL	0	NULL	NULL	NULL	NULL	NULL	NULL
+528534767	NULL	0	NULL	NULL	NULL	NULL	NULL	NULL
+528534767	NULL	10	NULL	NULL	1.0	NULL	NULL	0
+528534767	NULL	13	NULL	NULL	1.0	NULL	NULL	0
+528534767	NULL	16	NULL	NULL	1.0	NULL	NULL	0
+528534767	NULL	18	NULL	NULL	1.0	NULL	NULL	0
+528534767	NULL	19	NULL	NULL	1.0	NULL	NULL	0
+528534767	NULL	2	NULL	NULL	1.0	NULL	NULL	0
+528534767	NULL	21	NULL	NULL	1.0	NULL	NULL	0
 528534767	NULL	24	NULL	NULL	1.0	NULL	NULL	0
-NULL	1018195815	0	NULL	NULL	NULL	NULL	NULL	NULL
-528534767	NULL	-44	NULL	NULL	1.0	NULL	NULL	0
-528534767	NULL	-24	NULL	NULL	1.0	NULL	NULL	0
-528534767	NULL	51	NULL	NULL	1.0	NULL	NULL	0
-528534767	NULL	-11	NULL	NULL	1.0	NULL	NULL	0
-528534767	NULL	-55	NULL	NULL	1.0	NULL	NULL	0
-528534767	NULL	-23	NULL	NULL	1.0	NULL	NULL	0
-528534767	NULL	36	NULL	NULL	1.0	NULL	NULL	0
 528534767	NULL	24	NULL	NULL	1.0	NULL	NULL	0
-528534767	NULL	-7	NULL	NULL	1.0	NULL	NULL	0
-528534767	NULL	-56	NULL	NULL	1.0	NULL	NULL	0
-528534767	NULL	-32	NULL	NULL	1.0	NULL	NULL	0
+528534767	NULL	26	NULL	NULL	1.0	NULL	NULL	0
+528534767	NULL	27	NULL	NULL	1.0	NULL	NULL	0
+528534767	NULL	28	NULL	NULL	1.0	NULL	NULL	0
+528534767	NULL	29	NULL	NULL	1.0	NULL	NULL	0
+528534767	NULL	29	NULL	NULL	1.0	NULL	NULL	0
+528534767	NULL	30	NULL	NULL	1.0	NULL	NULL	0
+528534767	NULL	31	NULL	NULL	1.0	NULL	NULL	0
+528534767	NULL	31	NULL	NULL	1.0	NULL	NULL	0
+528534767	NULL	33	NULL	NULL	1.0	NULL	NULL	0
+528534767	NULL	34	NULL	NULL	1.0	NULL	NULL	0
+528534767	NULL	34	NULL	NULL	1.0	NULL	NULL	0
+528534767	NULL	36	NULL	NULL	1.0	NULL	NULL	0
+528534767	NULL	36	NULL	NULL	1.0	NULL	NULL	0
+528534767	NULL	38	NULL	NULL	1.0	NULL	NULL	0
+528534767	NULL	38	NULL	NULL	1.0	NULL	NULL	0
+528534767	NULL	38	NULL	NULL	1.0	NULL	NULL	0
 528534767	NULL	39	NULL	NULL	1.0	NULL	NULL	0
+528534767	NULL	4	NULL	NULL	1.0	NULL	NULL	0
 528534767	NULL	40	NULL	NULL	1.0	NULL	NULL	0
-528534767	NULL	-45	NULL	NULL	1.0	NULL	NULL	0
-528534767	NULL	-62	NULL	NULL	1.0	NULL	NULL	0
-528534767	NULL	-48	NULL	NULL	1.0	NULL	NULL	0
-528534767	NULL	-11	NULL	NULL	1.0	NULL	NULL	0
-528534767	NULL	-51	NULL	NULL	1.0	NULL	NULL	0
-528534767	NULL	-23	NULL	NULL	1.0	NULL	NULL	0
-528534767	NULL	62	NULL	NULL	1.0	NULL	NULL	0
-528534767	NULL	16	NULL	NULL	1.0	NULL	NULL	0
+528534767	NULL	40	NULL	NULL	1.0	NULL	NULL	0
+528534767	NULL	41	NULL	NULL	1.0	NULL	NULL	0
+528534767	NULL	43	NULL	NULL	1.0	NULL	NULL	0
+528534767	NULL	46	NULL	NULL	1.0	NULL	NULL	0
+528534767	NULL	5	NULL	NULL	1.0	NULL	NULL	0
+528534767	NULL	51	NULL	NULL	1.0	NULL	NULL	0
+528534767	NULL	51	NULL	NULL	1.0	NULL	NULL	0
+528534767	NULL	53	NULL	NULL	1.0	NULL	NULL	0
+528534767	NULL	53	NULL	NULL	1.0	NULL	NULL	0
 528534767	NULL	61	NULL	NULL	1.0	NULL	NULL	0
-528534767	NULL	-11	NULL	NULL	1.0	NULL	NULL	0
+528534767	NULL	61	NULL	NULL	1.0	NULL	NULL	0
+528534767	NULL	61	NULL	NULL	1.0	NULL	NULL	0
+528534767	NULL	62	NULL	NULL	1.0	NULL	NULL	0
+528534767	NULL	9	NULL	NULL	1.0	NULL	NULL	0
 528534767	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL
-528534767	NULL	31	NULL	NULL	1.0	NULL	NULL	0
-528534767	NULL	29	NULL	NULL	1.0	NULL	NULL	0
-528534767	NULL	-34	NULL	NULL	1.0	NULL	NULL	0
-528534767	NULL	31	NULL	NULL	1.0	NULL	NULL	0
-528534767	NULL	-28	NULL	NULL	1.0	NULL	NULL	0
-528534767	NULL	33	NULL	NULL	1.0	NULL	NULL	0
-528534767	NULL	-50	NULL	NULL	1.0	NULL	NULL	0
+528534767	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL
+NULL	1018195815	0	NULL	NULL	NULL	NULL	NULL	NULL

http://git-wip-us.apache.org/repos/asf/hive/blob/a4689020/ql/src/test/results/clientpositive/vectorization_nested_udf.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/vectorization_nested_udf.q.out b/ql/src/test/results/clientpositive/vectorization_nested_udf.q.out
index bca2d2a..090c6c6 100644
--- a/ql/src/test/results/clientpositive/vectorization_nested_udf.q.out
+++ b/ql/src/test/results/clientpositive/vectorization_nested_udf.q.out
@@ -1,3 +1,97 @@
+PREHOOK: query: EXPLAIN VECTORIZATION DETAIL
+SELECT SUM(abs(ctinyint)) from alltypesorc
+PREHOOK: type: QUERY
+POSTHOOK: query: EXPLAIN VECTORIZATION DETAIL
+SELECT SUM(abs(ctinyint)) from alltypesorc
+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
+
+STAGE PLANS:
+  Stage: Stage-1
+    Map Reduce
+      Map Operator Tree:
+          TableScan
+            alias: alltypesorc
+            Statistics: Num rows: 12288 Data size: 2641964 Basic stats: COMPLETE Column stats: NONE
+            TableScan Vectorization:
+                native: true
+                vectorizationSchemaColumns: [0:ctinyint:tinyint, 1:csmallint:smallint, 2:cint:int, 3:cbigint:bigint, 4:cfloat:float, 5:cdouble:double, 6:cstring1:string, 7:cstring2:string, 8:ctimestamp1:timestamp, 9:ctimestamp2:timestamp, 10:cboolean1:boolean, 11:cboolean2:boolean, 12:ROW__ID:struct<transactionid:bigint,bucketid:int,rowid:bigint>]
+            Select Operator
+              expressions: abs(ctinyint) (type: int)
+              outputColumnNames: _col0
+              Select Vectorization:
+                  className: VectorSelectOperator
+                  native: true
+                  projectedOutputColumnNums: [13]
+                  selectExpressions: FuncAbsLongToLong(col 0:tinyint) -> 13:int
+              Statistics: Num rows: 12288 Data size: 2641964 Basic stats: COMPLETE Column stats: NONE
+              Group By Operator
+                aggregations: sum(_col0)
+                Group By Vectorization:
+                    aggregators: VectorUDAFSumLong(col 13:int) -> bigint
+                    className: VectorGroupByOperator
+                    groupByMode: HASH
+                    native: false
+                    vectorProcessingMode: HASH
+                    projectedOutputColumnNums: [0]
+                mode: hash
+                outputColumnNames: _col0
+                Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE
+                Reduce Output Operator
+                  sort order: 
+                  Reduce Sink Vectorization:
+                      className: VectorReduceSinkOperator
+                      native: false
+                      nativeConditionsMet: hive.vectorized.execution.reducesink.new.enabled IS true, No PTF TopN IS true, No DISTINCT columns IS true, BinarySortableSerDe for keys IS true, LazyBinarySerDe for values IS true
+                      nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false
+                  Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE
+                  value expressions: _col0 (type: bigint)
+      Execution mode: vectorized
+      Map Vectorization:
+          enabled: true
+          enabledConditionsMet: hive.vectorized.use.vectorized.input.format IS true
+          inputFormatFeatureSupport: []
+          featureSupportInUse: []
+          inputFileFormats: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
+          allNative: false
+          usesVectorUDFAdaptor: false
+          vectorized: true
+          rowBatchContext:
+              dataColumnCount: 12
+              includeColumns: [0]
+              dataColumns: ctinyint:tinyint, csmallint:smallint, cint:int, cbigint:bigint, cfloat:float, cdouble:double, cstring1:string, cstring2:string, ctimestamp1:timestamp, ctimestamp2:timestamp, cboolean1:boolean, cboolean2:boolean
+              partitionColumnCount: 0
+              scratchColumnTypeNames: [bigint]
+      Reduce Vectorization:
+          enabled: false
+          enableConditionsMet: hive.vectorized.execution.reduce.enabled IS true
+          enableConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false
+      Reduce Operator Tree:
+        Group By Operator
+          aggregations: sum(VALUE._col0)
+          mode: mergepartial
+          outputColumnNames: _col0
+          Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE
+          File Output Operator
+            compressed: false
+            Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE
+            table:
+                input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+                output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+                serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+  Stage: Stage-0
+    Fetch Operator
+      limit: -1
+      Processor Tree:
+        ListSink
+
 PREHOOK: query: SELECT SUM(abs(ctinyint)) from alltypesorc
 PREHOOK: type: QUERY
 PREHOOK: Input: default@alltypesorc