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 2017/11/29 16:47:45 UTC

[3/6] hive git commit: HIVE-18146: Vectorization: VectorMapJoinOperator Decimal64ColumnVector key/value cast bug (Matt McCline, reviewed by Teddy Choi)

http://git-wip-us.apache.org/repos/asf/hive/blob/65cd866e/ql/src/test/results/clientpositive/vector_decimal_mapjoin.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/vector_decimal_mapjoin.q.out b/ql/src/test/results/clientpositive/vector_decimal_mapjoin.q.out
index 39ee51c..6fb0c34 100644
--- a/ql/src/test/results/clientpositive/vector_decimal_mapjoin.q.out
+++ b/ql/src/test/results/clientpositive/vector_decimal_mapjoin.q.out
@@ -38,40 +38,42 @@ POSTHOOK: query: LOAD DATA LOCAL INPATH '../../data/files/over1k' OVERWRITE INTO
 POSTHOOK: type: LOAD
 #### A masked pattern was here ####
 POSTHOOK: Output: default@over1k
-PREHOOK: query: CREATE TABLE t1(`dec` decimal(22,2)) STORED AS ORC
+PREHOOK: query: CREATE TABLE t1(`dec` decimal(22,2), value_dec decimal(22,2)) STORED AS ORC
 PREHOOK: type: CREATETABLE
 PREHOOK: Output: database:default
 PREHOOK: Output: default@t1
-POSTHOOK: query: CREATE TABLE t1(`dec` decimal(22,2)) STORED AS ORC
+POSTHOOK: query: CREATE TABLE t1(`dec` decimal(22,2), value_dec decimal(22,2)) STORED AS ORC
 POSTHOOK: type: CREATETABLE
 POSTHOOK: Output: database:default
 POSTHOOK: Output: default@t1
-PREHOOK: query: INSERT INTO TABLE t1 select `dec` from over1k
+PREHOOK: query: INSERT INTO TABLE t1 select `dec`, cast(d as decimal(22,2)) from over1k
 PREHOOK: type: QUERY
 PREHOOK: Input: default@over1k
 PREHOOK: Output: default@t1
-POSTHOOK: query: INSERT INTO TABLE t1 select `dec` from over1k
+POSTHOOK: query: INSERT INTO TABLE t1 select `dec`, cast(d as decimal(22,2)) from over1k
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@over1k
 POSTHOOK: Output: default@t1
 POSTHOOK: Lineage: t1.dec EXPRESSION [(over1k)over1k.FieldSchema(name:dec, type:decimal(20,2), comment:null), ]
-PREHOOK: query: CREATE TABLE t2(`dec` decimal(24,0)) STORED AS ORC
+POSTHOOK: Lineage: t1.value_dec EXPRESSION [(over1k)over1k.FieldSchema(name:d, type:double, comment:null), ]
+PREHOOK: query: CREATE TABLE t2(`dec` decimal(24,0), value_dec decimal(24,0)) STORED AS ORC
 PREHOOK: type: CREATETABLE
 PREHOOK: Output: database:default
 PREHOOK: Output: default@t2
-POSTHOOK: query: CREATE TABLE t2(`dec` decimal(24,0)) STORED AS ORC
+POSTHOOK: query: CREATE TABLE t2(`dec` decimal(24,0), value_dec decimal(24,0)) STORED AS ORC
 POSTHOOK: type: CREATETABLE
 POSTHOOK: Output: database:default
 POSTHOOK: Output: default@t2
-PREHOOK: query: INSERT INTO TABLE t2 select `dec` from over1k
+PREHOOK: query: INSERT INTO TABLE t2 select `dec`, cast(d as decimal(24,0)) from over1k
 PREHOOK: type: QUERY
 PREHOOK: Input: default@over1k
 PREHOOK: Output: default@t2
-POSTHOOK: query: INSERT INTO TABLE t2 select `dec` from over1k
+POSTHOOK: query: INSERT INTO TABLE t2 select `dec`, cast(d as decimal(24,0)) from over1k
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@over1k
 POSTHOOK: Output: default@t2
 POSTHOOK: Lineage: t2.dec EXPRESSION [(over1k)over1k.FieldSchema(name:dec, type:decimal(20,2), comment:null), ]
+POSTHOOK: Lineage: t2.value_dec EXPRESSION [(over1k)over1k.FieldSchema(name:d, type:double, comment:null), ]
 PREHOOK: query: explain vectorization detail
 select t1.`dec`, t2.`dec` from t1 join t2 on (t1.`dec`=t2.`dec`)
 PREHOOK: type: QUERY
@@ -98,14 +100,14 @@ STAGE PLANS:
         $hdt$_1:t2 
           TableScan
             alias: t2
-            Statistics: Num rows: 1049 Data size: 117488 Basic stats: COMPLETE Column stats: NONE
+            Statistics: Num rows: 1049 Data size: 234976 Basic stats: COMPLETE Column stats: NONE
             Filter Operator
               predicate: dec is not null (type: boolean)
-              Statistics: Num rows: 1049 Data size: 117488 Basic stats: COMPLETE Column stats: NONE
+              Statistics: Num rows: 1049 Data size: 234976 Basic stats: COMPLETE Column stats: NONE
               Select Operator
                 expressions: dec (type: decimal(24,0))
                 outputColumnNames: _col0
-                Statistics: Num rows: 1049 Data size: 117488 Basic stats: COMPLETE Column stats: NONE
+                Statistics: Num rows: 1049 Data size: 234976 Basic stats: COMPLETE Column stats: NONE
                 HashTable Sink Operator
                   keys:
                     0 _col0 (type: decimal(26,2))
@@ -116,17 +118,17 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: t1
-            Statistics: Num rows: 1049 Data size: 117488 Basic stats: COMPLETE Column stats: NONE
+            Statistics: Num rows: 1049 Data size: 234976 Basic stats: COMPLETE Column stats: NONE
             TableScan Vectorization:
                 native: true
-                vectorizationSchemaColumns: [0:dec:decimal(22,2), 1:ROW__ID:struct<transactionid:bigint,bucketid:int,rowid:bigint>]
+                vectorizationSchemaColumns: [0:dec:decimal(22,2), 1:value_dec:decimal(22,2), 2:ROW__ID:struct<transactionid:bigint,bucketid:int,rowid:bigint>]
             Filter Operator
               Filter Vectorization:
                   className: VectorFilterOperator
                   native: true
                   predicateExpression: SelectColumnIsNotNull(col 0:decimal(22,2))
               predicate: dec is not null (type: boolean)
-              Statistics: Num rows: 1049 Data size: 117488 Basic stats: COMPLETE Column stats: NONE
+              Statistics: Num rows: 1049 Data size: 234976 Basic stats: COMPLETE Column stats: NONE
               Select Operator
                 expressions: dec (type: decimal(22,2))
                 outputColumnNames: _col0
@@ -134,7 +136,7 @@ STAGE PLANS:
                     className: VectorSelectOperator
                     native: true
                     projectedOutputColumnNums: [0]
-                Statistics: Num rows: 1049 Data size: 117488 Basic stats: COMPLETE Column stats: NONE
+                Statistics: Num rows: 1049 Data size: 234976 Basic stats: COMPLETE Column stats: NONE
                 Map Join Operator
                   condition map:
                        Inner Join 0 to 1
@@ -142,19 +144,21 @@ STAGE PLANS:
                     0 _col0 (type: decimal(26,2))
                     1 _col0 (type: decimal(26,2))
                   Map Join Vectorization:
