Repository: hive
Updated Branches:
  refs/heads/master 857259ed0 -> 97f0513c4


http://git-wip-us.apache.org/repos/asf/hive/blob/97f0513c/ql/src/test/results/clientpositive/vector_case_when_1.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/vector_case_when_1.q.out 
b/ql/src/test/results/clientpositive/vector_case_when_1.q.out
index 270f5eb..9949de7 100644
--- a/ql/src/test/results/clientpositive/vector_case_when_1.q.out
+++ b/ql/src/test/results/clientpositive/vector_case_when_1.q.out
@@ -202,23 +202,44 @@ STAGE PLANS:
           TableScan
             alias: lineitem_test
             Statistics: Num rows: 101 Data size: 78500 Basic stats: COMPLETE 
Column stats: NONE
+            TableScan Vectorization:
+                native: true
+                vectorizationSchemaColumns: [0:l_orderkey:int, 
1:l_partkey:int, 2:l_suppkey:int, 3:l_linenumber:int, 4:l_quantity:int, 
5:l_extendedprice:double, 6:l_discount:double, 
7:l_tax:decimal(10,2)/DECIMAL_64, 8:l_returnflag:char(1), 
9:l_linestatus:char(1), 10:l_shipdate:date, 11:l_commitdate:date, 
12:l_receiptdate:date, 13:l_shipinstruct:varchar(20), 14:l_shipmode:char(10), 
15:l_comment:string, 
16:ROW__ID:struct<writeid:bigint,bucketid:int,rowid:bigint>]
             Select Operator
               expressions: l_quantity (type: int), CASE WHEN ((l_quantity = 
1)) THEN ('Single') WHEN ((l_quantity = 2)) THEN ('Two') WHEN ((l_quantity < 
10)) THEN ('Some') WHEN ((l_quantity < 100)) THEN ('Many') ELSE ('Huge number') 
END (type: string), CASE WHEN ((l_quantity = 1)) THEN ('Single') WHEN 
((l_quantity = 2)) THEN ('Two') WHEN ((l_quantity < 10)) THEN ('Some') WHEN 
((l_quantity < 100)) THEN ('Many') ELSE (null) END (type: string), CASE WHEN 
((l_quantity = 1)) THEN ('Single') WHEN ((l_quantity = 2)) THEN ('Two') WHEN 
((l_quantity < 10)) THEN ('Some') WHEN ((l_quantity < 100)) THEN (null) ELSE 
(null) END (type: string), if((l_shipmode = 'SHIP      '), date_add(l_shipdate, 
10), date_add(l_shipdate, 5)) (type: date), CASE WHEN ((l_returnflag = 'N')) 
THEN ((l_extendedprice * (1.0D - l_discount))) ELSE (0) END (type: double), 
CASE WHEN ((l_returnflag = 'N')) THEN ((l_extendedprice * (1.0D - l_discount))) 
ELSE (0.0D) END (type: double), if((CAST( l_shipinstruct AS STRING) = 'DEL
 IVER IN PERSON'), null, l_tax) (type: decimal(10,2)), if((CAST( l_shipinstruct 
AS STRING) = 'TAKE BACK RETURN'), l_tax, null) (type: decimal(10,2)), if((CAST( 
l_shipinstruct AS STRING) = 'DELIVER IN PERSON'), 0, l_tax) (type: 
decimal(12,2)), if((CAST( l_shipinstruct AS STRING) = 'TAKE BACK RETURN'), 
l_tax, 0) (type: decimal(12,2)), if((CAST( l_shipinstruct AS STRING) = 'DELIVER 
IN PERSON'), 0, l_tax) (type: decimal(10,2)), if((CAST( l_shipinstruct AS 
STRING) = 'TAKE BACK RETURN'), l_tax, 0) (type: decimal(10,2)), if((l_partkey > 
30), CAST( l_receiptdate AS TIMESTAMP), CAST( l_commitdate AS TIMESTAMP)) 
(type: timestamp), if((l_suppkey > 10000), datediff(l_receiptdate, 
l_commitdate), null) (type: int), if((l_suppkey > 10000), null, 
datediff(l_receiptdate, l_commitdate)) (type: int), if(((l_suppkey % 500) > 
100), DATE'2009-01-01', DATE'2009-12-31') (type: date)
               outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, 
_col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13, _col14, _col15, 
_col16
+              Select Vectorization:
+                  className: VectorSelectOperator
+                  native: true
+                  projectedOutputColumnNums: [4, 21, 22, 23, 20, 24, 25, 27, 
28, 29, 30, 31, 32, 35, 37, 38, 19]
+                  selectExpressions: VectorUDFAdaptor(CASE WHEN ((l_quantity = 
1)) THEN ('Single') WHEN ((l_quantity = 2)) THEN ('Two') WHEN ((l_quantity < 
10)) THEN ('Some') WHEN ((l_quantity < 100)) THEN ('Many') ELSE ('Huge number') 
END)(children: LongColEqualLongScalar(col 4:int, val 1) -> 17:boolean, 
LongColEqualLongScalar(col 4:int, val 2) -> 18:boolean, 
LongColLessLongScalar(col 4:int, val 10) -> 19:boolean, 
LongColLessLongScalar(col 4:int, val 100) -> 20:boolean) -> 21:string, 
VectorUDFAdaptor(CASE WHEN ((l_quantity = 1)) THEN ('Single') WHEN ((l_quantity 
= 2)) THEN ('Two') WHEN ((l_quantity < 10)) THEN ('Some') WHEN ((l_quantity < 
100)) THEN ('Many') ELSE (null) END)(children: LongColEqualLongScalar(col 
4:int, val 1) -> 17:boolean, LongColEqualLongScalar(col 4:int, val 2) -> 
18:boolean, LongColLessLongScalar(col 4:int, val 10) -> 19:boolean, 
LongColLessLongScalar(col 4:int, val 100) -> 20:boolean) -> 22:string, 
VectorUDFAdaptor(CASE WHEN ((l_quantity = 1)) THEN ('Single') W
 HEN ((l_quantity = 2)) THEN ('Two') WHEN ((l_quantity < 10)) THEN ('Some') 
WHEN ((l_quantity < 100)) THEN (null) ELSE (null) END)(children: 
LongColEqualLongScalar(col 4:int, val 1) -> 17:boolean, 
LongColEqualLongScalar(col 4:int, val 2) -> 18:boolean, 
LongColLessLongScalar(col 4:int, val 10) -> 19:boolean, 
LongColLessLongScalar(col 4:int, val 100) -> 20:boolean) -> 23:string, 
IfExprLongColumnLongColumn(col 17:boolean, col 18:date, col 19:date)(children: 
StringGroupColEqualCharScalar(col 14:char(10), val SHIP) -> 17:boolean, 
VectorUDFDateAddColScalar(col 10:date, val 10) -> 18:date, 
VectorUDFDateAddColScalar(col 10:date, val 5) -> 19:date) -> 20:date, 
VectorUDFAdaptor(CASE WHEN ((l_returnflag = 'N')) THEN ((l_extendedprice * 
(1.0D - l_discount))) ELSE (0) END)(children: StringGroupColEqualCharScalar(col 
8:char(1), val N) -> 17:boolean, DoubleColMultiplyDoubleColumn(col 5:double, 
col 24:double)(children: DoubleScalarSubtractDoubleColumn(val 1.0, col 
6:double) -> 24:double) -> 25:doubl
 e) -> 24:double, VectorUDFAdaptor(CASE WHEN ((l_returnflag = 'N')) THEN 
((l_extendedprice * (1.0D - l_discount))) ELSE (0.0D) END)(children: 
StringGroupColEqualCharScalar(col 8:char(1), val N) -> 17:boolean, 
DoubleColMultiplyDoubleColumn(col 5:double, col 25:double)(children: 
DoubleScalarSubtractDoubleColumn(val 1.0, col 6:double) -> 25:double) -> 
26:double) -> 25:double, VectorUDFAdaptor(if((CAST( l_shipinstruct AS STRING) = 
'DELIVER IN PERSON'), null, l_tax))(children: 
StringGroupColEqualStringScalar(col 13:string, val DELIVER IN PERSON)(children: 
col 13:varchar(20)) -> 17:boolean) -> 27:decimal(10,2), 
VectorUDFAdaptor(if((CAST( l_shipinstruct AS STRING) = 'TAKE BACK RETURN'), 
l_tax, null))(children: StringGroupColEqualStringScalar(col 13:string, val TAKE 
BACK RETURN)(children: col 13:varchar(20)) -> 17:boolean) -> 28:decimal(10,2), 
VectorUDFAdaptor(if((CAST( l_shipinstruct AS STRING) = 'DELIVER IN PERSON'), 0, 
l_tax))(children: StringGroupColEqualStringScalar(col 13:string, val D
 ELIVER IN PERSON)(children: col 13:varchar(20)) -> 17:boolean) -> 