+                      bigTableKeyExpressions: col 0:decimal(26,2)
+                      bigTableValueExpressions: col 0:decimal(26,2)
                       className: VectorMapJoinOperator
                       native: false
                       nativeConditionsMet: hive.mapjoin.optimized.hashtable IS true, hive.vectorized.execution.mapjoin.native.enabled IS true, One MapJoin Condition IS true, No nullsafe IS true, Small table vectorizes IS true
                       nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false, Optimized Table and Supports Key Types IS false
                       nativeNotSupportedKeyTypes: DECIMAL
                   outputColumnNames: _col0, _col1
-                  Statistics: Num rows: 1153 Data size: 129236 Basic stats: COMPLETE Column stats: NONE
+                  Statistics: Num rows: 1153 Data size: 258473 Basic stats: COMPLETE Column stats: NONE
                   File Output Operator
                     compressed: false
                     File Sink Vectorization:
                         className: VectorFileSinkOperator
                         native: false
-                    Statistics: Num rows: 1153 Data size: 129236 Basic stats: COMPLETE Column stats: NONE
+                    Statistics: Num rows: 1153 Data size: 258473 Basic stats: COMPLETE Column stats: NONE
                     table:
                         input format: org.apache.hadoop.mapred.SequenceFileInputFormat
                         output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
@@ -170,9 +174,9 @@ STAGE PLANS:
           usesVectorUDFAdaptor: false
           vectorized: true
           rowBatchContext:
-              dataColumnCount: 1
+              dataColumnCount: 2
               includeColumns: [0]
-              dataColumns: dec:decimal(22,2)
+              dataColumns: dec:decimal(22,2), value_dec:decimal(22,2)
               partitionColumnCount: 0
               scratchColumnTypeNames: []
       Local Work:
@@ -300,6 +304,236 @@ POSTHOOK: Input: default@t2
 9.00	9
 9.00	9
 9.00	9