29:decimal(12,2), VectorUDFAdaptor(if((CAST( l_shipinstruct AS STRING) = 'TAKE 
BACK RETURN'), l_tax, 0))(children: StringGroupColEqualStringScalar(col 
13:string, val TAKE BACK RETURN)(children: col 13:varchar(20)) -> 17:boolean) 
-> 30:decimal(12,2), IfExprDecimal64ScalarDecimal64Column(col 17:boolean, 
decimal64Val 0, decimalVal 0, col 7:decimal(10,2)/DECIMAL_64)(children: 
StringGroupColEqualStringScalar(col 13:string, val DELIVER IN PERSON)(children: 
col 13:varchar(20)) -> 17:boolean) -> 31:decimal(10,2)/DECIMAL_64, 
IfExprDecimal64ColumnDecimal64Scalar(col 18:boolean, col 
7:decimal(10,2)/DECIMAL_64, decimal64Val 0, decimalVal 0)(children: 
StringGroupColEqualStringScalar(col 13:string, val TAKE BACK RETURN)(children: 
col 13:varchar(20)) -> 18:boolean) -> 32:decimal(10,2)/DECIMAL_64, 
IfExprTimestampColumnColumn(col 19:boolean, col 33:timestampcol 
34:timestamp)(children: LongColGreaterLongScalar(col 1:int, val 30) -> 19:
 boolean, CastDateToTimestamp(col 12:date) -> 33:timestamp, 
CastDateToTimestamp(col 11:date) -> 34:timestamp) -> 35:timestamp, 
VectorUDFAdaptor(if((l_suppkey > 10000), datediff(l_receiptdate, l_commitdate), 
null))(children: LongColGreaterLongScalar(col 2:int, val 10000) -> 19:boolean, 
VectorUDFDateDiffColCol(col 12:date, col 11:date) -> 36:int) -> 37:int, 
VectorUDFAdaptor(if((l_suppkey > 10000), null, datediff(l_receiptdate, 
l_commitdate)))(children: LongColGreaterLongScalar(col 2:int, val 10000) -> 
19:boolean, VectorUDFDateDiffColCol(col 12:date, col 11:date) -> 36:int) -> 
38:int, IfExprLongScalarLongScalar(col 36:boolean, val 14245, val 
14609)(children: LongColGreaterLongScalar(col 19:int, val 100)(children: 
LongColModuloLongScalar(col 2:int, val 500) -> 19:int) -> 36:boolean) -> 19:date
               Statistics: Num rows: 101 Data size: 78500 Basic stats: COMPLETE 
Column stats: NONE
               File Output Operator
                 compressed: false
+                File Sink Vectorization:
+                    className: VectorFileSinkOperator
+                    native: false
                 Statistics: Num rows: 101 Data size: 78500 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: [DECIMAL_64]
+          featureSupportInUse: [DECIMAL_64]
           inputFileFormats: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
-          notVectorizedReason: SELECT operator: Unexpected hive type name void
-          vectorized: false
+          allNative: false
+          usesVectorUDFAdaptor: true
+          vectorized: true
+          rowBatchContext:
+              dataColumnCount: 16
+              includeColumns: [1, 2, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14]
+              dataColumns: l_orderkey:int, l_partkey:int, l_suppkey:int, 
l_linenumber:int, l_quantity:int, l_extendedprice:double, l_discount:double, 
l_tax:decimal(10,2)/DECIMAL_64, l_returnflag:char(1), l_linestatus:char(1), 
l_shipdate:date, l_commitdate:date, l_receiptdate:date, 
l_shipinstruct:varchar(20), l_shipmode:char(10), l_comment:string
+              partitionColumnCount: 0
+              scratchColumnTypeNames: [bigint, bigint, bigint, bigint, string, 
string, string, double, double, double, decimal(10,2), decimal(10,2), 
decimal(12,2), decimal(12,2), decimal(10,2)/DECIMAL_64, 
decimal(10,2)/DECIMAL_64, timestamp, timestamp, timestamp, bigint, bigint, 
bigint]
 
   Stage: Stage-0
     Fetch Operator
@@ -523,8 +544,8 @@ STAGE PLANS:
               Select Vectorization:
                   className: VectorSelectOperator
                   native: true
-                  projectedOutputColumnNums: [4, 22, 24, 25, 26, 27, 28, 30, 
31, 32, 33, 34, 36, 40, 42, 45, 46]
-                  selectExpressions: IfExprStringScalarStringGroupColumn(col 
17:boolean, val Singlecol 21:string)(children: LongColEqualLongScalar(col 
4:int, val 1) -> 17:boolean, IfExprStringScalarStringGroupColumn(col 
18:boolean, val Twocol 22:string)(children: LongColEqualLongScalar(col 4:int, 
val 2) -> 18:boolean, IfExprStringScalarStringGroupColumn(col 19:boolean, val 
Somecol 21:string)(children: LongColLessLongScalar(col 4:int, val 10) -> 
19:boolean, IfExprStringScalarStringScalar(col 20:boolean, val Many, val Huge 
number)(children: LongColLessLongScalar(col 4:int, val 100) -> 20:boolean) -> 
21:string) -> 22:string) -> 21:string) -> 22:string, 
IfExprStringScalarStringGroupColumn(col 17:boolean, val Singlecol 
23:string)(children: LongColEqualLongScalar(col 4:int, val 1) -> 17:boolean, 
IfExprStringScalarStringGroupColumn(col 18:boolean, val Twocol 
24:string)(children: LongColEqualLongScalar(col 4:int, val 2) -> 18:boolean, 
IfExprStringScalarStringGroupColumn(col 19:boolean, val 
 Somecol 23:string)(children: LongColLessLongScalar(col 4:int, val 10) -> 
19:boolean, IfExprColumnNull(col 20:boolean, col 21:string, null)(children: 
LongColLessLongScalar(col 4:int, val 100) -> 20:boolean, 
ConstantVectorExpression(val Many) -> 21:string) -> 23:string) -> 24:string) -> 
23:string) -> 24:string, IfExprStringScalarStringGroupColumn(col 17:boolean, 
val Singlecol 23:string)(children: LongColEqualLongScalar(col 4:int, val 1) -> 
17:boolean, IfExprStringScalarStringGroupColumn(col 18:boolean, val Twocol 
25:string)(children: LongColEqualLongScalar(col 4:int, val 2) -> 18:boolean, 
IfExprStringScalarStringGroupColumn(col 19:boolean, val Somecol 
23:string)(children: LongColLessLongScalar(col 4:int, val 10) -> 19:boolean, 
IfExprNullNull(null, null) -> 23:string) -> 25:string) -> 23:string) -> 
25:string, IfExprLongColumnLongColumn(col 17:boolean, col 18:date, col 
19:date)(children: StringGroupColEqualCharScalar(col 14:char(10), val SHIP) -> 
17:boolean, VectorUDFDateAddColScalar(co
 l 10:date, val 10) -> 18:date, VectorUDFDateAddColScalar(col 10:date, val 5) 
-> 19:date) -> 26:date, IfExprDoubleColumnLongScalar(col 17:boolean, col 
28:double, val 0)(children: StringGroupColEqualCharScalar(col 8:char(1), val N) 
-> 17:boolean, DoubleColMultiplyDoubleColumn(col 5:double, col 
27:double)(children: DoubleScalarSubtractDoubleColumn(val 1.0, col 6:double) -> 
27:double) -> 28:double) -> 27:double, IfExprDoubleColumnDoubleScalar(col 
17:boolean, col 29:double, val 0.0)(children: StringGroupColEqualCharScalar(col 
8:char(1), val N) -> 17:boolean, DoubleColMultiplyDoubleColumn(col 5:double, 
col 28:double)(children: DoubleScalarSubtractDoubleColumn(val 1.0, col 
6:double) -> 28:double) -> 29:double) -> 28:double, IfExprNullColumn(col 
17:boolean, null, col 48)(children: StringGroupColEqualStringScalar(col 
13:string, val DELIVER IN PERSON)(children: col 13:varchar(20)) -> 17:boolean, 
ConvertDecimal64ToDecimal(col 7:decimal(10,2)/DECIMAL_64) -> 48:decimal(10,2)) 
-> 30:decimal(10,2)
 , IfExprColumnNull(col 18:boolean, col 49:decimal(10,2), null)(children: 
StringGroupColEqualStringScalar(col 13:string, val TAKE BACK RETURN)(children: 
col 13:varchar(20)) -> 18:boolean, ConvertDecimal64ToDecimal(col 
7:decimal(10,2)/DECIMAL_64) -> 49:decimal(10,2)) -> 31:decimal(10,2), 
VectorUDFAdaptor(if((CAST( l_shipinstruct AS STRING) = 'DELIVER IN PERSON'), 0, 
l_tax))(children: StringGroupColEqualStringScalar(col 13:string, val DELIVER IN 
PERSON)(children: col 13:varchar(20)) -> 19:boolean) -> 32:decimal(12,2), 
VectorUDFAdaptor(if((CAST( l_shipinstruct AS STRING) = 'TAKE BACK RETURN'), 
l_tax, 0))(children: StringGroupColEqualStringScalar(col 13:string, val TAKE 
BACK RETURN)(children: col 13:varchar(20)) -> 19:boolean) -> 33:decimal(12,2), 
IfExprDecimal64ScalarDecimal64Column(col 19:boolean, decimal64Val 0, decimalVal 
0, col 7:decimal(1,0)/DECIMAL_64)(children: StringGroupColEqualStringScalar(col 
13:string, val DELIVER IN PERSON)(children: col 13:varchar(20)) -> 19:boolean) 
-> 34
 :decimal(10,2)/DECIMAL_64, IfExprDecimal64ColumnDecimal64Scalar(col 
35:boolean, col 7:decimal(10,2)/DECIMAL_64, decimal64Val 0, decimalVal 
0)(children: StringGroupColEqualStringScalar(col 13:string, val TAKE BACK 
RETURN)(children: col 13:varchar(20)) -> 35:boolean) -> 
36:decimal(10,2)/DECIMAL_64, IfExprTimestampColumnColumn(col 37:boolean, col 
38:timestampcol 39:timestamp)(children: LongColGreaterLongScalar(col 1:int, val 
30) -> 37:boolean, CastDateToTimestamp(col 12:date) -> 38:timestamp, 
CastDateToTimestamp(col 11:date) -> 39:timestamp) -> 40:timestamp, 
IfExprColumnNull(col 37:boolean, col 41:int, null)(children: 
LongColGreaterLongScalar(col 2:int, val 10000) -> 37:boolean, 
VectorUDFDateDiffColCol(col 12:date, col 11:date) -> 41:int) -> 42:int, 
IfExprNullColumn(col 43:boolean, null, col 44)(children: 
LongColGreaterLongScalar(col 2:int, val 10000) -> 43:boolean, 
VectorUDFDateDiffColCol(col 12:date, col 11:date) -> 44:int) -> 45:int, 
IfExprLongScalarLongScalar(col 47:boolean, val 14
 245, val 14609)(children: LongColGreaterLongScalar(col 46:int, val 
100)(children: LongColModuloLongScalar(col 2:int, val 500) -> 46:int) -> 
47:boolean) -> 46:date
+                  projectedOutputColumnNums: [4, 22, 24, 25, 26, 29, 27, 30, 
31, 32, 33, 34, 36, 40, 42, 45, 46]
+                  selectExpressions: IfExprStringScalarStringGroupColumn(col 
17:boolean, val Singlecol 21:string)(children: LongColEqualLongScalar(col 
4:int, val 1) -> 17:boolean, IfExprStringScalarStringGroupColumn(col 
18:boolean, val Twocol 22:string)(children: LongColEqualLongScalar(col 4:int, 
val 2) -> 18:boolean, IfExprStringScalarStringGroupColumn(col 19:boolean, val 
Somecol 21:string)(children: LongColLessLongScalar(col 4:int, val 10) -> 
19:boolean, IfExprStringScalarStringScalar(col 20:boolean, val Many, val Huge 
number)(children: LongColLessLongScalar(col 4:int, val 100) -> 20:boolean) -> 
21:string) -> 22:string) -> 21:string) -> 22:string, 
IfExprStringScalarStringGroupColumn(col 17:boolean, val Singlecol 
23:string)(children: LongColEqualLongScalar(col 4:int, val 1) -> 17:boolean, 
IfExprStringScalarStringGroupColumn(col 18:boolean, val Twocol 
24:string)(children: LongColEqualLongScalar(col 4:int, val 2) -> 18:boolean, 
IfExprStringScalarStringGroupColumn(col 19:boolean, val 
 Somecol 23:string)(children: LongColLessLongScalar(col 4:int, val 10) -> 
19:boolean, IfExprColumnNull(col 20:boolean, col 21:string, null)(children: 
LongColLessLongScalar(col 4:int, val 100) -> 20:boolean, 
ConstantVectorExpression(val Many) -> 21:string) -> 23:string) -> 24:string) -> 
23:string) -> 24:string, IfExprStringScalarStringGroupColumn(col 17:boolean, 
val Singlecol 23:string)(children: LongColEqualLongScalar(col 4:int, val 1) -> 
17:boolean, IfExprStringScalarStringGroupColumn(col 18:boolean, val Twocol 
25:string)(children: LongColEqualLongScalar(col 4:int, val 2) -> 18:boolean, 
IfExprStringScalarStringGroupColumn(col 19:boolean, val Somecol 
23:string)(children: LongColLessLongScalar(col 4:int, val 10) -> 19:boolean, 
IfExprNullNull(null, null) -> 23:string) -> 25:string) -> 23:string) -> 
25:string, IfExprLongColumnLongColumn(col 17:boolean, col 18:date, col 
19:date)(children: StringGroupColEqualCharScalar(col 14:char(10), val SHIP) -> 
17:boolean, VectorUDFDateAddColScalar(co
 l 10:date, val 10) -> 18:date, VectorUDFDateAddColScalar(col 10:date, val 5) 
-> 19:date) -> 26:date, IfExprDoubleColumnDoubleColumn(col 17:boolean, col 
28:doublecol 27:double)(children: StringGroupColEqualCharScalar(col 8:char(1), 
val N) -> 17:boolean, DoubleColMultiplyDoubleColumn(col 5:double, col 
27:double)(children: DoubleScalarSubtractDoubleColumn(val 1.0, col 6:double) -> 
27:double) -> 28:double, ConstantVectorExpression(val 0.0) -> 27:double) -> 
29:double, IfExprDoubleColumnDoubleScalar(col 17:boolean, col 28:double, val 
0.0)(children: StringGroupColEqualCharScalar(col 8:char(1), val N) -> 
17:boolean, DoubleColMultiplyDoubleColumn(col 5:double, col 
27:double)(children: DoubleScalarSubtractDoubleColumn(val 1.0, col 6:double) -> 
27:double) -> 28:double) -> 27:double, IfExprNullColumn(col 17:boolean, null, 
col 48)(children: StringGroupColEqualStringScalar(col 13:string, val DELIVER IN 
PERSON)(children: col 13:varchar(20)) -> 17:boolean, 
ConvertDecimal64ToDecimal(col 7:decimal(10
 ,2)/DECIMAL_64) -> 48:decimal(10,2)) -> 30:decimal(10,2), IfExprColumnNull(col 
18:boolean, col 49:decimal(10,2), null)(children: 
StringGroupColEqualStringScalar(col 13:string, val TAKE BACK RETURN)(children: 
col 13:varchar(20)) -> 18:boolean, ConvertDecimal64ToDecimal(col 
7:decimal(10,2)/DECIMAL_64) -> 49:decimal(10,2)) -> 31:decimal(10,2), 
VectorUDFAdaptor(if((CAST( l_shipinstruct AS STRING) = 'DELIVER IN PERSON'), 0, 
l_tax))(children: StringGroupColEqualStringScalar(col 13:string, val DELIVER IN 
PERSON)(children: col 13:varchar(20)) -> 19:boolean) -> 32:decimal(12,2), 
VectorUDFAdaptor(if((CAST( l_shipinstruct AS STRING) = 'TAKE BACK RETURN'), 
l_tax, 0))(children: StringGroupColEqualStringScalar(col 13:string, val TAKE 
BACK RETURN)(children: col 13:varchar(20)) -> 19:boolean) -> 33:decimal(12,2), 
IfExprDecimal64ScalarDecimal64Column(col 19:boolean, decimal64Val 0, decimalVal 
0, col 7:decimal(10,2)/DECIMAL_64)(children: 
StringGroupColEqualStringScalar(col 13:string, val DELIVER IN P
 ERSON)(children: col 13:varchar(20)) -> 19:boolean) -> 
34:decimal(10,2)/DECIMAL_64, IfExprDecimal64ColumnDecimal64Scalar(col 
35:boolean, col 7:decimal(10,2)/DECIMAL_64, decimal64Val 0, decimalVal 
0)(children: StringGroupColEqualStringScalar(col 13:string, val TAKE BACK 
RETURN)(children: col 13:varchar(20)) -> 35:boolean) -> 
36:decimal(10,2)/DECIMAL_64, IfExprTimestampColumnColumn(col 37:boolean, col 
38:timestampcol 39:timestamp)(children: LongColGreaterLongScalar(col 1:int, val 
30) -> 37:boolean, CastDateToTimestamp(col 12:date) -> 38:timestamp, 
CastDateToTimestamp(col 11:date) -> 39:timestamp) -> 40:timestamp, 
IfExprColumnNull(col 37:boolean, col 41:int, null)(children: 
LongColGreaterLongScalar(col 2:int, val 10000) -> 37:boolean, 
VectorUDFDateDiffColCol(col 12:date, col 11:date) -> 41:int) -> 42:int, 
IfExprNullColumn(col 43:boolean, null, col 44)(children: 
LongColGreaterLongScalar(col 2:int, val 10000) -> 43:boolean, 
VectorUDFDateDiffColCol(col 12:date, col 11:date) -> 44:int) -> 
 45:int, IfExprLongScalarLongScalar(col 47:boolean, val 14245, val 
14609)(children: LongColGreaterLongScalar(col 46:int, val 100)(children: 
LongColModuloLongScalar(col 2:int, val 500) -> 46:int) -> 47:boolean) -> 46:date
               Statistics: Num rows: 101 Data size: 78500 Basic stats: COMPLETE 
Column stats: NONE
               File Output Operator
                 compressed: false
@@ -856,8 +877,8 @@ STAGE PLANS:
               Select Vectorization:
                   className: VectorSelectOperator
                   native: true
-                  projectedOutputColumnNums: [4, 27, 38, 48, 52, 54, 60, 62, 
64, 66, 67, 68, 70, 74, 77, 80, 81]
-                  selectExpressions: IfExprColumnCondExpr(col 17:boolean, col 
18:stringcol 26:string)(children: LongColEqualLongScalar(col 4:int, val 1) -> 
17:boolean, ConstantVectorExpression(val Single) -> 18:string, 
IfExprColumnCondExpr(col 19:boolean, col 20:stringcol 25:string)(children: 
LongColEqualLongScalar(col 4:int, val 2) -> 19:boolean, 
ConstantVectorExpression(val Two) -> 20:string, IfExprColumnCondExpr(col 
21:boolean, col 22:stringcol 24:string)(children: LongColLessLongScalar(col 
4:int, val 10) -> 21:boolean, ConstantVectorExpression(val Some) -> 22:string, 
IfExprStringScalarStringScalar(col 23:boolean, val Many, val Huge 
number)(children: LongColLessLongScalar(col 4:int, val 100) -> 23:boolean) -> 
24:string) -> 25:string) -> 26:string) -> 27:string, IfExprColumnCondExpr(col 
23:boolean, col 28:stringcol 37:string)(children: LongColEqualLongScalar(col 
4:int, val 1) -> 23:boolean, ConstantVectorExpression(val Single) -> 28:string, 
IfExprColumnCondExpr(col 29:boolean, col
  30:stringcol 36:string)(children: LongColEqualLongScalar(col 4:int, val 2) -> 
29:boolean, ConstantVectorExpression(val Two) -> 30:string, 
IfExprColumnCondExpr(col 31:boolean, col 32:stringcol 35:string)(children: 
LongColLessLongScalar(col 4:int, val 10) -> 31:boolean, 
ConstantVectorExpression(val Some) -> 32:string, IfExprColumnNull(col 
33:boolean, col 34:string, null)(children: LongColLessLongScalar(col 4:int, val 
100) -> 33:boolean, ConstantVectorExpression(val Many) -> 34:string) -> 
35:string) -> 36:string) -> 37:string) -> 38:string, IfExprColumnCondExpr(col 
39:boolean, col 40:stringcol 47:string)(children: LongColEqualLongScalar(col 
4:int, val 1) -> 39:boolean, ConstantVectorExpression(val Single) -> 40:string, 
IfExprColumnCondExpr(col 41:boolean, col 42:stringcol 46:string)(children: 
LongColEqualLongScalar(col 4:int, val 2) -> 41:boolean, 
ConstantVectorExpression(val Two) -> 42:string, IfExprColumnCondExpr(col 
43:boolean, col 44:stringcol 45:string)(children: LongColLessLongS
 calar(col 4:int, val 10) -> 43:boolean, ConstantVectorExpression(val Some) -> 
44:string, IfExprNullNull(null, null) -> 45:string) -> 46:string) -> 47:string) 
-> 48:string, IfExprCondExprCondExpr(col 49:boolean, col 50:datecol 
51:date)(children: StringGroupColEqualCharScalar(col 14:char(10), val SHIP) -> 
49:boolean, VectorUDFDateAddColScalar(col 10:date, val 10) -> 50:date, 
VectorUDFDateAddColScalar(col 10:date, val 5) -> 51:date) -> 52:date, 
IfExprDoubleColumnLongScalar(col 57:boolean, col 58:double, val 0)(children: 
StringGroupColEqualCharScalar(col 8:char(1), val N) -> 57:boolean, 
DoubleColMultiplyDoubleColumn(col 5:double, col 54:double)(children: 
DoubleScalarSubtractDoubleColumn(val 1.0, col 6:double) -> 54:double) -> 
58:double) -> 54:double, IfExprCondExprColumn(col 57:boolean, col 59:double, 
col 58:double)(children: StringGroupColEqualCharScalar(col 8:char(1), val N) -> 
57:boolean, DoubleColMultiplyDoubleColumn(col 5:double, col 
58:double)(children: DoubleScalarSubtractDoubleC
 olumn(val 1.0, col 6:double) -> 58:double) -> 59:double, 
ConstantVectorExpression(val 0.0) -> 58:double) -> 60:double, 
IfExprNullColumn(col 61:boolean, null, col 83)(children: 
StringGroupColEqualStringScalar(col 13:string, val DELIVER IN PERSON)(children: 
col 13:varchar(20)) -> 61:boolean, ConvertDecimal64ToDecimal(col 
7:decimal(10,2)/DECIMAL_64) -> 83:decimal(10,2)) -> 62:decimal(10,2), 
IfExprColumnNull(col 63:boolean, col 84:decimal(10,2), null)(children: 
StringGroupColEqualStringScalar(col 13:string, val TAKE BACK RETURN)(children: 
col 13:varchar(20)) -> 63:boolean, ConvertDecimal64ToDecimal(col 
7:decimal(10,2)/DECIMAL_64) -> 84:decimal(10,2)) -> 64:decimal(10,2), 
VectorUDFAdaptor(if((CAST( l_shipinstruct AS STRING) = 'DELIVER IN PERSON'), 0, 
l_tax))(children: StringGroupColEqualStringScalar(col 13:string, val DELIVER IN 
PERSON)(children: col 13:varchar(20)) -> 65:boolean) -> 66:decimal(12,2), 
VectorUDFAdaptor(if((CAST( l_shipinstruct AS STRING) = 'TAKE BACK RETURN'), 
l_tax, 0))(
 children: StringGroupColEqualStringScalar(col 13:string, val TAKE BACK 
RETURN)(children: col 13:varchar(20)) -> 65:boolean) -> 67:decimal(12,2), 
IfExprDecimal64ScalarDecimal64Column(col 65:boolean, decimal64Val 0, decimalVal 
0, col 7:decimal(1,0)/DECIMAL_64)(children: StringGroupColEqualStringScalar(col 
13:string, val DELIVER IN PERSON)(children: col 13:varchar(20)) -> 65:boolean) 
-> 68:decimal(10,2)/DECIMAL_64, IfExprDecimal64ColumnDecimal64Scalar(col 
69:boolean, col 7:decimal(10,2)/DECIMAL_64, decimal64Val 0, decimalVal 
0)(children: StringGroupColEqualStringScalar(col 13:string, val TAKE BACK 
RETURN)(children: col 13:varchar(20)) -> 69:boolean) -> 
70:decimal(10,2)/DECIMAL_64, IfExprCondExprCondExpr(col 71:boolean, col 
72:timestampcol 73:timestamp)(children: LongColGreaterLongScalar(col 1:int, val 
30) -> 71:boolean, CastDateToTimestamp(col 12:date) -> 72:timestamp, 
CastDateToTimestamp(col 11:date) -> 73:timestamp) -> 74:timestamp, 
IfExprCondExprNull(col 75:boolean, col 76:int, null
 )(children: LongColGreaterLongScalar(col 2:int, val 10000) -> 75:boolean, 
VectorUDFDateDiffColCol(col 12:date, col 11:date) -> 76:int) -> 77:int, 
IfExprNullCondExpr(col 78:boolean, null, col 79:int)(children: 
LongColGreaterLongScalar(col 2:int, val 10000) -> 78:boolean, 
VectorUDFDateDiffColCol(col 12:date, col 11:date) -> 79:int) -> 80:int, 
IfExprLongScalarLongScalar(col 82:boolean, val 14245, val 14609)(children: 
LongColGreaterLongScalar(col 81:int, val 100)(children: 
LongColModuloLongScalar(col 2:int, val 500) -> 81:int) -> 82:boolean) -> 81:date
+                  projectedOutputColumnNums: [4, 27, 38, 48, 52, 56, 60, 62, 
64, 69, 73, 74, 76, 80, 83, 86, 87]
+                  selectExpressions: IfExprColumnCondExpr(col 17:boolean, col 
18:stringcol 26:string)(children: LongColEqualLongScalar(col 4:int, val 1) -> 
17:boolean, ConstantVectorExpression(val Single) -> 18:string, 
IfExprColumnCondExpr(col 19:boolean, col 20:stringcol 25:string)(children: 
LongColEqualLongScalar(col 4:int, val 2) -> 19:boolean, 
ConstantVectorExpression(val Two) -> 20:string, IfExprColumnCondExpr(col 
21:boolean, col 22:stringcol 24:string)(children: LongColLessLongScalar(col 
4:int, val 10) -> 21:boolean, ConstantVectorExpression(val Some) -> 22:string, 
IfExprStringScalarStringScalar(col 23:boolean, val Many, val Huge 
number)(children: LongColLessLongScalar(col 4:int, val 100) -> 23:boolean) -> 
24:string) -> 25:string) -> 26:string) -> 27:string, IfExprColumnCondExpr(col 
23:boolean, col 28:stringcol 37:string)(children: LongColEqualLongScalar(col 
4:int, val 1) -> 23:boolean, ConstantVectorExpression(val Single) -> 28:string, 
IfExprColumnCondExpr(col 29:boolean, col
  30:stringcol 36:string)(children: LongColEqualLongScalar(col 4:int, val 2) -> 
29:boolean, ConstantVectorExpression(val Two) -> 30:string, 
IfExprColumnCondExpr(col 31:boolean, col 32:stringcol 35:string)(children: 
LongColLessLongScalar(col 4:int, val 10) -> 31:boolean, 
ConstantVectorExpression(val Some) -> 32:string, IfExprColumnNull(col 
33:boolean, col 34:string, null)(children: LongColLessLongScalar(col 4:int, val 
100) -> 33:boolean, ConstantVectorExpression(val Many) -> 34:string) -> 
35:string) -> 36:string) -> 37:string) -> 38:string, IfExprColumnCondExpr(col 
39:boolean, col 40:stringcol 47:string)(children: LongColEqualLongScalar(col 
4:int, val 1) -> 39:boolean, ConstantVectorExpression(val Single) -> 40:string, 
IfExprColumnCondExpr(col 41:boolean, col 42:stringcol 46:string)(children: 
LongColEqualLongScalar(col 4:int, val 2) -> 41:boolean, 
ConstantVectorExpression(val Two) -> 42:string, IfExprColumnCondExpr(col 
43:boolean, col 44:stringcol 45:string)(children: LongColLessLongS
 calar(col 4:int, val 10) -> 43:boolean, ConstantVectorExpression(val Some) -> 
44:string, IfExprNullNull(null, null) -> 45:string) -> 46:string) -> 47:string) 
-> 48:string, IfExprCondExprCondExpr(col 49:boolean, col 50:datecol 
51:date)(children: StringGroupColEqualCharScalar(col 14:char(10), val SHIP) -> 
49:boolean, VectorUDFDateAddColScalar(col 10:date, val 10) -> 50:date, 
VectorUDFDateAddColScalar(col 10:date, val 5) -> 51:date) -> 52:date, 
IfExprCondExprCondExpr(col 53:boolean, col 55:doublecol 54:double)(children: 
StringGroupColEqualCharScalar(col 8:char(1), val N) -> 53:boolean, 
DoubleColMultiplyDoubleColumn(col 5:double, col 54:double)(children: 
DoubleScalarSubtractDoubleColumn(val 1.0, col 6:double) -> 54:double) -> 
55:double, ConstantVectorExpression(val 0.0) -> 54:double) -> 56:double, 
IfExprCondExprColumn(col 57:boolean, col 59:double, col 58:double)(children: 
StringGroupColEqualCharScalar(col 8:char(1), val N) -> 57:boolean, 
DoubleColMultiplyDoubleColumn(col 5:double, col 
 58:double)(children: DoubleScalarSubtractDoubleColumn(val 1.0, col 6:double) 
-> 58:double) -> 59:double, ConstantVectorExpression(val 0.0) -> 58:double) -> 
60:double, IfExprNullColumn(col 61:boolean, null, col 89)(children: 
StringGroupColEqualStringScalar(col 13:string, val DELIVER IN PERSON)(children: 
col 13:varchar(20)) -> 61:boolean, ConvertDecimal64ToDecimal(col 
7:decimal(10,2)/DECIMAL_64) -> 89:decimal(10,2)) -> 62:decimal(10,2), 
IfExprColumnNull(col 63:boolean, col 90:decimal(10,2), null)(children: 
StringGroupColEqualStringScalar(col 13:string, val TAKE BACK RETURN)(children: 
col 13:varchar(20)) -> 63:boolean, ConvertDecimal64ToDecimal(col 
7:decimal(10,2)/DECIMAL_64) -> 90:decimal(10,2)) -> 64:decimal(10,2), 
VectorUDFAdaptor(if((CAST( l_shipinstruct AS STRING) = 'DELIVER IN PERSON'), 0, 
l_tax))(children: StringGroupColEqualStringScalar(col 13:string, val DELIVER IN 
PERSON)(children: col 13:varchar(20)) -> 68:boolean) -> 69:decimal(12,2), 
VectorUDFAdaptor(if((CAST( l_shipinstru
 ct AS STRING) = 'TAKE BACK RETURN'), l_tax, 0))(children: 
StringGroupColEqualStringScalar(col 13:string, val TAKE BACK RETURN)(children: 
col 13:varchar(20)) -> 72:boolean) -> 73:decimal(12,2), 
IfExprDecimal64ScalarDecimal64Column(col 72:boolean, decimal64Val 0, decimalVal 
0, col 7:decimal(10,2)/DECIMAL_64)(children: 
StringGroupColEqualStringScalar(col 13:string, val DELIVER IN PERSON)(children: 
col 13:varchar(20)) -> 72:boolean) -> 74:decimal(10,2)/DECIMAL_64, 
IfExprDecimal64ColumnDecimal64Scalar(col 75:boolean, col 
7:decimal(10,2)/DECIMAL_64, decimal64Val 0, decimalVal 0)(children: 
StringGroupColEqualStringScalar(col 13:string, val TAKE BACK RETURN)(children: 
col 13:varchar(20)) -> 75:boolean) -> 76:decimal(10,2)/DECIMAL_64, 
IfExprCondExprCondExpr(col 77:boolean, col 78:timestampcol 
79:timestamp)(children: LongColGreaterLongScalar(col 1:int, val 30) -> 
77:boolean, CastDateToTimestamp(col 12:date) -> 78:timestamp, 
CastDateToTimestamp(col 11:date) -> 79:timestamp) -> 80:timestamp, If
 ExprCondExprNull(col 81:boolean, col 82:int, null)(children: 
LongColGreaterLongScalar(col 2:int, val 10000) -> 81:boolean, 
VectorUDFDateDiffColCol(col 12:date, col 11:date) -> 82:int) -> 83:int, 
IfExprNullCondExpr(col 84:boolean, null, col 85:int)(children: 
LongColGreaterLongScalar(col 2:int, val 10000) -> 84:boolean, 
VectorUDFDateDiffColCol(col 12:date, col 11:date) -> 85:int) -> 86:int, 
IfExprLongScalarLongScalar(col 88:boolean, val 14245, val 14609)(children: 
LongColGreaterLongScalar(col 87:int, val 100)(children: 
LongColModuloLongScalar(col 2:int, val 500) -> 87:int) -> 88:boolean) -> 87:date
               Statistics: Num rows: 101 Data size: 78500 Basic stats: COMPLETE 
Column stats: NONE
               File Output Operator
                 compressed: false
@@ -884,7 +905,7 @@ STAGE PLANS:
               includeColumns: [1, 2, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14]
               dataColumns: l_orderkey:int, l_partkey:int, l_suppkey:int, 
l_linenumber:int, l_quantity:int, l_extendedprice:double, l_discount:double, 
l_tax:decimal(10,2)/DECIMAL_64, l_returnflag:char(1), l_linestatus:char(1), 
l_shipdate:date, l_commitdate:date, l_receiptdate:date, 
l_shipinstruct:varchar(20), l_shipmode:char(10), l_comment:string
               partitionColumnCount: 0
-              scratchColumnTypeNames: [bigint, string, bigint, string, bigint, 
string, bigint, string, string, string, string, string, bigint, string, bigint, 
string, bigint, string, string, string, string, string, bigint, string, bigint, 
string, bigint, string, string, string, string, string, bigint, bigint, bigint, 
bigint, bigint, double, double, bigint, bigint, double, double, double, bigint, 
decimal(10,2), bigint, decimal(10,2), bigint, decimal(12,2), decimal(12,2), 
decimal(10,2)/DECIMAL_64, bigint, decimal(10,2)/DECIMAL_64, bigint, timestamp, 
timestamp, timestamp, bigint, bigint, bigint, bigint, bigint, bigint, bigint, 
bigint, decimal(10,2), decimal(10,2)]
+              scratchColumnTypeNames: [bigint, string, bigint, string, bigint, 
string, bigint, string, string, string, string, string, bigint, string, bigint, 
string, bigint, string, string, string, string, string, bigint, string, bigint, 
string, bigint, string, string, string, string, string, bigint, bigint, bigint, 
bigint, bigint, double, double, double, bigint, double, double, double, bigint, 
decimal(10,2), bigint, decimal(10,2), bigint, bigint, decimal(12,2), bigint, 
decimal(12,2), decimal(12,2), bigint, bigint, decimal(12,2), 
decimal(10,2)/DECIMAL_64, bigint, decimal(10,2)/DECIMAL_64, bigint, timestamp, 
timestamp, timestamp, bigint, bigint, bigint, bigint, bigint, bigint, bigint, 
bigint, decimal(10,2), decimal(10,2)]
 
   Stage: Stage-0
     Fetch Operator

http://git-wip-us.apache.org/repos/asf/hive/blob/97f0513c/ql/src/test/results/clientpositive/vector_case_when_2.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/vector_case_when_2.q.out 
b/ql/src/test/results/clientpositive/vector_case_when_2.q.out
index 784abdd..53b47a7 100644
--- a/ql/src/test/results/clientpositive/vector_case_when_2.q.out
+++ b/ql/src/test/results/clientpositive/vector_case_when_2.q.out
@@ -134,21 +134,44 @@ STAGE PLANS:
           TableScan
             alias: timestamps
             Statistics: Num rows: 51 Data size: 12300 Basic stats: COMPLETE 
Column stats: NONE
+            TableScan Vectorization:
+                native: true
+                vectorizationSchemaColumns: [0:cdate:date, 
1:ctimestamp1:timestamp, 2:stimestamp1:string, 3:ctimestamp2:timestamp, 
4:ROW__ID:struct<writeid:bigint,bucketid:int,rowid:bigint>]
             Select Operator
               expressions: ctimestamp1 (type: timestamp), ctimestamp2 (type: 
timestamp), CASE WHEN ((ctimestamp2 <= TIMESTAMP'1800-12-31 00:00:00')) THEN 
('1800s or Earlier') WHEN ((ctimestamp2 < TIMESTAMP'1900-01-01 00:00:00')) THEN 
('1900s') WHEN (ctimestamp2 BETWEEN TIMESTAMP'2006-01-01 00:00:00' AND 
TIMESTAMP'2010-12-31 23:59:59.999999999') THEN ('Late 2000s') WHEN 
((ctimestamp2 <= TIMESTAMP'2015-12-31 23:59:59.999999999')) THEN ('Early 
2010s') ELSE ('Unknown') END (type: string), CASE WHEN ((ctimestamp2 <= 
TIMESTAMP'2000-12-31 23:59:59.999999999')) THEN ('Old') WHEN ((ctimestamp2 < 
TIMESTAMP'2006-01-01 00:00:00')) THEN ('Early 2000s') WHEN (ctimestamp2 BETWEEN 
TIMESTAMP'2006-01-01 00:00:00' AND TIMESTAMP'2010-12-31 23:59:59.999999999') 
THEN ('Late 2000s') WHEN ((ctimestamp2 <= TIMESTAMP'2015-12-31 
23:59:59.999999999')) THEN ('Early 2010s') ELSE (null) END (type: string), CASE 
WHEN ((ctimestamp2 <= TIMESTAMP'2000-12-31 23:59:59.999999999')) THEN ('Old') 
WHEN ((ctimestamp2 < TIME
 STAMP'2006-01-01 00:00:00')) THEN ('Early 2000s') WHEN (ctimestamp2 BETWEEN 
TIMESTAMP'2006-01-01 00:00:00' AND TIMESTAMP'2010-12-31 23:59:59.999999999') 
THEN ('Late 2000s') WHEN ((ctimestamp2 <= TIMESTAMP'2015-12-31 
23:59:59.999999999')) THEN (null) ELSE (null) END (type: string), 
if((ctimestamp1 < TIMESTAMP'1974-10-04 17:21:03.989'), year(ctimestamp1), 
year(ctimestamp2)) (type: int), CASE WHEN ((stimestamp1 like '%19%')) THEN 
(stimestamp1) ELSE (TIMESTAMP'2018-03-08 23:04:59') END (type: string), 
if((ctimestamp1 = TIMESTAMP'2021-09-24 03:18:32.413655165'), null, 
minute(ctimestamp1)) (type: int), if(((ctimestamp2 >= TIMESTAMP'5344-10-04 
18:40:08.165') and (ctimestamp2 < TIMESTAMP'6631-11-13 16:31:29.702202248')), 
minute(ctimestamp1), null) (type: int), if(((UDFToDouble(ctimestamp1) % 500.0D) 
> 100.0D), date_add(cdate, 1), date_add(cdate, 365)) (type: date), stimestamp1 
(type: string)
               outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, 
_col6, _col7, _col8, _col9, _col10
+              Select Vectorization:
+                  className: VectorSelectOperator
+                  native: true
+                  projectedOutputColumnNums: [1, 3, 9, 10, 11, 8, 12, 7, 6, 
17, 2]
+                  selectExpressions: VectorUDFAdaptor(CASE WHEN ((ctimestamp2 
<= TIMESTAMP'1800-12-31 00:00:00')) THEN ('1800s or Earlier') WHEN 
((ctimestamp2 < TIMESTAMP'1900-01-01 00:00:00')) THEN ('1900s') WHEN 
(ctimestamp2 BETWEEN TIMESTAMP'2006-01-01 00:00:00' AND TIMESTAMP'2010-12-31 
23:59:59.999999999') THEN ('Late 2000s') WHEN ((ctimestamp2 <= 
TIMESTAMP'2015-12-31 23:59:59.999999999')) THEN ('Early 2010s') ELSE 
('Unknown') END)(children: TimestampColLessEqualTimestampScalar(col 
3:timestamp, val 1800-12-31 00:00:00) -> 5:boolean, 
TimestampColLessTimestampScalar(col 3:timestamp, val 1900-01-01 00:00:00) -> 
6:boolean, TimestampColumnBetween(col 3:timestamp, left 2005-12-31 16:00:00.0, 
right 2010-12-31 15:59:59.999999999) -> 7:boolean, 
TimestampColLessEqualTimestampScalar(col 3:timestamp, val 2015-12-31 
23:59:59.999999999) -> 8:boolean) -> 9:string, VectorUDFAdaptor(CASE WHEN 
((ctimestamp2 <= TIMESTAMP'2000-12-31 23:59:59.999999999')) THEN ('Old') WHEN 
((ctimestamp2 < TIMESTAMP'
 2006-01-01 00:00:00')) THEN ('Early 2000s') WHEN (ctimestamp2 BETWEEN 
TIMESTAMP'2006-01-01 00:00:00' AND TIMESTAMP'2010-12-31 23:59:59.999999999') 
THEN ('Late 2000s') WHEN ((ctimestamp2 <= TIMESTAMP'2015-12-31 
23:59:59.999999999')) THEN ('Early 2010s') ELSE (null) END)(children: 
TimestampColLessEqualTimestampScalar(col 3:timestamp, val 2000-12-31 
23:59:59.999999999) -> 5:boolean, TimestampColLessTimestampScalar(col 
3:timestamp, val 2006-01-01 00:00:00) -> 6:boolean, TimestampColumnBetween(col 
3:timestamp, left 2005-12-31 16:00:00.0, right 2010-12-31 15:59:59.999999999) 
-> 7:boolean, TimestampColLessEqualTimestampScalar(col 3:timestamp, val 
2015-12-31 23:59:59.999999999) -> 8:boolean) -> 10:string, 
VectorUDFAdaptor(CASE WHEN ((ctimestamp2 <= TIMESTAMP'2000-12-31 
23:59:59.999999999')) THEN ('Old') WHEN ((ctimestamp2 < TIMESTAMP'2006-01-01 
00:00:00')) THEN ('Early 2000s') WHEN (ctimestamp2 BETWEEN TIMESTAMP'2006-01-01 
00:00:00' AND TIMESTAMP'2010-12-31 23:59:59.999999999') THEN ('Late 
 2000s') WHEN ((ctimestamp2 <= TIMESTAMP'2015-12-31 23:59:59.999999999')) THEN 
(null) ELSE (null) END)(children: TimestampColLessEqualTimestampScalar(col 
3:timestamp, val 2000-12-31 23:59:59.999999999) -> 5:boolean, 
TimestampColLessTimestampScalar(col 3:timestamp, val 2006-01-01 00:00:00) -> 
6:boolean, TimestampColumnBetween(col 3:timestamp, left 2005-12-31 16:00:00.0, 
right 2010-12-31 15:59:59.999999999) -> 7:boolean, 
TimestampColLessEqualTimestampScalar(col 3:timestamp, val 2015-12-31 
23:59:59.999999999) -> 8:boolean) -> 11:string, IfExprLongColumnLongColumn(col 
5:boolean, col 6:int, col 7:int)(children: TimestampColLessTimestampScalar(col 
1:timestamp, val 1974-10-04 17:21:03.989) -> 5:boolean, 
VectorUDFYearTimestamp(col 1:timestamp, field YEAR) -> 6:int, 
VectorUDFYearTimestamp(col 3:timestamp, field YEAR) -> 7:int) -> 8:int, 
VectorUDFAdaptor(CASE WHEN ((stimestamp1 like '%19%')) THEN (stimestamp1) ELSE 
(TIMESTAMP'2018-03-08 23:04:59') END)(children: SelectStringColLikeStringScalar
 (col 2:string) -> 5:boolean) -> 12:string, VectorUDFAdaptor(if((ctimestamp1 = 
TIMESTAMP'2021-09-24 03:18:32.413655165'), null, 
minute(ctimestamp1)))(children: TimestampColEqualTimestampScalar(col 
1:timestamp, val 2021-09-24 03:18:32.413655165) -> 5:boolean, 
VectorUDFMinuteTimestamp(col 1:timestamp, field MINUTE) -> 6:int) -> 7:int, 
VectorUDFAdaptor(if(((ctimestamp2 >= TIMESTAMP'5344-10-04 18:40:08.165') and 
(ctimestamp2 < TIMESTAMP'6631-11-13 16:31:29.702202248')), minute(ctimestamp1), 
null))(children: ColAndCol(col 5:boolean, col 6:boolean)(children: 
TimestampColGreaterEqualTimestampScalar(col 3:timestamp, val 5344-10-04 
18:40:08.165) -> 5:boolean, TimestampColLessTimestampScalar(col 3:timestamp, 
val 6631-11-13 16:31:29.702202248) -> 6:boolean) -> 13:boolean, 
VectorUDFMinuteTimestamp(col 1:timestamp, field MINUTE) -> 5:int) -> 6:int, 
IfExprLongColumnLongColumn(col 5:boolean, col 13:date, col 16:date)(children: 
DoubleColGreaterDoubleScalar(col 15:double, val 100.0)(children: DoubleC
 olModuloDoubleScalar(col 14:double, val 500.0)(children: 
CastTimestampToDouble(col 1:timestamp) -> 14:double) -> 15:double) -> 
5:boolean, VectorUDFDateAddColScalar(col 0:date, val 1) -> 13:date, 
VectorUDFDateAddColScalar(col 0:date, val 365) -> 16:date) -> 17:date
               Statistics: Num rows: 51 Data size: 12300 Basic stats: COMPLETE 
Column stats: NONE
               Reduce Output Operator
                 key expressions: _col0 (type: timestamp), _col10 (type: 
string), _col1 (type: timestamp)
                 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: 51 Data size: 12300 Basic stats: 
COMPLETE Column stats: NONE
                 value expressions: _col2 (type: string), _col3 (type: string), 
_col4 (type: string), _col5 (type: int), _col6 (type: string), _col7 (type: 
int), _col8 (type: int), _col9 (type: date)
+      Execution mode: vectorized
       Map Vectorization:
           enabled: true
           enabledConditionsMet: hive.vectorized.use.vectorized.input.format IS 
true
+          inputFormatFeatureSupport: [DECIMAL_64]
+          featureSupportInUse: [DECIMAL_64]
           inputFileFormats: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
-          notVectorizedReason: SELECT operator: Unexpected hive type name void
-          vectorized: false
+          allNative: false
+          usesVectorUDFAdaptor: true
+          vectorized: true
+          rowBatchContext:
+              dataColumnCount: 4
+              includeColumns: [0, 1, 2, 3]
+              dataColumns: cdate:date, ctimestamp1:timestamp, 
stimestamp1:string, ctimestamp2:timestamp
+              partitionColumnCount: 0
+              scratchColumnTypeNames: [bigint, bigint, bigint, bigint, string, 
string, string, string, bigint, double, double, bigint, bigint]
       Reduce Vectorization:
           enabled: false
           enableConditionsMet: hive.vectorized.execution.reduce.enabled IS true
@@ -383,8 +406,8 @@ STAGE PLANS:
               Select Vectorization:
                   className: VectorSelectOperator
                   native: true
-                  projectedOutputColumnNums: [1, 3, 10, 12, 13, 14, 11, 7, 16, 
23, 2]
-                  selectExpressions: IfExprStringScalarStringGroupColumn(col 
5:boolean, val 1800s or Earliercol 9:string)(children: 
TimestampColLessEqualTimestampScalar(col 3:timestamp, val 1800-12-31 00:00:00) 
-> 5:boolean, IfExprStringScalarStringGroupColumn(col 6:boolean, val 1900scol 
10:string)(children: TimestampColLessTimestampScalar(col 3:timestamp, val 
1900-01-01 00:00:00) -> 6:boolean, IfExprStringScalarStringGroupColumn(col 
7:boolean, val Late 2000scol 9:string)(children: TimestampColumnBetween(col 
3:timestamp, left 2005-12-31 16:00:00.0, right 2010-12-31 15:59:59.999999999) 
-> 7:boolean, IfExprStringScalarStringScalar(col 8:boolean, val Early 2010s, 
val Unknown)(children: TimestampColLessEqualTimestampScalar(col 3:timestamp, 
val 2015-12-31 23:59:59.999999999) -> 8:boolean) -> 9:string) -> 10:string) -> 
9:string) -> 10:string, IfExprStringScalarStringGroupColumn(col 5:boolean, val 
Oldcol 11:string)(children: TimestampColLessEqualTimestampScalar(col 
3:timestamp, val 2000-12
 -31 23:59:59.999999999) -> 5:boolean, IfExprStringScalarStringGroupColumn(col 
6:boolean, val Early 2000scol 12:string)(children: 
TimestampColLessTimestampScalar(col 3:timestamp, val 2006-01-01 00:00:00) -> 
6:boolean, IfExprStringScalarStringGroupColumn(col 7:boolean, val Late 2000scol 
11:string)(children: TimestampColumnBetween(col 3:timestamp, left 2005-12-31 
16:00:00.0, right 2010-12-31 15:59:59.999999999) -> 7:boolean, 
IfExprColumnNull(col 8:boolean, col 9:string, null)(children: 
TimestampColLessEqualTimestampScalar(col 3:timestamp, val 2015-12-31 
23:59:59.999999999) -> 8:boolean, ConstantVectorExpression(val Early 2010s) -> 
9:string) -> 11:string) -> 12:string) -> 11:string) -> 12:string, 
IfExprStringScalarStringGroupColumn(col 5:boolean, val Oldcol 
11:string)(children: TimestampColLessEqualTimestampScalar(col 3:timestamp, val 
2000-12-31 23:59:59.999999999) -> 5:boolean, 
IfExprStringScalarStringGroupColumn(col 6:boolean, val Early 2000scol 
13:string)(children: TimestampColLessTi
 mestampScalar(col 3:timestamp, val 2006-01-01 00:00:00) -> 6:boolean, 
IfExprStringScalarStringGroupColumn(col 7:boolean, val Late 2000scol 
11:string)(children: TimestampColumnBetween(col 3:timestamp, left 2005-12-31 
16:00:00.0, right 2010-12-31 15:59:59.999999999) -> 7:boolean, 
IfExprNullNull(null, null) -> 11:string) -> 13:string) -> 11:string) -> 
13:string, IfExprLongColumnLongColumn(col 5:boolean, col 6:int, col 
7:int)(children: TimestampColLessTimestampScalar(col 1:timestamp, val 
1974-10-04 17:21:03.989) -> 5:boolean, VectorUDFYearTimestamp(col 1:timestamp, 
field YEAR) -> 6:int, VectorUDFYearTimestamp(col 3:timestamp, field YEAR) -> 
7:int) -> 14:int, VectorUDFAdaptor(CASE WHEN ((stimestamp1 like '%19%')) THEN 
(stimestamp1) ELSE (TIMESTAMP'2018-03-08 23:04:59') END)(children: 
SelectStringColLikeStringScalar(col 2:string) -> 5:boolean) -> 11:string, 
IfExprNullColumn(col 5:boolean, null, col 6)(children: 
TimestampColEqualTimestampScalar(col 1:timestamp, val 2021-09-24 03:18:32.4136
 55165) -> 5:boolean, VectorUDFMinuteTimestamp(col 1:timestamp, field MINUTE) 
-> 6:int) -> 7:int, IfExprColumnNull(col 17:boolean, col 15:int, 
null)(children: ColAndCol(col 15:boolean, col 16:boolean)(children: 
TimestampColGreaterEqualTimestampScalar(col 3:timestamp, val 5344-10-04 
18:40:08.165) -> 15:boolean, TimestampColLessTimestampScalar(col 3:timestamp, 
val 6631-11-13 16:31:29.702202248) -> 16:boolean) -> 17:boolean, 
VectorUDFMinuteTimestamp(col 1:timestamp, field MINUTE) -> 15:int) -> 16:int, 
IfExprLongColumnLongColumn(col 20:boolean, col 21:date, col 22:date)(children: 
DoubleColGreaterDoubleScalar(col 19:double, val 100.0)(children: 
DoubleColModuloDoubleScalar(col 18:double, val 500.0)(children: 
CastTimestampToDouble(col 1:timestamp) -> 18:double) -> 19:double) -> 
20:boolean, VectorUDFDateAddColScalar(col 0:date, val 1) -> 21:date, 
VectorUDFDateAddColScalar(col 0:date, val 365) -> 22:date) -> 23:date
+                  projectedOutputColumnNums: [1, 3, 10, 12, 13, 14, 15, 7, 17, 
24, 2]
+                  selectExpressions: IfExprStringScalarStringGroupColumn(col 
5:boolean, val 1800s or Earliercol 9:string)(children: 
TimestampColLessEqualTimestampScalar(col 3:timestamp, val 1800-12-31 00:00:00) 
-> 5:boolean, IfExprStringScalarStringGroupColumn(col 6:boolean, val 1900scol 
10:string)(children: TimestampColLessTimestampScalar(col 3:timestamp, val 
1900-01-01 00:00:00) -> 6:boolean, IfExprStringScalarStringGroupColumn(col 
7:boolean, val Late 2000scol 9:string)(children: TimestampColumnBetween(col 
3:timestamp, left 2005-12-31 16:00:00.0, right 2010-12-31 15:59:59.999999999) 
-> 7:boolean, IfExprStringScalarStringScalar(col 8:boolean, val Early 2010s, 
val Unknown)(children: TimestampColLessEqualTimestampScalar(col 3:timestamp, 
val 2015-12-31 23:59:59.999999999) -> 8:boolean) -> 9:string) -> 10:string) -> 
9:string) -> 10:string, IfExprStringScalarStringGroupColumn(col 5:boolean, val 
Oldcol 11:string)(children: TimestampColLessEqualTimestampScalar(col 
3:timestamp, val 2000-12
 -31 23:59:59.999999999) -> 5:boolean, IfExprStringScalarStringGroupColumn(col 
6:boolean, val Early 2000scol 12:string)(children: 
TimestampColLessTimestampScalar(col 3:timestamp, val 2006-01-01 00:00:00) -> 
6:boolean, IfExprStringScalarStringGroupColumn(col 7:boolean, val Late 2000scol 
11:string)(children: TimestampColumnBetween(col 3:timestamp, left 2005-12-31 
16:00:00.0, right 2010-12-31 15:59:59.999999999) -> 7:boolean, 
IfExprColumnNull(col 8:boolean, col 9:string, null)(children: 
TimestampColLessEqualTimestampScalar(col 3:timestamp, val 2015-12-31 
23:59:59.999999999) -> 8:boolean, ConstantVectorExpression(val Early 2010s) -> 
9:string) -> 11:string) -> 12:string) -> 11:string) -> 12:string, 
IfExprStringScalarStringGroupColumn(col 5:boolean, val Oldcol 
11:string)(children: TimestampColLessEqualTimestampScalar(col 3:timestamp, val 
2000-12-31 23:59:59.999999999) -> 5:boolean, 
IfExprStringScalarStringGroupColumn(col 6:boolean, val Early 2000scol 
13:string)(children: TimestampColLessTi
 mestampScalar(col 3:timestamp, val 2006-01-01 00:00:00) -> 6:boolean, 
IfExprStringScalarStringGroupColumn(col 7:boolean, val Late 2000scol 
11:string)(children: TimestampColumnBetween(col 3:timestamp, left 2005-12-31 
16:00:00.0, right 2010-12-31 15:59:59.999999999) -> 7:boolean, 
IfExprNullNull(null, null) -> 11:string) -> 13:string) -> 11:string) -> 
13:string, IfExprLongColumnLongColumn(col 5:boolean, col 6:int, col 
7:int)(children: TimestampColLessTimestampScalar(col 1:timestamp, val 
1974-10-04 17:21:03.989) -> 5:boolean, VectorUDFYearTimestamp(col 1:timestamp, 
field YEAR) -> 6:int, VectorUDFYearTimestamp(col 3:timestamp, field YEAR) -> 
7:int) -> 14:int, IfExprStringGroupColumnStringGroupColumn(col 5:boolean, col 
2:string, col 2:string)(children: SelectStringColLikeStringScalar(col 2:string) 
-> 5:boolean, VectorUDFAdaptor(CAST( TIMESTAMP'2018-03-08 23:04:59' AS STRING)) 
-> 11:string) -> 15:string, IfExprNullColumn(col 5:boolean, null, col 
6)(children: TimestampColEqualTimestampScala
 r(col 1:timestamp, val 2021-09-24 03:18:32.413655165) -> 5:boolean, 
VectorUDFMinuteTimestamp(col 1:timestamp, field MINUTE) -> 6:int) -> 7:int, 
IfExprColumnNull(col 18:boolean, col 16:int, null)(children: ColAndCol(col 
16:boolean, col 17:boolean)(children: 
TimestampColGreaterEqualTimestampScalar(col 3:timestamp, val 5344-10-04 
18:40:08.165) -> 16:boolean, TimestampColLessTimestampScalar(col 3:timestamp, 
val 6631-11-13 16:31:29.702202248) -> 17:boolean) -> 18:boolean, 
VectorUDFMinuteTimestamp(col 1:timestamp, field MINUTE) -> 16:int) -> 17:int, 
IfExprLongColumnLongColumn(col 21:boolean, col 22:date, col 23:date)(children: 
DoubleColGreaterDoubleScalar(col 20:double, val 100.0)(children: 
DoubleColModuloDoubleScalar(col 19:double, val 500.0)(children: 
CastTimestampToDouble(col 1:timestamp) -> 19:double) -> 20:double) -> 
21:boolean, VectorUDFDateAddColScalar(col 0:date, val 1) -> 22:date, 
VectorUDFDateAddColScalar(col 0:date, val 365) -> 23:date) -> 24:date
               Statistics: Num rows: 51 Data size: 12300 Basic stats: COMPLETE 
Column stats: NONE
               Reduce Output Operator
                 key expressions: _col0 (type: timestamp), _col10 (type: 
string), _col1 (type: timestamp)
@@ -411,7 +434,7 @@ STAGE PLANS:
               includeColumns: [0, 1, 2, 3]
               dataColumns: cdate:date, ctimestamp1:timestamp, 
stimestamp1:string, ctimestamp2:timestamp
               partitionColumnCount: 0
-              scratchColumnTypeNames: [bigint, bigint, bigint, bigint, string, 
string, string, string, string, bigint, bigint, bigint, bigint, double, double, 
bigint, bigint, bigint, bigint]
+              scratchColumnTypeNames: [bigint, bigint, bigint, bigint, string, 
string, string, string, string, bigint, string, bigint, bigint, bigint, double, 
double, bigint, bigint, bigint, bigint]
       Reduce Vectorization:
           enabled: false
           enableConditionsMet: hive.vectorized.execution.reduce.enabled IS true
@@ -646,8 +669,8 @@ STAGE PLANS:
               Select Vectorization:
                   className: VectorSelectOperator
                   native: true
-                  projectedOutputColumnNums: [1, 3, 15, 26, 36, 40, 42, 44, 
46, 53, 2]
-                  selectExpressions: IfExprColumnCondExpr(col 5:boolean, col 
6:stringcol 14:string)(children: TimestampColLessEqualTimestampScalar(col 
3:timestamp, val 1800-12-31 00:00:00) -> 5:boolean, 
ConstantVectorExpression(val 1800s or Earlier) -> 6:string, 
IfExprColumnCondExpr(col 7:boolean, col 8:stringcol 13:string)(children: 
TimestampColLessTimestampScalar(col 3:timestamp, val 1900-01-01 00:00:00) -> 
7:boolean, ConstantVectorExpression(val 1900s) -> 8:string, 
IfExprColumnCondExpr(col 9:boolean, col 10:stringcol 12:string)(children: 
TimestampColumnBetween(col 3:timestamp, left 2005-12-31 16:00:00.0, right 
2010-12-31 15:59:59.999999999) -> 9:boolean, ConstantVectorExpression(val Late 
2000s) -> 10:string, IfExprStringScalarStringScalar(col 11:boolean, val Early 
2010s, val Unknown)(children: TimestampColLessEqualTimestampScalar(col 
3:timestamp, val 2015-12-31 23:59:59.999999999) -> 11:boolean) -> 12:string) -> 
13:string) -> 14:string) -> 15:string, IfExprColumnCondExpr(col 11:b
 oolean, col 16:stringcol 25:string)(children: 
TimestampColLessEqualTimestampScalar(col 3:timestamp, val 2000-12-31 
23:59:59.999999999) -> 11:boolean, ConstantVectorExpression(val Old) -> 
16:string, IfExprColumnCondExpr(col 17:boolean, col 18:stringcol 
24:string)(children: TimestampColLessTimestampScalar(col 3:timestamp, val 
2006-01-01 00:00:00) -> 17:boolean, ConstantVectorExpression(val Early 2000s) 
-> 18:string, IfExprColumnCondExpr(col 19:boolean, col 20:stringcol 
23:string)(children: TimestampColumnBetween(col 3:timestamp, left 2005-12-31 
16:00:00.0, right 2010-12-31 15:59:59.999999999) -> 19:boolean, 
ConstantVectorExpression(val Late 2000s) -> 20:string, IfExprColumnNull(col 
21:boolean, col 22:string, null)(children: 
TimestampColLessEqualTimestampScalar(col 3:timestamp, val 2015-12-31 
23:59:59.999999999) -> 21:boolean, ConstantVectorExpression(val Early 2010s) -> 
22:string) -> 23:string) -> 24:string) -> 25:string) -> 26:string, 
IfExprColumnCondExpr(col 27:boolean, col 28:strin
 gcol 35:string)(children: TimestampColLessEqualTimestampScalar(col 
3:timestamp, val 2000-12-31 23:59:59.999999999) -> 27:boolean, 
ConstantVectorExpression(val Old) -> 28:string, IfExprColumnCondExpr(col 
29:boolean, col 30:stringcol 34:string)(children: 
TimestampColLessTimestampScalar(col 3:timestamp, val 2006-01-01 00:00:00) -> 
29:boolean, ConstantVectorExpression(val Early 2000s) -> 30:string, 
IfExprColumnCondExpr(col 31:boolean, col 32:stringcol 33:string)(children: 
TimestampColumnBetween(col 3:timestamp, left 2005-12-31 16:00:00.0, right 
2010-12-31 15:59:59.999999999) -> 31:boolean, ConstantVectorExpression(val Late 
2000s) -> 32:string, IfExprNullNull(null, null) -> 33:string) -> 34:string) -> 
35:string) -> 36:string, IfExprCondExprCondExpr(col 37:boolean, col 38:intcol 
39:int)(children: TimestampColLessTimestampScalar(col 1:timestamp, val 
1974-10-04 17:21:03.989) -> 37:boolean, VectorUDFYearTimestamp(col 1:timestamp, 
field YEAR) -> 38:int, VectorUDFYearTimestamp(col 3:timestamp,
  field YEAR) -> 39:int) -> 40:int, VectorUDFAdaptor(CASE WHEN ((stimestamp1 
like '%19%')) THEN (stimestamp1) ELSE (TIMESTAMP'2018-03-08 23:04:59') 
END)(children: SelectStringColLikeStringScalar(col 2:string) -> 41:boolean) -> 
42:string, IfExprNullCondExpr(col 41:boolean, null, col 43:int)(children: 
TimestampColEqualTimestampScalar(col 1:timestamp, val 2021-09-24 
03:18:32.413655165) -> 41:boolean, VectorUDFMinuteTimestamp(col 1:timestamp, 
field MINUTE) -> 43:int) -> 44:int, IfExprCondExprNull(col 47:boolean, col 
45:int, null)(children: ColAndCol(col 45:boolean, col 46:boolean)(children: 
TimestampColGreaterEqualTimestampScalar(col 3:timestamp, val 5344-10-04 
18:40:08.165) -> 45:boolean, TimestampColLessTimestampScalar(col 3:timestamp, 
val 6631-11-13 16:31:29.702202248) -> 46:boolean) -> 47:boolean, 
VectorUDFMinuteTimestamp(col 1:timestamp, field MINUTE) -> 45:int) -> 46:int, 
IfExprCondExprCondExpr(col 50:boolean, col 51:datecol 52:date)(children: 
DoubleColGreaterDoubleScalar(col 49:do
 uble, val 100.0)(children: DoubleColModuloDoubleScalar(col 48:double, val 
500.0)(children: CastTimestampToDouble(col 1:timestamp) -> 48:double) -> 
49:double) -> 50:boolean, VectorUDFDateAddColScalar(col 0:date, val 1) -> 
51:date, VectorUDFDateAddColScalar(col 0:date, val 365) -> 52:date) -> 53:date
+                  projectedOutputColumnNums: [1, 3, 15, 26, 36, 40, 43, 46, 
48, 55, 2]
+                  selectExpressions: IfExprColumnCondExpr(col 5:boolean, col 
6:stringcol 14:string)(children: TimestampColLessEqualTimestampScalar(col 
3:timestamp, val 1800-12-31 00:00:00) -> 5:boolean, 
ConstantVectorExpression(val 1800s or Earlier) -> 6:string, 
IfExprColumnCondExpr(col 7:boolean, col 8:stringcol 13:string)(children: 
TimestampColLessTimestampScalar(col 3:timestamp, val 1900-01-01 00:00:00) -> 
7:boolean, ConstantVectorExpression(val 1900s) -> 8:string, 
IfExprColumnCondExpr(col 9:boolean, col 10:stringcol 12:string)(children: 
TimestampColumnBetween(col 3:timestamp, left 2005-12-31 16:00:00.0, right 
2010-12-31 15:59:59.999999999) -> 9:boolean, ConstantVectorExpression(val Late 
2000s) -> 10:string, IfExprStringScalarStringScalar(col 11:boolean, val Early 
2010s, val Unknown)(children: TimestampColLessEqualTimestampScalar(col 
3:timestamp, val 2015-12-31 23:59:59.999999999) -> 11:boolean) -> 12:string) -> 
13:string) -> 14:string) -> 15:string, IfExprColumnCondExpr(col 11:b
 oolean, col 16:stringcol 25:string)(children: 
TimestampColLessEqualTimestampScalar(col 3:timestamp, val 2000-12-31 
23:59:59.999999999) -> 11:boolean, ConstantVectorExpression(val Old) -> 
16:string, IfExprColumnCondExpr(col 17:boolean, col 18:stringcol 
24:string)(children: TimestampColLessTimestampScalar(col 3:timestamp, val 
2006-01-01 00:00:00) -> 17:boolean, ConstantVectorExpression(val Early 2000s) 
-> 18:string, IfExprColumnCondExpr(col 19:boolean, col 20:stringcol 
23:string)(children: TimestampColumnBetween(col 3:timestamp, left 2005-12-31 
16:00:00.0, right 2010-12-31 15:59:59.999999999) -> 19:boolean, 
ConstantVectorExpression(val Late 2000s) -> 20:string, IfExprColumnNull(col 
21:boolean, col 22:string, null)(children: 
TimestampColLessEqualTimestampScalar(col 3:timestamp, val 2015-12-31 
23:59:59.999999999) -> 21:boolean, ConstantVectorExpression(val Early 2010s) -> 
22:string) -> 23:string) -> 24:string) -> 25:string) -> 26:string, 
IfExprColumnCondExpr(col 27:boolean, col 28:strin
 gcol 35:string)(children: TimestampColLessEqualTimestampScalar(col 
3:timestamp, val 2000-12-31 23:59:59.999999999) -> 27:boolean, 
ConstantVectorExpression(val Old) -> 28:string, IfExprColumnCondExpr(col 
29:boolean, col 30:stringcol 34:string)(children: 
TimestampColLessTimestampScalar(col 3:timestamp, val 2006-01-01 00:00:00) -> 
29:boolean, ConstantVectorExpression(val Early 2000s) -> 30:string, 
IfExprColumnCondExpr(col 31:boolean, col 32:stringcol 33:string)(children: 
TimestampColumnBetween(col 3:timestamp, left 2005-12-31 16:00:00.0, right 
2010-12-31 15:59:59.999999999) -> 31:boolean, ConstantVectorExpression(val Late 
2000s) -> 32:string, IfExprNullNull(null, null) -> 33:string) -> 34:string) -> 
35:string) -> 36:string, IfExprCondExprCondExpr(col 37:boolean, col 38:intcol 
39:int)(children: TimestampColLessTimestampScalar(col 1:timestamp, val 
1974-10-04 17:21:03.989) -> 37:boolean, VectorUDFYearTimestamp(col 1:timestamp, 
field YEAR) -> 38:int, VectorUDFYearTimestamp(col 3:timestamp,
  field YEAR) -> 39:int) -> 40:int, IfExprColumnCondExpr(col 41:boolean, col 
2:stringcol 42:string)(children: SelectStringColLikeStringScalar(col 2:string) 
-> 41:boolean, col 2:string, VectorUDFAdaptor(CAST( TIMESTAMP'2018-03-08 
23:04:59' AS STRING)) -> 42:string) -> 43:string, IfExprNullCondExpr(col 
44:boolean, null, col 45:int)(children: TimestampColEqualTimestampScalar(col 
1:timestamp, val 2021-09-24 03:18:32.413655165) -> 44:boolean, 
VectorUDFMinuteTimestamp(col 1:timestamp, field MINUTE) -> 45:int) -> 46:int, 
IfExprCondExprNull(col 49:boolean, col 47:int, null)(children: ColAndCol(col 
47:boolean, col 48:boolean)(children: 
TimestampColGreaterEqualTimestampScalar(col 3:timestamp, val 5344-10-04 
18:40:08.165) -> 47:boolean, TimestampColLessTimestampScalar(col 3:timestamp, 
val 6631-11-13 16:31:29.702202248) -> 48:boolean) -> 49:boolean, 
VectorUDFMinuteTimestamp(col 1:timestamp, field MINUTE) -> 47:int) -> 48:int, 
IfExprCondExprCondExpr(col 52:boolean, col 53:datecol 54:date)(childre
 n: DoubleColGreaterDoubleScalar(col 51:double, val 100.0)(children: 
DoubleColModuloDoubleScalar(col 50:double, val 500.0)(children: 
CastTimestampToDouble(col 1:timestamp) -> 50:double) -> 51:double) -> 
52:boolean, VectorUDFDateAddColScalar(col 0:date, val 1) -> 53:date, 
VectorUDFDateAddColScalar(col 0:date, val 365) -> 54:date) -> 55:date
               Statistics: Num rows: 51 Data size: 12300 Basic stats: COMPLETE 
Column stats: NONE
               Reduce Output Operator
                 key expressions: _col0 (type: timestamp), _col10 (type: 
string), _col1 (type: timestamp)
@@ -674,7 +697,7 @@ STAGE PLANS:
               includeColumns: [0, 1, 2, 3]
               dataColumns: cdate:date, ctimestamp1:timestamp, 
stimestamp1:string, ctimestamp2:timestamp
               partitionColumnCount: 0
-              scratchColumnTypeNames: [bigint, string, bigint, string, bigint, 
string, bigint, string, string, string, string, string, bigint, string, bigint, 
string, bigint, string, string, string, string, string, bigint, string, bigint, 
string, bigint, string, string, string, string, string, bigint, bigint, bigint, 
bigint, bigint, string, bigint, bigint, bigint, bigint, bigint, double, double, 
bigint, bigint, bigint, bigint]
+              scratchColumnTypeNames: [bigint, string, bigint, string, bigint, 
string, bigint, string, string, string, string, string, bigint, string, bigint, 
string, bigint, string, string, string, string, string, bigint, string, bigint, 
string, bigint, string, string, string, string, string, bigint, bigint, bigint, 
bigint, bigint, string, string, bigint, bigint, bigint, bigint, bigint, bigint, 
double, double, bigint, bigint, bigint, bigint]
       Reduce Vectorization:
           enabled: false
           enableConditionsMet: hive.vectorized.execution.reduce.enabled IS true

http://git-wip-us.apache.org/repos/asf/hive/blob/97f0513c/ql/src/test/results/clientpositive/vector_decimal_expressions.q.out
----------------------------------------------------------------------
diff --git 
a/ql/src/test/results/clientpositive/vector_decimal_expressions.q.out 
b/ql/src/test/results/clientpositive/vector_decimal_expressions.q.out
index a969c92..66cc433 100644
--- a/ql/src/test/results/clientpositive/vector_decimal_expressions.q.out
+++ b/ql/src/test/results/clientpositive/vector_decimal_expressions.q.out
@@ -312,4 +312,4 @@ ORDER BY c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12, 
c13, c14) q
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@decimal_test_small_n0
 #### A masked pattern was here ####
-1252336297085
+787712777374

http://git-wip-us.apache.org/repos/asf/hive/blob/97f0513c/ql/src/test/results/clientpositive/vectorized_case.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/vectorized_case.q.out 
b/ql/src/test/results/clientpositive/vectorized_case.q.out
index db20aca..0cc36bd 100644
--- a/ql/src/test/results/clientpositive/vectorized_case.q.out
+++ b/ql/src/test/results/clientpositive/vectorized_case.q.out
@@ -627,8 +627,8 @@ STAGE PLANS:
               Select Vectorization:
                   className: VectorSelectOperator
                   native: true
-                  projectedOutputColumnNums: [8]
-                  selectExpressions: IfExprDecimal64ScalarDecimal64Column(col 
6:boolean, decimal64Val 1, decimalVal 1, col 
7:decimal(1,0)/DECIMAL_64)(children: Decimal64ColEqualDecimal64Scalar(col 
0:decimal(10,0)/DECIMAL_64, decimal64Val 1, decimalVal 1) -> 6:boolean, 
Decimal64ColAddDecimal64Scalar(col 1:decimal(10,0)/DECIMAL_64, decimal64Val 2, 
decimalVal 2) -> 7:decimal(11,0)/DECIMAL_64) -> 8:decimal(11,0)/DECIMAL_64
+                  projectedOutputColumnNums: [9]
+                  selectExpressions: IfExprDecimalColumnColumn(col 6:boolean, 
col 7:decimal(11,0)col 10:decimal(11,0))(children: 
Decimal64ColEqualDecimal64Scalar(col 0:decimal(10,0)/DECIMAL_64, decimal64Val 
1, decimalVal 1) -> 6:boolean, ConstantVectorExpression(val 1) -> 
7:decimal(11,0), ConvertDecimal64ToDecimal(col 
8:decimal(11,0)/DECIMAL_64)(children: Decimal64ColAddDecimal64Scalar(col 
1:decimal(10,0)/DECIMAL_64, decimal64Val 2, decimalVal 2) -> 
8:decimal(11,0)/DECIMAL_64) -> 10:decimal(11,0)) -> 9:decimal(11,0)
               Statistics: Num rows: 3 Data size: 672 Basic stats: COMPLETE 
Column stats: NONE
               File Output Operator
                 compressed: false
@@ -655,7 +655,7 @@ STAGE PLANS:
               includeColumns: [0, 1]
               dataColumns: member:decimal(10,0)/DECIMAL_64, 
attr:decimal(10,0)/DECIMAL_64
               partitionColumnCount: 0
-              scratchColumnTypeNames: [bigint, decimal(1,0), 
decimal(11,0)/DECIMAL_64, bigint, decimal(11,0)/DECIMAL_64, 
decimal(11,0)/DECIMAL_64]
+              scratchColumnTypeNames: [bigint, decimal(11,0), 
decimal(11,0)/DECIMAL_64, bigint, decimal(11,0), decimal(11,0)/DECIMAL_64, 
decimal(11,0), decimal(11,0)]
 
   Stage: Stage-0
     Fetch Operator
@@ -708,8 +708,8 @@ STAGE PLANS:
               Select Vectorization:
                   className: VectorSelectOperator
                   native: true
-                  projectedOutputColumnNums: [8]
-                  selectExpressions: IfExprDecimal64ColumnDecimal64Scalar(col 
6:boolean, col 7:decimal(11,0)/DECIMAL_64, decimal64Val 2, decimalVal 
2)(children: Decimal64ColEqualDecimal64Scalar(col 0:decimal(10,0)/DECIMAL_64, 
decimal64Val 1, decimalVal 1) -> 6:boolean, Decimal64ColAddDecimal64Scalar(col 
1:decimal(10,0)/DECIMAL_64, decimal64Val 1, decimalVal 1) -> 
7:decimal(11,0)/DECIMAL_64) -> 8:decimal(11,0)/DECIMAL_64
+                  projectedOutputColumnNums: [9]
+                  selectExpressions: IfExprDecimalColumnColumn(col 6:boolean, 
col 10:decimal(11,0)col 8:decimal(11,0))(children: 
Decimal64ColEqualDecimal64Scalar(col 0:decimal(10,0)/DECIMAL_64, decimal64Val 
1, decimalVal 1) -> 6:boolean, ConvertDecimal64ToDecimal(col 
7:decimal(11,0)/DECIMAL_64)(children: Decimal64ColAddDecimal64Scalar(col 
1:decimal(10,0)/DECIMAL_64, decimal64Val 1, decimalVal 1) -> 
7:decimal(11,0)/DECIMAL_64) -> 10:decimal(11,0), ConstantVectorExpression(val 
2) -> 8:decimal(11,0)) -> 9:decimal(11,0)
               Statistics: Num rows: 3 Data size: 672 Basic stats: COMPLETE 
Column stats: NONE
               File Output Operator
                 compressed: false
@@ -736,7 +736,7 @@ STAGE PLANS:
               includeColumns: [0, 1]
               dataColumns: member:decimal(10,0)/DECIMAL_64, 
attr:decimal(10,0)/DECIMAL_64
               partitionColumnCount: 0
-              scratchColumnTypeNames: [bigint, decimal(11,0)/DECIMAL_64, 
decimal(1,0), bigint, decimal(11,0)/DECIMAL_64, decimal(11,0)/DECIMAL_64]
+              scratchColumnTypeNames: [bigint, decimal(11,0)/DECIMAL_64, 
decimal(11,0), bigint, decimal(11,0)/DECIMAL_64, decimal(11,0), decimal(11,0), 
decimal(11,0)]
 
   Stage: Stage-0
     Fetch Operator

Reply via email to