+PREHOOK: query: explain vectorization detail
+select t1.`dec`, t1.value_dec, t2.`dec`, t2.value_dec from t1 join t2 on (t1.`dec`=t2.`dec`)
+PREHOOK: type: QUERY
+POSTHOOK: query: explain vectorization detail
+select t1.`dec`, t1.value_dec, t2.`dec`, t2.value_dec from t1 join t2 on (t1.`dec`=t2.`dec`)
+POSTHOOK: type: QUERY
+PLAN VECTORIZATION:
+  enabled: true
+  enabledConditionsMet: [hive.vectorized.execution.enabled IS true]
+
+STAGE DEPENDENCIES:
+  Stage-4 is a root stage
+  Stage-3 depends on stages: Stage-4
+  Stage-0 depends on stages: Stage-3
+
+STAGE PLANS:
+  Stage: Stage-4
+    Map Reduce Local Work
+      Alias -> Map Local Tables:
+        $hdt$_1:t2 
+          Fetch Operator
+            limit: -1
+      Alias -> Map Local Operator Tree:
+        $hdt$_1:t2 
+          TableScan
+            alias: t2
+            Statistics: Num rows: 1049 Data size: 234976 Basic stats: COMPLETE Column stats: NONE
+            Filter Operator
+              predicate: dec is not null (type: boolean)
+              Statistics: Num rows: 1049 Data size: 234976 Basic stats: COMPLETE Column stats: NONE
+              Select Operator
+                expressions: dec (type: decimal(24,0)), value_dec (type: decimal(24,0))
+                outputColumnNames: _col0, _col1
+                Statistics: Num rows: 1049 Data size: 234976 Basic stats: COMPLETE Column stats: NONE
+                HashTable Sink Operator
+                  keys:
+                    0 _col0 (type: decimal(26,2))
+                    1 _col0 (type: decimal(26,2))
+
+  Stage: Stage-3
+    Map Reduce
+      Map Operator Tree:
+          TableScan
+            alias: t1
+            Statistics: Num rows: 1049 Data size: 234976 Basic stats: COMPLETE Column stats: NONE
+            TableScan Vectorization:
+                native: true
+                vectorizationSchemaColumns: [0:dec:decimal(22,2), 1:value_dec:decimal(22,2), 2:ROW__ID:struct<transactionid:bigint,bucketid:int,rowid:bigint>]
+            Filter Operator
+              Filter Vectorization:
+                  className: VectorFilterOperator
+                  native: true
+                  predicateExpression: SelectColumnIsNotNull(col 0:decimal(22,2))
+              predicate: dec is not null (type: boolean)
+              Statistics: Num rows: 1049 Data size: 234976 Basic stats: COMPLETE Column stats: NONE
+              Select Operator
+                expressions: dec (type: decimal(22,2)), value_dec (type: decimal(22,2))
+                outputColumnNames: _col0, _col1
+                Select Vectorization:
+                    className: VectorSelectOperator
+                    native: true
+                    projectedOutputColumnNums: [0, 1]
+                Statistics: Num rows: 1049 Data size: 234976 Basic stats: COMPLETE Column stats: NONE
+                Map Join Operator
+                  condition map:
+                       Inner Join 0 to 1
+                  keys:
+                    0 _col0 (type: decimal(26,2))
+                    1 _col0 (type: decimal(26,2))
+                  Map Join Vectorization:
+                      bigTableKeyExpressions: col 0:decimal(26,2)
+                      bigTableValueExpressions: col 0:decimal(26,2), col 1:decimal(22,2)
+                      className: VectorMapJoinOperator
+                      native: false
+                      nativeConditionsMet: hive.mapjoin.optimized.hashtable IS true, hive.vectorized.execution.mapjoin.native.enabled IS true, One MapJoin Condition IS true, No nullsafe IS true, Small table vectorizes IS true
+                      nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false, Optimized Table and Supports Key Types IS false
+                      nativeNotSupportedKeyTypes: DECIMAL
+                  outputColumnNames: _col0, _col1, _col2, _col3
+                  Statistics: Num rows: 1153 Data size: 258473 Basic stats: COMPLETE Column stats: NONE
+                  File Output Operator
+                    compressed: false
+                    File Sink Vectorization:
+                        className: VectorFileSinkOperator
+                        native: false
+                    Statistics: Num rows: 1153 Data size: 258473 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
+          rowBatchContext:
+              dataColumnCount: 2
+              includeColumns: [0, 1]
+              dataColumns: dec:decimal(22,2), value_dec:decimal(22,2)
+              partitionColumnCount: 0
+              scratchColumnTypeNames: [decimal(24,0)]
+      Local Work:
+        Map Reduce Local Work
+
+  Stage: Stage-0
+    Fetch Operator
+      limit: -1
+      Processor Tree:
+        ListSink
+
+PREHOOK: query: select t1.`dec`, t1.value_dec, t2.`dec`, t2.value_dec from t1 join t2 on (t1.`dec`=t2.`dec`)
+PREHOOK: type: QUERY
+PREHOOK: Input: default@t1
+PREHOOK: Input: default@t2
+#### A masked pattern was here ####
+POSTHOOK: query: select t1.`dec`, t1.value_dec, t2.`dec`, t2.value_dec from t1 join t2 on (t1.`dec`=t2.`dec`)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@t1
+POSTHOOK: Input: default@t2
+#### A masked pattern was here ####
+14.00	33.66	14	10
+14.00	33.66	14	22
+14.00	33.66	14	34
+14.00	33.66	14	39
+14.00	33.66	14	42
+14.00	33.66	14	45
+14.00	33.66	14	46
+14.00	33.66	14	49
+14.00	33.66	14	5
+17.00	14.26	17	1
+17.00	14.26	17	14
+17.00	14.26	17	16
+17.00	14.26	17	19
+17.00	14.26	17	2
+17.00	14.26	17	22
+17.00	14.26	17	29
+17.00	14.26	17	3
+17.00	14.26	17	4
+17.00	14.26	17	44
+45.00	23.55	45	1
+45.00	23.55	45	2
+45.00	23.55	45	22
+45.00	23.55	45	24
+45.00	23.55	45	42
+6.00	29.78	6	16
+6.00	29.78	6	28
+6.00	29.78	6	30
+6.00	29.78	6	34
+6.00	29.78	6	36
+6.00	29.78	6	44
+62.00	21.02	62	15
+62.00	21.02	62	15
+62.00	21.02	62	21
+62.00	21.02	62	21
+62.00	21.02	62	22
+62.00	21.02	62	25
+62.00	21.02	62	29
+62.00	21.02	62	3
+62.00	21.02	62	34
+62.00	21.02	62	47
+62.00	21.02	62	47
+62.00	21.02	62	49
+64.00	37.76	64	0
+64.00	37.76	64	10
+64.00	37.76	64	10
+64.00	37.76	64	13
+64.00	37.76	64	23
+64.00	37.76	64	25
+64.00	37.76	64	26
+64.00	37.76	64	27
+64.00	37.76	64	27
+64.00	37.76	64	30
+64.00	37.76	64	32
+64.00	37.76	64	34
+64.00	37.76	64	35
+64.00	37.76	64	38
+64.00	37.76	64	40
+64.00	37.76	64	43
+64.00	37.76	64	5
+64.00	37.76	64	50
+70.00	24.59	70	2
+70.00	24.59	70	25
+70.00	24.59	70	27
+70.00	24.59	70	28
+70.00	24.59	70	3
+70.00	24.59	70	32
+70.00	24.59	70	44
+79.00	15.12	79	1
+79.00	15.12	79	15
+79.00	15.12	79	25
+79.00	15.12	79	30
+79.00	15.12	79	35
+79.00	15.12	79	35
+89.00	15.09	89	1
+89.00	15.09	89	15
+89.00	15.09	89	23
+89.00	15.09	89	27
+89.00	15.09	89	28
+89.00	15.09	89	29
+89.00	15.09	89	30
+89.00	15.09	89	32
+89.00	15.09	89	39
+89.00	15.09	89	40
+89.00	15.09	89	45
+89.00	15.09	89	7
+9.00	48.96	9	12
+9.00	48.96	9	15
+9.00	48.96	9	2
+9.00	48.96	9	2
+9.00	48.96	9	2
+9.00	48.96	9	20
+9.00	48.96	9	20
+9.00	48.96	9	21
+9.00	48.96	9	21
+9.00	48.96	9	26
+9.00	48.96	9	27
+9.00	48.96	9	34
+9.00	48.96	9	38
+9.00	48.96	9	41
+9.00	48.96	9	42
+9.00	48.96	9	45
+9.00	48.96	9	48
+9.00	48.96	9	49
+9.00	48.96	9	5
+9.00	48.96	9	7
+9.00	48.96	9	7
 PREHOOK: query: CREATE TABLE over1k_small(t tinyint,
            si smallint,
            i int,
@@ -309,7 +543,7 @@ PREHOOK: query: CREATE TABLE over1k_small(t tinyint,
            bo boolean,
            s string,
            ts timestamp,
-           `dec` decimal(4,2),
+           `dec` decimal(14,2),
            bin binary)
 ROW FORMAT DELIMITED FIELDS TERMINATED BY '|'
 STORED AS TEXTFILE
@@ -325,7 +559,7 @@ POSTHOOK: query: CREATE TABLE over1k_small(t tinyint,
            bo boolean,
            s string,
            ts timestamp,
-           `dec` decimal(4,2),
+           `dec` decimal(14,2),
            bin binary)
 ROW FORMAT DELIMITED FIELDS TERMINATED BY '|'
 STORED AS TEXTFILE
@@ -340,40 +574,42 @@ POSTHOOK: query: LOAD DATA LOCAL INPATH '../../data/files/over1k' OVERWRITE INTO
 POSTHOOK: type: LOAD
 #### A masked pattern was here ####
 POSTHOOK: Output: default@over1k_small
-PREHOOK: query: CREATE TABLE t1_small(`dec` decimal(4,2)) STORED AS ORC
+PREHOOK: query: CREATE TABLE t1_small(`dec` decimal(14,2), value_dec decimal(14,2)) STORED AS TEXTFILE
 PREHOOK: type: CREATETABLE
 PREHOOK: Output: database:default
 PREHOOK: Output: default@t1_small
-POSTHOOK: query: CREATE TABLE t1_small(`dec` decimal(4,2)) STORED AS ORC
+POSTHOOK: query: CREATE TABLE t1_small(`dec` decimal(14,2), value_dec decimal(14,2)) STORED AS TEXTFILE
 POSTHOOK: type: CREATETABLE
 POSTHOOK: Output: database:default
 POSTHOOK: Output: default@t1_small
-PREHOOK: query: INSERT INTO TABLE t1 select `dec` from over1k_small
+PREHOOK: query: INSERT INTO TABLE t1_small select `dec`, cast(d as decimal(14,2)) from over1k_small
 PREHOOK: type: QUERY
 PREHOOK: Input: default@over1k_small
-PREHOOK: Output: default@t1
-POSTHOOK: query: INSERT INTO TABLE t1 select `dec` from over1k_small
+PREHOOK: Output: default@t1_small
+POSTHOOK: query: INSERT INTO TABLE t1_small select `dec`, cast(d as decimal(14,2)) from over1k_small
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@over1k_small
-POSTHOOK: Output: default@t1
-POSTHOOK: Lineage: t1.dec EXPRESSION [(over1k_small)over1k_small.FieldSchema(name:dec, type:decimal(4,2), comment:null), ]
-PREHOOK: query: CREATE TABLE t2_small(`dec` decimal(4,0)) STORED AS ORC
+POSTHOOK: Output: default@t1_small
+POSTHOOK: Lineage: t1_small.dec SIMPLE [(over1k_small)over1k_small.FieldSchema(name:dec, type:decimal(14,2), comment:null), ]
+POSTHOOK: Lineage: t1_small.value_dec EXPRESSION [(over1k_small)over1k_small.FieldSchema(name:d, type:double, comment:null), ]
+PREHOOK: query: CREATE TABLE t2_small(`dec` decimal(14,0), value_dec decimal(14,0)) STORED AS TEXTFILE
 PREHOOK: type: CREATETABLE
 PREHOOK: Output: database:default
 PREHOOK: Output: default@t2_small
-POSTHOOK: query: CREATE TABLE t2_small(`dec` decimal(4,0)) STORED AS ORC
+POSTHOOK: query: CREATE TABLE t2_small(`dec` decimal(14,0), value_dec decimal(14,0)) STORED AS TEXTFILE
 POSTHOOK: type: CREATETABLE
 POSTHOOK: Output: database:default
 POSTHOOK: Output: default@t2_small
-PREHOOK: query: INSERT INTO TABLE t2 select `dec` from over1k_small
+PREHOOK: query: INSERT INTO TABLE t2_small select `dec`, cast(d as decimal(14,0)) from over1k_small
 PREHOOK: type: QUERY
 PREHOOK: Input: default@over1k_small
-PREHOOK: Output: default@t2
-POSTHOOK: query: INSERT INTO TABLE t2 select `dec` from over1k_small
+PREHOOK: Output: default@t2_small
+POSTHOOK: query: INSERT INTO TABLE t2_small select `dec`, cast(d as decimal(14,0)) from over1k_small
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@over1k_small
-POSTHOOK: Output: default@t2
-POSTHOOK: Lineage: t2.dec EXPRESSION [(over1k_small)over1k_small.FieldSchema(name:dec, type:decimal(4,2), comment:null), ]
+POSTHOOK: Output: default@t2_small
+POSTHOOK: Lineage: t2_small.dec EXPRESSION [(over1k_small)over1k_small.FieldSchema(name:dec, type:decimal(14,2), comment:null), ]
+POSTHOOK: Lineage: t2_small.value_dec EXPRESSION [(over1k_small)over1k_small.FieldSchema(name:d, type:double, comment:null), ]
 PREHOOK: query: explain vectorization detail
 select t1_small.`dec`, t2_small.`dec` from t1_small join t2_small on (t1_small.`dec`=t2_small.`dec`)
 PREHOOK: type: QUERY
@@ -393,70 +629,322 @@ STAGE PLANS:
   Stage: Stage-4
     Map Reduce Local Work
       Alias -> Map Local Tables:
-        $hdt$_0:t1_small 
+        $hdt$_1:t2_small 
           Fetch Operator
             limit: -1
       Alias -> Map Local Operator Tree:
-        $hdt$_0:t1_small 
+        $hdt$_1:t2_small 
+          TableScan
+            alias: t2_small
+            Statistics: Num rows: 1049 Data size: 7044 Basic stats: COMPLETE Column stats: NONE
+            Filter Operator
+              predicate: dec is not null (type: boolean)
+              Statistics: Num rows: 1049 Data size: 7044 Basic stats: COMPLETE Column stats: NONE
+              Select Operator
+                expressions: dec (type: decimal(14,0))
+                outputColumnNames: _col0
+                Statistics: Num rows: 1049 Data size: 7044 Basic stats: COMPLETE Column stats: NONE
+                HashTable Sink Operator
+                  keys:
+                    0 _col0 (type: decimal(16,2))
+                    1 _col0 (type: decimal(16,2))
+
+  Stage: Stage-3
+    Map Reduce
+      Map Operator Tree:
           TableScan
             alias: t1_small
-            Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+            Statistics: Num rows: 1049 Data size: 11234 Basic stats: COMPLETE Column stats: NONE
+            TableScan Vectorization:
+                native: true
+                vectorizationSchemaColumns: [0:dec:decimal(14,2)/DECIMAL_64, 1:value_dec:decimal(14,2)/DECIMAL_64, 2:ROW__ID:struct<transactionid:bigint,bucketid:int,rowid:bigint>]
             Filter Operator
+              Filter Vectorization:
+                  className: VectorFilterOperator
+                  native: true
+                  predicateExpression: SelectColumnIsNotNull(col 3:decimal(14,2))(children: ConvertDecimal64ToDecimal(col 0:decimal(14,2)/DECIMAL_64) -> 3:decimal(14,2))
               predicate: dec is not null (type: boolean)
-              Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+              Statistics: Num rows: 1049 Data size: 11234 Basic stats: COMPLETE Column stats: NONE
               Select Operator
-                expressions: dec (type: decimal(4,2))
+                expressions: dec (type: decimal(14,2))
                 outputColumnNames: _col0
-                Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+                Select Vectorization:
+                    className: VectorSelectOperator
+                    native: true
+                    projectedOutputColumnNums: [0]
+                Statistics: Num rows: 1049 Data size: 11234 Basic stats: COMPLETE Column stats: NONE
+                Map Join Operator
+                  condition map:
+                       Inner Join 0 to 1
+                  keys:
+                    0 _col0 (type: decimal(16,2))
+                    1 _col0 (type: decimal(16,2))
+                  Map Join Vectorization:
+                      bigTableKeyExpressions: ConvertDecimal64ToDecimal(col 0:decimal(16,2)/DECIMAL_64) -> 4:decimal(16,2)
+                      bigTableValueExpressions: ConvertDecimal64ToDecimal(col 0:decimal(16,2)/DECIMAL_64) -> 5:decimal(16,2)
+                      className: VectorMapJoinOperator
+                      native: false
+                      nativeConditionsMet: hive.mapjoin.optimized.hashtable IS true, hive.vectorized.execution.mapjoin.native.enabled IS true, One MapJoin Condition IS true, No nullsafe IS true, Small table vectorizes IS true
+                      nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false, Optimized Table and Supports Key Types IS false
+                      nativeNotSupportedKeyTypes: DECIMAL
+                  outputColumnNames: _col0, _col1
+                  Statistics: Num rows: 1153 Data size: 12357 Basic stats: COMPLETE Column stats: NONE
+                  File Output Operator
+                    compressed: false
+                    File Sink Vectorization:
+                        className: VectorFileSinkOperator
+                        native: false
+                    Statistics: Num rows: 1153 Data size: 12357 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.vector.serde.deserialize IS true
+          inputFormatFeatureSupport: [DECIMAL_64]
+          featureSupportInUse: [DECIMAL_64]
+          inputFileFormats: org.apache.hadoop.mapred.TextInputFormat
+          allNative: false
+          usesVectorUDFAdaptor: false
+          vectorized: true
+          rowBatchContext:
+              dataColumnCount: 2
+              includeColumns: [0]
+              dataColumns: dec:decimal(14,2)/DECIMAL_64, value_dec:decimal(14,2)/DECIMAL_64
+              partitionColumnCount: 0
+              scratchColumnTypeNames: [decimal(14,2), decimal(16,2), decimal(16,2)]
+      Local Work:
+        Map Reduce Local Work
+
+  Stage: Stage-0
+    Fetch Operator
+      limit: -1
+      Processor Tree:
+        ListSink
+
+PREHOOK: query: select t1_small.`dec`, t2_small.`dec` from t1_small join t2_small on (t1_small.`dec`=t2_small.`dec`)
+PREHOOK: type: QUERY
+PREHOOK: Input: default@t1_small
+PREHOOK: Input: default@t2_small
+#### A masked pattern was here ####
+POSTHOOK: query: select t1_small.`dec`, t2_small.`dec` from t1_small join t2_small on (t1_small.`dec`=t2_small.`dec`)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@t1_small
+POSTHOOK: Input: default@t2_small
+#### A masked pattern was here ####
+89.00	89
+PREHOOK: query: explain vectorization detail
+select t1_small.`dec`, t1_small.value_dec, t2_small.`dec`, t2_small.value_dec from t1_small join t2_small on (t1_small.`dec`=t2_small.`dec`)
+PREHOOK: type: QUERY
+POSTHOOK: query: explain vectorization detail
+select t1_small.`dec`, t1_small.value_dec, t2_small.`dec`, t2_small.value_dec from t1_small join t2_small on (t1_small.`dec`=t2_small.`dec`)
+POSTHOOK: type: QUERY
+PLAN VECTORIZATION:
+  enabled: true
+  enabledConditionsMet: [hive.vectorized.execution.enabled IS true]
+
+STAGE DEPENDENCIES:
+  Stage-4 is a root stage
+  Stage-3 depends on stages: Stage-4
+  Stage-0 depends on stages: Stage-3
+
+STAGE PLANS:
+  Stage: Stage-4
+    Map Reduce Local Work
+      Alias -> Map Local Tables:
+        $hdt$_1:t2_small 
+          Fetch Operator
+            limit: -1
+      Alias -> Map Local Operator Tree:
+        $hdt$_1:t2_small 
+          TableScan
+            alias: t2_small
+            Statistics: Num rows: 1049 Data size: 7044 Basic stats: COMPLETE Column stats: NONE
+            Filter Operator
+              predicate: dec is not null (type: boolean)
+              Statistics: Num rows: 1049 Data size: 7044 Basic stats: COMPLETE Column stats: NONE
+              Select Operator
+                expressions: dec (type: decimal(14,0)), value_dec (type: decimal(14,0))
+                outputColumnNames: _col0, _col1
+                Statistics: Num rows: 1049 Data size: 7044 Basic stats: COMPLETE Column stats: NONE
                 HashTable Sink Operator
                   keys:
-                    0 _col0 (type: decimal(6,2))
-                    1 _col0 (type: decimal(6,2))
+                    0 _col0 (type: decimal(16,2))
+                    1 _col0 (type: decimal(16,2))
 
   Stage: Stage-3
     Map Reduce
       Map Operator Tree:
           TableScan
+            alias: t1_small
+            Statistics: Num rows: 1049 Data size: 11234 Basic stats: COMPLETE Column stats: NONE
+            TableScan Vectorization:
+                native: true
+                vectorizationSchemaColumns: [0:dec:decimal(14,2)/DECIMAL_64, 1:value_dec:decimal(14,2)/DECIMAL_64, 2:ROW__ID:struct<transactionid:bigint,bucketid:int,rowid:bigint>]
+            Filter Operator
+              Filter Vectorization:
+                  className: VectorFilterOperator
+                  native: true
+                  predicateExpression: SelectColumnIsNotNull(col 3:decimal(14,2))(children: ConvertDecimal64ToDecimal(col 0:decimal(14,2)/DECIMAL_64) -> 3:decimal(14,2))
+              predicate: dec is not null (type: boolean)
+              Statistics: Num rows: 1049 Data size: 11234 Basic stats: COMPLETE Column stats: NONE
+              Select Operator
+                expressions: dec (type: decimal(14,2)), value_dec (type: decimal(14,2))
+                outputColumnNames: _col0, _col1
+                Select Vectorization:
+                    className: VectorSelectOperator
+                    native: true
+                    projectedOutputColumnNums: [0, 1]
+                Statistics: Num rows: 1049 Data size: 11234 Basic stats: COMPLETE Column stats: NONE
+                Map Join Operator
+                  condition map:
+                       Inner Join 0 to 1
+                  keys:
+                    0 _col0 (type: decimal(16,2))
+                    1 _col0 (type: decimal(16,2))
+                  Map Join Vectorization:
+                      bigTableKeyExpressions: ConvertDecimal64ToDecimal(col 0:decimal(16,2)/DECIMAL_64) -> 4:decimal(16,2)
+                      bigTableValueExpressions: ConvertDecimal64ToDecimal(col 0:decimal(16,2)/DECIMAL_64) -> 5:decimal(16,2), ConvertDecimal64ToDecimal(col 1:decimal(14,2)/DECIMAL_64) -> 3:decimal(14,2)
+                      className: VectorMapJoinOperator
+                      native: false
+                      nativeConditionsMet: hive.mapjoin.optimized.hashtable IS true, hive.vectorized.execution.mapjoin.native.enabled IS true, One MapJoin Condition IS true, No nullsafe IS true, Small table vectorizes IS true
+                      nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false, Optimized Table and Supports Key Types IS false
+                      nativeNotSupportedKeyTypes: DECIMAL
+                  outputColumnNames: _col0, _col1, _col2, _col3
+                  Statistics: Num rows: 1153 Data size: 12357 Basic stats: COMPLETE Column stats: NONE
+                  File Output Operator
+                    compressed: false
+                    File Sink Vectorization:
+                        className: VectorFileSinkOperator
+                        native: false
+                    Statistics: Num rows: 1153 Data size: 12357 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.vector.serde.deserialize IS true
+          inputFormatFeatureSupport: [DECIMAL_64]
+          featureSupportInUse: [DECIMAL_64]
+          inputFileFormats: org.apache.hadoop.mapred.TextInputFormat
+          allNative: false
+          usesVectorUDFAdaptor: false
+          vectorized: true
+          rowBatchContext:
+              dataColumnCount: 2
+              includeColumns: [0, 1]
+              dataColumns: dec:decimal(14,2)/DECIMAL_64, value_dec:decimal(14,2)/DECIMAL_64
+              partitionColumnCount: 0
+              scratchColumnTypeNames: [decimal(14,2), decimal(16,2), decimal(16,2), decimal(14,0)]
+      Local Work:
+        Map Reduce Local Work
+
+  Stage: Stage-0
+    Fetch Operator
+      limit: -1
+      Processor Tree:
+        ListSink
+
+PREHOOK: query: select t1_small.`dec`, t1_small.value_dec, t2_small.`dec`, t2_small.value_dec from t1_small join t2_small on (t1_small.`dec`=t2_small.`dec`)
+PREHOOK: type: QUERY
+PREHOOK: Input: default@t1_small
+PREHOOK: Input: default@t2_small
+#### A masked pattern was here ####
+POSTHOOK: query: select t1_small.`dec`, t1_small.value_dec, t2_small.`dec`, t2_small.value_dec from t1_small join t2_small on (t1_small.`dec`=t2_small.`dec`)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@t1_small
+POSTHOOK: Input: default@t2_small
+#### A masked pattern was here ####
+89.00	15.09	89	15
+PREHOOK: query: explain vectorization detail
+select t1_small.`dec`, t2_small.`dec` from t1_small join t2_small on (t1_small.`dec`=t2_small.`dec`)
+PREHOOK: type: QUERY
+POSTHOOK: query: explain vectorization detail
+select t1_small.`dec`, t2_small.`dec` from t1_small join t2_small on (t1_small.`dec`=t2_small.`dec`)
+POSTHOOK: type: QUERY
+PLAN VECTORIZATION:
+  enabled: true
+  enabledConditionsMet: [hive.vectorized.execution.enabled IS true]
+
+STAGE DEPENDENCIES:
+  Stage-4 is a root stage
+  Stage-3 depends on stages: Stage-4
+  Stage-0 depends on stages: Stage-3
+
+STAGE PLANS:
+  Stage: Stage-4
+    Map Reduce Local Work
+      Alias -> Map Local Tables:
+        $hdt$_1:t2_small 
+          Fetch Operator
+            limit: -1
+      Alias -> Map Local Operator Tree:
+        $hdt$_1:t2_small 
+          TableScan
             alias: t2_small
-            Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+            Statistics: Num rows: 1049 Data size: 7044 Basic stats: COMPLETE Column stats: NONE
+            Filter Operator
+              predicate: dec is not null (type: boolean)
+              Statistics: Num rows: 1049 Data size: 7044 Basic stats: COMPLETE Column stats: NONE
+              Select Operator
+                expressions: dec (type: decimal(14,0))
+                outputColumnNames: _col0
+                Statistics: Num rows: 1049 Data size: 7044 Basic stats: COMPLETE Column stats: NONE
+                HashTable Sink Operator
+                  keys:
+                    0 _col0 (type: decimal(16,2))
+                    1 _col0 (type: decimal(16,2))
+
+  Stage: Stage-3
+    Map Reduce
+      Map Operator Tree:
+          TableScan
+            alias: t1_small
+            Statistics: Num rows: 1049 Data size: 11234 Basic stats: COMPLETE Column stats: NONE
             TableScan Vectorization:
                 native: true
-                vectorizationSchemaColumns: [0:dec:decimal(4,0), 1:ROW__ID:struct<transactionid:bigint,bucketid:int,rowid:bigint>]
+                vectorizationSchemaColumns: [0:dec:decimal(14,2), 1:value_dec:decimal(14,2), 2:ROW__ID:struct<transactionid:bigint,bucketid:int,rowid:bigint>]
             Filter Operator
               Filter Vectorization:
                   className: VectorFilterOperator
                   native: true
-                  predicateExpression: SelectColumnIsNotNull(col 0:decimal(4,0))
+                  predicateExpression: SelectColumnIsNotNull(col 0:decimal(14,2))
               predicate: dec is not null (type: boolean)
-              Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+              Statistics: Num rows: 1049 Data size: 11234 Basic stats: COMPLETE Column stats: NONE
               Select Operator
-                expressions: dec (type: decimal(4,0))
+                expressions: dec (type: decimal(14,2))
                 outputColumnNames: _col0
                 Select Vectorization:
                     className: VectorSelectOperator
                     native: true
                     projectedOutputColumnNums: [0]
-                Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+                Statistics: Num rows: 1049 Data size: 11234 Basic stats: COMPLETE Column stats: NONE
                 Map Join Operator
                   condition map:
                        Inner Join 0 to 1
                   keys:
-                    0 _col0 (type: decimal(6,2))
-                    1 _col0 (type: decimal(6,2))
+                    0 _col0 (type: decimal(16,2))
+                    1 _col0 (type: decimal(16,2))
                   Map Join Vectorization:
+                      bigTableKeyExpressions: col 0:decimal(16,2)
+                      bigTableValueExpressions: col 0:decimal(16,2)
                       className: VectorMapJoinOperator
                       native: false
                       nativeConditionsMet: hive.mapjoin.optimized.hashtable IS true, hive.vectorized.execution.mapjoin.native.enabled IS true, One MapJoin Condition IS true, No nullsafe IS true, Small table vectorizes IS true
                       nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false, Optimized Table and Supports Key Types IS false
                       nativeNotSupportedKeyTypes: DECIMAL
                   outputColumnNames: _col0, _col1
-                  Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+                  Statistics: Num rows: 1153 Data size: 12357 Basic stats: COMPLETE Column stats: NONE
                   File Output Operator
                     compressed: false
                     File Sink Vectorization:
                         className: VectorFileSinkOperator
                         native: false
-                    Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+                    Statistics: Num rows: 1153 Data size: 12357 Basic stats: COMPLETE Column stats: NONE
                     table:
                         input format: org.apache.hadoop.mapred.SequenceFileInputFormat
                         output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
@@ -464,17 +952,18 @@ STAGE PLANS:
       Execution mode: vectorized
       Map Vectorization:
           enabled: true
-          enabledConditionsMet: hive.vectorized.use.vectorized.input.format IS true
-          inputFormatFeatureSupport: []
+          enabledConditionsMet: hive.vectorized.use.vector.serde.deserialize IS true
+          inputFormatFeatureSupport: [DECIMAL_64]
+          vectorizationSupportRemovedReasons: [[] is disabled because it is not in hive.vectorized.input.format.supports.enabled []]
           featureSupportInUse: []
-          inputFileFormats: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
+          inputFileFormats: org.apache.hadoop.mapred.TextInputFormat
           allNative: false
           usesVectorUDFAdaptor: false
           vectorized: true
           rowBatchContext:
-              dataColumnCount: 1
+              dataColumnCount: 2
               includeColumns: [0]
-              dataColumns: dec:decimal(4,0)
+              dataColumns: dec:decimal(14,2), value_dec:decimal(14,2)
               partitionColumnCount: 0
               scratchColumnTypeNames: []
       Local Work:
@@ -496,3 +985,130 @@ POSTHOOK: type: QUERY
 POSTHOOK: Input: default@t1_small
 POSTHOOK: Input: default@t2_small
 #### A masked pattern was here ####
+89.00	89
+PREHOOK: query: explain vectorization detail
+select t1_small.`dec`, t1_small.value_dec, t2_small.`dec`, t2_small.value_dec from t1_small join t2_small on (t1_small.`dec`=t2_small.`dec`)
+PREHOOK: type: QUERY
+POSTHOOK: query: explain vectorization detail
+select t1_small.`dec`, t1_small.value_dec, t2_small.`dec`, t2_small.value_dec from t1_small join t2_small on (t1_small.`dec`=t2_small.`dec`)
+POSTHOOK: type: QUERY
+PLAN VECTORIZATION:
+  enabled: true
+  enabledConditionsMet: [hive.vectorized.execution.enabled IS true]
+
+STAGE DEPENDENCIES:
+  Stage-4 is a root stage
+  Stage-3 depends on stages: Stage-4
+  Stage-0 depends on stages: Stage-3
+
+STAGE PLANS:
+  Stage: Stage-4
+    Map Reduce Local Work
+      Alias -> Map Local Tables:
+        $hdt$_1:t2_small 
+          Fetch Operator
+            limit: -1
+      Alias -> Map Local Operator Tree:
+        $hdt$_1:t2_small 
+          TableScan
+            alias: t2_small
+            Statistics: Num rows: 1049 Data size: 7044 Basic stats: COMPLETE Column stats: NONE
+            Filter Operator
+              predicate: dec is not null (type: boolean)
+              Statistics: Num rows: 1049 Data size: 7044 Basic stats: COMPLETE Column stats: NONE
+              Select Operator
+                expressions: dec (type: decimal(14,0)), value_dec (type: decimal(14,0))
+                outputColumnNames: _col0, _col1
+                Statistics: Num rows: 1049 Data size: 7044 Basic stats: COMPLETE Column stats: NONE
+                HashTable Sink Operator
+                  keys:
+                    0 _col0 (type: decimal(16,2))
+                    1 _col0 (type: decimal(16,2))
+
+  Stage: Stage-3
+    Map Reduce
+      Map Operator Tree:
+          TableScan
+            alias: t1_small
+            Statistics: Num rows: 1049 Data size: 11234 Basic stats: COMPLETE Column stats: NONE
+            TableScan Vectorization:
+                native: true
+                vectorizationSchemaColumns: [0:dec:decimal(14,2), 1:value_dec:decimal(14,2), 2:ROW__ID:struct<transactionid:bigint,bucketid:int,rowid:bigint>]
+            Filter Operator
+              Filter Vectorization:
+                  className: VectorFilterOperator
+                  native: true
+                  predicateExpression: SelectColumnIsNotNull(col 0:decimal(14,2))
+              predicate: dec is not null (type: boolean)
+              Statistics: Num rows: 1049 Data size: 11234 Basic stats: COMPLETE Column stats: NONE
+              Select Operator
+                expressions: dec (type: decimal(14,2)), value_dec (type: decimal(14,2))
+                outputColumnNames: _col0, _col1
+                Select Vectorization:
+                    className: VectorSelectOperator
+                    native: true
+                    projectedOutputColumnNums: [0, 1]
+                Statistics: Num rows: 1049 Data size: 11234 Basic stats: COMPLETE Column stats: NONE
+                Map Join Operator
+                  condition map:
+                       Inner Join 0 to 1
+                  keys:
+                    0 _col0 (type: decimal(16,2))
+                    1 _col0 (type: decimal(16,2))
+                  Map Join Vectorization:
+                      bigTableKeyExpressions: col 0:decimal(16,2)
+                      bigTableValueExpressions: col 0:decimal(16,2), col 1:decimal(14,2)
+                      className: VectorMapJoinOperator
+                      native: false
+                      nativeConditionsMet: hive.mapjoin.optimized.hashtable IS true, hive.vectorized.execution.mapjoin.native.enabled IS true, One MapJoin Condition IS true, No nullsafe IS true, Small table vectorizes IS true
+                      nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false, Optimized Table and Supports Key Types IS false
+                      nativeNotSupportedKeyTypes: DECIMAL
+                  outputColumnNames: _col0, _col1, _col2, _col3
+                  Statistics: Num rows: 1153 Data size: 12357 Basic stats: COMPLETE Column stats: NONE
+                  File Output Operator
+                    compressed: false
+                    File Sink Vectorization:
+                        className: VectorFileSinkOperator
+                        native: false
+                    Statistics: Num rows: 1153 Data size: 12357 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.vector.serde.deserialize IS true
+          inputFormatFeatureSupport: [DECIMAL_64]
+          vectorizationSupportRemovedReasons: [[] is disabled because it is not in hive.vectorized.input.format.supports.enabled []]
+          featureSupportInUse: []
+          inputFileFormats: org.apache.hadoop.mapred.TextInputFormat
+          allNative: false
+          usesVectorUDFAdaptor: false
+          vectorized: true
+          rowBatchContext:
+              dataColumnCount: 2
+              includeColumns: [0, 1]
+              dataColumns: dec:decimal(14,2), value_dec:decimal(14,2)
+              partitionColumnCount: 0
+              scratchColumnTypeNames: [decimal(14,0)]
+      Local Work:
+        Map Reduce Local Work
+
+  Stage: Stage-0
+    Fetch Operator
+      limit: -1
+      Processor Tree:
+        ListSink
+
+PREHOOK: query: select t1_small.`dec`, t1_small.value_dec, t2_small.`dec`, t2_small.value_dec from t1_small join t2_small on (t1_small.`dec`=t2_small.`dec`)
+PREHOOK: type: QUERY
+PREHOOK: Input: default@t1_small
+PREHOOK: Input: default@t2_small
+#### A masked pattern was here ####
+POSTHOOK: query: select t1_small.`dec`, t1_small.value_dec, t2_small.`dec`, t2_small.value_dec from t1_small join t2_small on (t1_small.`dec`=t2_small.`dec`)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@t1_small
+POSTHOOK: Input: default@t2_small
+#### A masked pattern was here ####
+89.00	15.09	89	15

http://git-wip-us.apache.org/repos/asf/hive/blob/65cd866e/ql/src/test/results/clientpositive/vector_groupby_mapjoin.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/vector_groupby_mapjoin.q.out b/ql/src/test/results/clientpositive/vector_groupby_mapjoin.q.out
index 553c6f4..bfe2d80 100644
--- a/ql/src/test/results/clientpositive/vector_groupby_mapjoin.q.out
+++ b/ql/src/test/results/clientpositive/vector_groupby_mapjoin.q.out
@@ -127,6 +127,7 @@ STAGE PLANS:
                 0 
                 1 
               Map Join Vectorization:
+                  bigTableValueExpressions: col 0:bigint, col 1:bigint
                   className: VectorMapJoinOperator
                   native: false
                   nativeConditionsMet: hive.mapjoin.optimized.hashtable IS true, hive.vectorized.execution.mapjoin.native.enabled IS true, One MapJoin Condition IS true, No nullsafe IS true, Small table vectorizes IS true, Optimized Table and Supports Key Types IS true
@@ -185,6 +186,8 @@ STAGE PLANS:
                 0 _col0 (type: string)
                 1 _col0 (type: string)
               Map Join Vectorization:
+                  bigTableKeyExpressions: col 0:string
+                  bigTableValueExpressions: col 0:string, col 1:string, col 2:bigint, col 3:bigint
                   className: VectorMapJoinOperator
                   native: false
                   nativeConditionsMet: hive.mapjoin.optimized.hashtable IS true, hive.vectorized.execution.mapjoin.native.enabled IS true, One MapJoin Condition IS true, No nullsafe IS true, Small table vectorizes IS true, Optimized Table and Supports Key Types IS true

http://git-wip-us.apache.org/repos/asf/hive/blob/65cd866e/ql/src/test/results/clientpositive/vector_include_no_sel.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/vector_include_no_sel.q.out b/ql/src/test/results/clientpositive/vector_include_no_sel.q.out
index 7efcfd9..848823f 100644
--- a/ql/src/test/results/clientpositive/vector_include_no_sel.q.out
+++ b/ql/src/test/results/clientpositive/vector_include_no_sel.q.out
@@ -214,6 +214,7 @@ STAGE PLANS:
                 0 
                 1 
               Map Join Vectorization:
+                  bigTableValueExpressions: col 4:int
                   className: VectorMapJoinOperator
                   native: false
                   nativeConditionsMet: hive.mapjoin.optimized.hashtable IS true, hive.vectorized.execution.mapjoin.native.enabled IS true, One MapJoin Condition IS true, No nullsafe IS true, Small table vectorizes IS true, Optimized Table and Supports Key Types IS true

http://git-wip-us.apache.org/repos/asf/hive/blob/65cd866e/ql/src/test/results/clientpositive/vector_interval_mapjoin.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/vector_interval_mapjoin.q.out b/ql/src/test/results/clientpositive/vector_interval_mapjoin.q.out
index 18b324c..1654bd9 100644
--- a/ql/src/test/results/clientpositive/vector_interval_mapjoin.q.out
+++ b/ql/src/test/results/clientpositive/vector_interval_mapjoin.q.out
@@ -244,6 +244,8 @@ STAGE PLANS:
                     0 _col0 (type: string), _col1 (type: interval_day_time)
                     1 _col0 (type: string), _col1 (type: interval_day_time)
                   Map Join Vectorization:
+                      bigTableKeyExpressions: col 8:string, col 15:interval_day_time
+                      bigTableValueExpressions: col 8:string, col 15:interval_day_time
                       className: VectorMapJoinOperator
                       native: false
                       nativeConditionsMet: hive.mapjoin.optimized.hashtable IS true, hive.vectorized.execution.mapjoin.native.enabled IS true, One MapJoin Condition IS true, No nullsafe IS true, Small table vectorizes IS true, Optimized Table and Supports Key Types IS true

http://git-wip-us.apache.org/repos/asf/hive/blob/65cd866e/ql/src/test/results/clientpositive/vector_left_outer_join2.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/vector_left_outer_join2.q.out b/ql/src/test/results/clientpositive/vector_left_outer_join2.q.out
index d73e9ac..979477b 100644
--- a/ql/src/test/results/clientpositive/vector_left_outer_join2.q.out
+++ b/ql/src/test/results/clientpositive/vector_left_outer_join2.q.out
@@ -327,6 +327,8 @@ STAGE PLANS:
                   0 _col1 (type: int)
                   1 _col0 (type: int)
                 Map Join Vectorization:
+                    bigTableKeyExpressions: col 1:int
+                    bigTableValueExpressions: col 0:int, col 1:int, col 2:int
                     className: VectorMapJoinOuterFilteredOperator
                     native: false
                     nativeConditionsMet: hive.mapjoin.optimized.hashtable IS true, One MapJoin Condition IS true, No nullsafe IS true, Small table vectorizes IS true, Optimized Table and Supports Key Types IS true
@@ -448,6 +450,8 @@ STAGE PLANS:
                   0 _col1 (type: int)
                   1 _col0 (type: int)
                 Map Join Vectorization:
+                    bigTableKeyExpressions: col 1:int
+                    bigTableValueExpressions: col 0:int, col 1:int, col 2:int
                     className: VectorMapJoinOuterFilteredOperator
                     native: false
                     nativeConditionsMet: hive.mapjoin.optimized.hashtable IS true, One MapJoin Condition IS true, No nullsafe IS true, Small table vectorizes IS true, Optimized Table and Supports Key Types IS true
@@ -569,6 +573,8 @@ STAGE PLANS:
                   0 _col1 (type: int)
                   1 _col0 (type: int)
                 Map Join Vectorization:
+                    bigTableKeyExpressions: col 1:int
+                    bigTableValueExpressions: col 0:int, col 1:int, col 2:int
                     className: VectorMapJoinOuterFilteredOperator
                     native: false
                     nativeConditionsMet: hive.mapjoin.optimized.hashtable IS true, hive.vectorized.execution.mapjoin.native.enabled IS true, One MapJoin Condition IS true, No nullsafe IS true, Small table vectorizes IS true, Optimized Table and Supports Key Types IS true
@@ -690,6 +696,8 @@ STAGE PLANS:
                   0 _col1 (type: int)
                   1 _col0 (type: int)
                 Map Join Vectorization:
+                    bigTableKeyExpressions: col 1:int
+                    bigTableValueExpressions: col 0:int, col 1:int, col 2:int
                     className: VectorMapJoinOuterFilteredOperator
                     native: false
                     nativeConditionsMet: hive.mapjoin.optimized.hashtable IS true, hive.vectorized.execution.mapjoin.native.enabled IS true, One MapJoin Condition IS true, No nullsafe IS true, Small table vectorizes IS true, Optimized Table and Supports Key Types IS true

http://git-wip-us.apache.org/repos/asf/hive/blob/65cd866e/ql/src/test/results/clientpositive/vector_outer_join0.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/vector_outer_join0.q.out b/ql/src/test/results/clientpositive/vector_outer_join0.q.out
index 11a534d..603571d 100644
--- a/ql/src/test/results/clientpositive/vector_outer_join0.q.out
+++ b/ql/src/test/results/clientpositive/vector_outer_join0.q.out
@@ -118,6 +118,8 @@ STAGE PLANS:
                   0 _col1 (type: int)
                   1 _col0 (type: int)
                 Map Join Vectorization:
+                    bigTableKeyExpressions: col 1:int
+                    bigTableValueExpressions: col 0:string, col 1:int
                     className: VectorMapJoinOperator
                     native: false
                     nativeConditionsMet: hive.mapjoin.optimized.hashtable IS true, hive.vectorized.execution.mapjoin.native.enabled IS true, One MapJoin Condition IS true, No nullsafe IS true, Small table vectorizes IS true, Optimized Table and Supports Key Types IS true
@@ -235,6 +237,8 @@ STAGE PLANS:
                   0 _col1 (type: int)
                   1 _col0 (type: int)
                 Map Join Vectorization:
+                    bigTableKeyExpressions: col 0:int
+                    bigTableValueExpressions: col 0:int, col 1:string
                     className: VectorMapJoinOperator
                     native: false
                     nativeConditionsMet: hive.mapjoin.optimized.hashtable IS true, hive.vectorized.execution.mapjoin.native.enabled IS true, One MapJoin Condition IS true, No nullsafe IS true, Small table vectorizes IS true, Optimized Table and Supports Key Types IS true

http://git-wip-us.apache.org/repos/asf/hive/blob/65cd866e/ql/src/test/results/clientpositive/vector_outer_join1.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/vector_outer_join1.q.out b/ql/src/test/results/clientpositive/vector_outer_join1.q.out
index 6dadcc6..9143fc8 100644
--- a/ql/src/test/results/clientpositive/vector_outer_join1.q.out
+++ b/ql/src/test/results/clientpositive/vector_outer_join1.q.out
@@ -282,6 +282,8 @@ STAGE PLANS:
                   0 _col2 (type: int)
                   1 _col2 (type: int)
                 Map Join Vectorization:
+                    bigTableKeyExpressions: col 2:int
+                    bigTableValueExpressions: col 0:tinyint, col 1:smallint, col 2:int, col 3:bigint, col 4:float, col 5:double, col 6:string, col 7:string, col 8:timestamp, col 9:timestamp, col 10:boolean, col 11:boolean
                     className: VectorMapJoinOperator
                     native: false
                     nativeConditionsMet: hive.mapjoin.optimized.hashtable IS true, hive.vectorized.execution.mapjoin.native.enabled IS true, One MapJoin Condition IS true, No nullsafe IS true, Small table vectorizes IS true, Optimized Table and Supports Key Types IS true
@@ -422,6 +424,8 @@ STAGE PLANS:
                   0 _col0 (type: tinyint)
                   1 _col0 (type: tinyint)
                 Map Join Vectorization:
+                    bigTableKeyExpressions: col 0:tinyint
+                    bigTableValueExpressions: col 0:tinyint
                     className: VectorMapJoinOperator
                     native: false
                     nativeConditionsMet: hive.mapjoin.optimized.hashtable IS true, hive.vectorized.execution.mapjoin.native.enabled IS true, One MapJoin Condition IS true, No nullsafe IS true, Small table vectorizes IS true, Optimized Table and Supports Key Types IS true
@@ -669,6 +673,8 @@ STAGE PLANS:
                   0 _col1 (type: int)
                   1 _col0 (type: int)
                 Map Join Vectorization:
+                    bigTableKeyExpressions: col 2:int
+                    bigTableValueExpressions: col 0:tinyint
                     className: VectorMapJoinOperator
                     native: false
                     nativeConditionsMet: hive.mapjoin.optimized.hashtable IS true, hive.vectorized.execution.mapjoin.native.enabled IS true, One MapJoin Condition IS true, No nullsafe IS true, Small table vectorizes IS true, Optimized Table and Supports Key Types IS true
@@ -682,6 +688,8 @@ STAGE PLANS:
                     0 _col0 (type: tinyint)
                     1 _col0 (type: tinyint)
                   Map Join Vectorization:
+                      bigTableKeyExpressions: col 0:tinyint
+                      bigTableValueExpressions: col 0:tinyint
                       className: VectorMapJoinOperator
                       native: false
                       nativeConditionsMet: hive.mapjoin.optimized.hashtable IS true, hive.vectorized.execution.mapjoin.native.enabled IS true, One MapJoin Condition IS true, No nullsafe IS true, Small table vectorizes IS true, Optimized Table and Supports Key Types IS true

http://git-wip-us.apache.org/repos/asf/hive/blob/65cd866e/ql/src/test/results/clientpositive/vector_outer_join2.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/vector_outer_join2.q.out b/ql/src/test/results/clientpositive/vector_outer_join2.q.out
index bffc709..2fe0de3 100644
--- a/ql/src/test/results/clientpositive/vector_outer_join2.q.out
+++ b/ql/src/test/results/clientpositive/vector_outer_join2.q.out
@@ -313,6 +313,8 @@ STAGE PLANS:
                   0 _col0 (type: int)
                   1 _col0 (type: int)
                 Map Join Vectorization:
+                    bigTableKeyExpressions: col 2:int
+                    bigTableValueExpressions: col 3:bigint
                     className: VectorMapJoinOperator
                     native: false
                     nativeConditionsMet: hive.mapjoin.optimized.hashtable IS true, hive.vectorized.execution.mapjoin.native.enabled IS true, One MapJoin Condition IS true, No nullsafe IS true, Small table vectorizes IS true, Optimized Table and Supports Key Types IS true
@@ -326,6 +328,8 @@ STAGE PLANS:
                     0 _col1 (type: bigint)
                     1 _col0 (type: bigint)
                   Map Join Vectorization:
+                      bigTableKeyExpressions: col 0:bigint
+                      bigTableValueExpressions: col 0:bigint
                       className: VectorMapJoinOperator
                       native: false
                       nativeConditionsMet: hive.mapjoin.optimized.hashtable IS true, hive.vectorized.execution.mapjoin.native.enabled IS true, One MapJoin Condition IS true, No nullsafe IS true, Small table vectorizes IS true, Optimized Table and Supports Key Types IS true