http://git-wip-us.apache.org/repos/asf/hive/blob/8b968c7e/ql/src/test/results/clientpositive/spark/vectorization_12.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/vectorization_12.q.out 
b/ql/src/test/results/clientpositive/spark/vectorization_12.q.out
index 1643824..4bb3b02e 100644
--- a/ql/src/test/results/clientpositive/spark/vectorization_12.q.out
+++ b/ql/src/test/results/clientpositive/spark/vectorization_12.q.out
@@ -104,13 +104,13 @@ STAGE PLANS:
                       Select Vectorization:
                           className: VectorSelectOperator
                           native: true
-                          projectedOutputColumnNums: [3, 10, 6, 5, 13, 16, 14]
-                          selectExpressions: CastLongToDouble(col 3:bigint) -> 
13:double, DoubleColMultiplyDoubleColumn(col 14:double, col 
15:double)(children: CastLongToDouble(col 3:bigint) -> 14:double, 
CastLongToDouble(col 3:bigint) -> 15:double) -> 16:double, 
DoubleColMultiplyDoubleColumn(col 5:double, col 5:double) -> 14:double
+                          projectedOutputColumnNums: [3, 10, 6, 5, 13, 16, 17]
+                          selectExpressions: CastLongToDouble(col 3:bigint) -> 
13:double, DoubleColMultiplyDoubleColumn(col 14:double, col 
15:double)(children: CastLongToDouble(col 3:bigint) -> 14:double, 
CastLongToDouble(col 3:bigint) -> 15:double) -> 16:double, 
DoubleColMultiplyDoubleColumn(col 5:double, col 5:double) -> 17:double
                       Statistics: Num rows: 3754 Data size: 888395 Basic 
stats: COMPLETE Column stats: NONE
                       Group By Operator
                         aggregations: count(_col0), sum(_col5), sum(_col4), 
sum(_col3), count(_col3), sum(_col0), sum(_col6)
                         Group By Vectorization:
-                            aggregators: VectorUDAFCount(col 3:bigint) -> 
bigint, VectorUDAFSumDouble(col 16:double) -> double, VectorUDAFSumDouble(col 
13:double) -> double, VectorUDAFSumDouble(col 5:double) -> double, 
VectorUDAFCount(col 5:double) -> bigint, VectorUDAFSumLong(col 3:bigint) -> 
bigint, VectorUDAFSumDouble(col 14:double) -> double
+                            aggregators: VectorUDAFCount(col 3:bigint) -> 
bigint, VectorUDAFSumDouble(col 16:double) -> double, VectorUDAFSumDouble(col 
13:double) -> double, VectorUDAFSumDouble(col 5:double) -> double, 
VectorUDAFCount(col 5:double) -> bigint, VectorUDAFSumLong(col 3:bigint) -> 
bigint, VectorUDAFSumDouble(col 17:double) -> double
                             className: VectorGroupByOperator
                             groupByMode: HASH
                             keyExpressions: col 5:double, col 3:bigint, col 
6:string, col 10:boolean
@@ -148,7 +148,7 @@ STAGE PLANS:
                     includeColumns: [0, 1, 3, 5, 6, 8, 10, 11]
                     dataColumns: ctinyint:tinyint, csmallint:smallint, 
cint:int, cbigint:bigint, cfloat:float, cdouble:double, cstring1:string, 
cstring2:string, ctimestamp1:timestamp, ctimestamp2:timestamp, 
cboolean1:boolean, cboolean2:boolean
                     partitionColumnCount: 0
-                    scratchColumnTypeNames: [double, double, double, double]
+                    scratchColumnTypeNames: [double, double, double, double, 
double]
         Reducer 2 
             Execution mode: vectorized
             Reduce Vectorization:
@@ -185,8 +185,8 @@ STAGE PLANS:
                   Select Vectorization:
                       className: VectorSelectOperator
                       native: true
-                      projectedOutputColumnNums: [1, 3, 2, 0, 11, 12, 4, 13, 
14, 19, 15, 20, 22, 24, 9, 26, 25, 21, 27]
-                      selectExpressions: DoubleScalarMultiplyDoubleColumn(val 
-6432.0, col 0:double) -> 11:double, LongColUnaryMinus(col 1:bigint) -> 
12:bigint, LongColMultiplyLongColumn(col 1:bigint, col 4:bigint) -> 13:bigint, 
FuncPowerDoubleToDouble(col 15:double)(children: DoubleColDivideLongColumn(col 
14:double, col 18:bigint)(children: DoubleColSubtractDoubleColumn(col 5:double, 
col 15:double)(children: DoubleColDivideLongColumn(col 14:double, col 
4:bigint)(children: DoubleColMultiplyDoubleColumn(col 6:double, col 6:double) 
-> 14:double) -> 15:double) -> 14:double, IfExprNullCondExpr(col 16:boolean, 
null, col 17:bigint)(children: LongColEqualLongScalar(col 4:bigint, val 1) -> 
16:boolean, LongColSubtractLongScalar(col 4:bigint, val 1) -> 17:bigint) -> 
18:bigint) -> 15:double) -> 14:double, DoubleColDivideDoubleScalar(col 
15:double, val -6432.0)(children: DoubleScalarMultiplyDoubleColumn(val -6432.0, 
col 0:double) -> 15:double) -> 19:double, DoubleColUnaryMinus(col 20:double)(ch
 ildren: DoubleColDivideDoubleScalar(col 15:double, val -6432.0)(children: 
DoubleScalarMultiplyDoubleColumn(val -6432.0, col 0:double) -> 15:double) -> 
20:double) -> 15:double, DoubleColDivideLongColumn(col 7:double, col 8:bigint) 
-> 20:double, DoubleColUnaryMinus(col 21:double)(children: 
DoubleScalarMultiplyDoubleColumn(val -6432.0, col 0:double) -> 21:double) -> 
22:double, DecimalScalarAddDecimalColumn(val -5638.15, col 
23:decimal(19,0))(children: CastLongToDecimal(col 1:bigint) -> 
23:decimal(19,0)) -> 24:decimal(22,2), DoubleColDivideDoubleColumn(col 
21:double, col 25:double)(children: DoubleColDivideLongColumn(col 7:double, col 
8:bigint) -> 21:double, DoubleScalarMultiplyDoubleColumn(val -6432.0, col 
0:double) -> 25:double) -> 26:double, DoubleColUnaryMinus(col 
21:double)(children: DoubleColUnaryMinus(col 25:double)(children: 
DoubleColDivideDoubleScalar(col 21:double, val -6432.0)(children: 
DoubleScalarMultiplyDoubleColumn(val -6432.0, col 0:double) -> 21:double) -> 
25:double) ->
  21:double) -> 25:double, DoubleColAddDoubleColumn(col 27:double, col 
28:double)(children: DoubleColDivideDoubleScalar(col 21:double, val 
-6432.0)(children: DoubleScalarMultiplyDoubleColumn(val -6432.0, col 0:double) 
-> 21:double) -> 27:double, DoubleColUnaryMinus(col 21:double)(children: 
DoubleScalarMultiplyDoubleColumn(val -6432.0, col 0:double) -> 21:double) -> 
28:double) -> 21:double, FuncPowerDoubleToDouble(col 28:double)(children: 
DoubleColDivideLongColumn(col 27:double, col 8:bigint)(children: 
DoubleColSubtractDoubleColumn(col 10:double, col 28:double)(children: 
DoubleColDivideLongColumn(col 27:double, col 8:bigint)(children: 
DoubleColMultiplyDoubleColumn(col 7:double, col 7:double) -> 27:double) -> 
28:double) -> 27:double) -> 28:double) -> 27:double
+                      projectedOutputColumnNums: [1, 3, 2, 0, 11, 12, 4, 13, 
21, 23, 26, 27, 29, 31, 9, 34, 38, 43, 48]
+                      selectExpressions: DoubleScalarMultiplyDoubleColumn(val 
-6432.0, col 0:double) -> 11:double, LongColUnaryMinus(col 1:bigint) -> 
12:bigint, LongColMultiplyLongColumn(col 1:bigint, col 4:bigint) -> 13:bigint, 
FuncPowerDoubleToDouble(col 20:double)(children: DoubleColDivideLongColumn(col 
16:double, col 19:bigint)(children: DoubleColSubtractDoubleColumn(col 5:double, 
col 15:double)(children: DoubleColDivideLongColumn(col 14:double, col 
4:bigint)(children: DoubleColMultiplyDoubleColumn(col 6:double, col 6:double) 
-> 14:double) -> 15:double) -> 16:double, IfExprNullCondExpr(col 17:boolean, 
null, col 18:bigint)(children: LongColEqualLongScalar(col 4:bigint, val 1) -> 
17:boolean, LongColSubtractLongScalar(col 4:bigint, val 1) -> 18:bigint) -> 
19:bigint) -> 20:double) -> 21:double, DoubleColDivideDoubleScalar(col 
22:double, val -6432.0)(children: DoubleScalarMultiplyDoubleColumn(val -6432.0, 
col 0:double) -> 22:double) -> 23:double, DoubleColUnaryMinus(col 25:double)(ch
 ildren: DoubleColDivideDoubleScalar(col 24:double, val -6432.0)(children: 
DoubleScalarMultiplyDoubleColumn(val -6432.0, col 0:double) -> 24:double) -> 
25:double) -> 26:double, DoubleColDivideLongColumn(col 7:double, col 8:bigint) 
-> 27:double, DoubleColUnaryMinus(col 28:double)(children: 
DoubleScalarMultiplyDoubleColumn(val -6432.0, col 0:double) -> 28:double) -> 
29:double, DecimalScalarAddDecimalColumn(val -5638.15, col 
30:decimal(19,0))(children: CastLongToDecimal(col 1:bigint) -> 
30:decimal(19,0)) -> 31:decimal(22,2), DoubleColDivideDoubleColumn(col 
32:double, col 33:double)(children: DoubleColDivideLongColumn(col 7:double, col 
8:bigint) -> 32:double, DoubleScalarMultiplyDoubleColumn(val -6432.0, col 
0:double) -> 33:double) -> 34:double, DoubleColUnaryMinus(col 
37:double)(children: DoubleColUnaryMinus(col 36:double)(children: 
DoubleColDivideDoubleScalar(col 35:double, val -6432.0)(children: 
DoubleScalarMultiplyDoubleColumn(val -6432.0, col 0:double) -> 35:double) -> 
36:double) ->
  37:double) -> 38:double, DoubleColAddDoubleColumn(col 40:double, col 
42:double)(children: DoubleColDivideDoubleScalar(col 39:double, val 
-6432.0)(children: DoubleScalarMultiplyDoubleColumn(val -6432.0, col 0:double) 
-> 39:double) -> 40:double, DoubleColUnaryMinus(col 41:double)(children: 
DoubleScalarMultiplyDoubleColumn(val -6432.0, col 0:double) -> 41:double) -> 
42:double) -> 43:double, FuncPowerDoubleToDouble(col 47:double)(children: 
DoubleColDivideLongColumn(col 46:double, col 8:bigint)(children: 
DoubleColSubtractDoubleColumn(col 10:double, col 45:double)(children: 
DoubleColDivideLongColumn(col 44:double, col 8:bigint)(children: 
DoubleColMultiplyDoubleColumn(col 7:double, col 7:double) -> 44:double) -> 
45:double) -> 46:double) -> 47:double) -> 48:double
                   Statistics: Num rows: 1877 Data size: 444197 Basic stats: 
COMPLETE Column stats: NONE
                   Reduce Output Operator
                     key expressions: _col3 (type: double), _col0 (type: 
bigint), _col2 (type: string)
@@ -196,7 +196,7 @@ STAGE PLANS:
                         keyColumns: 0:double, 1:bigint, 2:string
                         native: true
                         nativeConditionsMet: 
hive.vectorized.execution.reducesink.new.enabled IS true, hive.execution.engine 
spark IN [tez, spark] IS true, No PTF TopN IS true, No DISTINCT columns IS 
true, BinarySortableSerDe for keys IS true, LazyBinarySerDe for values IS true
-                        valueColumns: 3:boolean, 11:double, 12:bigint, 
4:bigint, 13:bigint, 14:double, 19:double, 15:double, 20:double, 22:double, 
24:decimal(22,2), 9:bigint, 26:double, 25:double, 21:double, 27:double
+                        valueColumns: 3:boolean, 11:double, 12:bigint, 
4:bigint, 13:bigint, 21:double, 23:double, 26:double, 27:double, 29:double, 
31:decimal(22,2), 9:bigint, 34:double, 38:double, 43:double, 48:double
                     Statistics: Num rows: 1877 Data size: 444197 Basic stats: 
COMPLETE Column stats: NONE
                     value expressions: _col1 (type: boolean), _col4 (type: 
double), _col5 (type: bigint), _col6 (type: bigint), _col7 (type: bigint), 
_col8 (type: double), _col9 (type: double), _col10 (type: double), _col11 
(type: double), _col12 (type: double), _col13 (type: decimal(22,2)), _col14 
(type: bigint), _col15 (type: double), _col17 (type: double), _col18 (type: 
double), _col19 (type: double)
         Reducer 3 

http://git-wip-us.apache.org/repos/asf/hive/blob/8b968c7e/ql/src/test/results/clientpositive/spark/vectorization_13.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/vectorization_13.q.out 
b/ql/src/test/results/clientpositive/spark/vectorization_13.q.out
index c25649b..ecd12cb 100644
--- a/ql/src/test/results/clientpositive/spark/vectorization_13.q.out
+++ b/ql/src/test/results/clientpositive/spark/vectorization_13.q.out
@@ -97,7 +97,7 @@ STAGE PLANS:
                     Filter Vectorization:
                         className: VectorFilterOperator
                         native: true
-                        predicateExpression: FilterExprOrExpr(children: 
FilterExprAndExpr(children: FilterDoubleColLessDoubleScalar(col 4:float, val 
3569.0), FilterDoubleColLessEqualDoubleScalar(col 5:double, val 10.175), 
FilterLongColNotEqualLongScalar(col 10:boolean, val 1)), 
FilterExprAndExpr(children: FilterDoubleColGreaterDoubleScalar(col 13:double, 
val -28789.0)(children: CastTimestampToDouble(col 8:timestamp) -> 13:double), 
FilterDoubleColNotEqualDoubleScalar(col 13:double, val -28788.0)(children: 
CastTimestampToDouble(col 9:timestamp) -> 13:double), 
FilterDecimalColLessDecimalScalar(col 14:decimal(11,4), val 
9763215.5639)(children: CastLongToDecimal(col 0:tinyint) -> 14:decimal(11,4))))
+                        predicateExpression: FilterExprOrExpr(children: 
FilterExprAndExpr(children: FilterDoubleColLessDoubleScalar(col 4:float, val 
3569.0), FilterDoubleColLessEqualDoubleScalar(col 5:double, val 10.175), 
FilterLongColNotEqualLongScalar(col 10:boolean, val 1)), 
FilterExprAndExpr(children: FilterDoubleColGreaterDoubleScalar(col 13:double, 
val -28789.0)(children: CastTimestampToDouble(col 8:timestamp) -> 13:double), 
FilterDoubleColNotEqualDoubleScalar(col 14:double, val -28788.0)(children: 
CastTimestampToDouble(col 9:timestamp) -> 14:double), 
FilterDecimalColLessDecimalScalar(col 15:decimal(11,4), val 
9763215.5639)(children: CastLongToDecimal(col 0:tinyint) -> 15:decimal(11,4))))
                     predicate: (((UDFToDouble(ctimestamp1) > -28789.0D) and 
(UDFToDouble(ctimestamp2) <> -28788.0D) and (CAST( ctinyint AS decimal(11,4)) < 
9763215.5639)) or ((cfloat < 3569.0) and (cdouble <= 10.175D) and (cboolean1 <> 
1))) (type: boolean)
                     Statistics: Num rows: 2730 Data size: 646063 Basic stats: 
COMPLETE Column stats: NONE
                     Select Operator
@@ -106,13 +106,13 @@ STAGE PLANS:
                       Select Vectorization:
                           className: VectorSelectOperator
                           native: true
-                          projectedOutputColumnNums: [10, 0, 8, 4, 6, 4, 13, 
15, 18]
-                          selectExpressions: DoubleColMultiplyDoubleColumn(col 
4:double, col 4:double)(children: col 4:float, col 4:float) -> 13:double, 
CastLongToDouble(col 0:tinyint) -> 15:double, DoubleColMultiplyDoubleColumn(col 
16:double, col 17:double)(children: CastLongToDouble(col 0:tinyint) -> 
16:double, CastLongToDouble(col 0:tinyint) -> 17:double) -> 18:double
+                          projectedOutputColumnNums: [10, 0, 8, 4, 6, 4, 16, 
17, 20]
+                          selectExpressions: DoubleColMultiplyDoubleColumn(col 
4:double, col 4:double)(children: col 4:float, col 4:float) -> 16:double, 
CastLongToDouble(col 0:tinyint) -> 17:double, DoubleColMultiplyDoubleColumn(col 
18:double, col 19:double)(children: CastLongToDouble(col 0:tinyint) -> 
18:double, CastLongToDouble(col 0:tinyint) -> 19:double) -> 20:double
                       Statistics: Num rows: 2730 Data size: 646063 Basic 
stats: COMPLETE Column stats: NONE
                       Group By Operator
                         aggregations: max(_col1), sum(_col3), sum(_col6), 
sum(_col5), count(_col3), sum(_col8), sum(_col7), count(_col1), max(_col3), 
min(_col1)
                         Group By Vectorization:
-                            aggregators: VectorUDAFMaxLong(col 0:tinyint) -> 
tinyint, VectorUDAFSumDouble(col 4:float) -> double, VectorUDAFSumDouble(col 
13:double) -> double, VectorUDAFSumDouble(col 4:double) -> double, 
VectorUDAFCount(col 4:float) -> bigint, VectorUDAFSumDouble(col 18:double) -> 
double, VectorUDAFSumDouble(col 15:double) -> double, VectorUDAFCount(col 
0:tinyint) -> bigint, VectorUDAFMaxDouble(col 4:float) -> float, 
VectorUDAFMinLong(col 0:tinyint) -> tinyint
+                            aggregators: VectorUDAFMaxLong(col 0:tinyint) -> 
tinyint, VectorUDAFSumDouble(col 4:float) -> double, VectorUDAFSumDouble(col 
16:double) -> double, VectorUDAFSumDouble(col 4:double) -> double, 
VectorUDAFCount(col 4:float) -> bigint, VectorUDAFSumDouble(col 20:double) -> 
double, VectorUDAFSumDouble(col 17:double) -> double, VectorUDAFCount(col 
0:tinyint) -> bigint, VectorUDAFMaxDouble(col 4:float) -> float, 
VectorUDAFMinLong(col 0:tinyint) -> tinyint
                             className: VectorGroupByOperator
                             groupByMode: HASH
                             keyExpressions: col 10:boolean, col 0:tinyint, col 
8:timestamp, col 4:float, col 6:string
@@ -150,7 +150,7 @@ STAGE PLANS:
                     includeColumns: [0, 4, 5, 6, 8, 9, 10]
                     dataColumns: ctinyint:tinyint, csmallint:smallint, 
cint:int, cbigint:bigint, cfloat:float, cdouble:double, cstring1:string, 
cstring2:string, ctimestamp1:timestamp, ctimestamp2:timestamp, 
cboolean1:boolean, cboolean2:boolean
                     partitionColumnCount: 0
-                    scratchColumnTypeNames: [double, decimal(11,4), double, 
double, double, double]
+                    scratchColumnTypeNames: [double, double, decimal(11,4), 
double, double, double, double, double]
         Reducer 2 
             Execution mode: vectorized
             Reduce Vectorization:
@@ -187,15 +187,15 @@ STAGE PLANS:
                   Select Vectorization:
                       className: VectorSelectOperator
                       native: true
-                      projectedOutputColumnNums: [0, 1, 2, 3, 4, 15, 5, 17, 6, 
20, 19, 21, 22, 23, 24, 27, 28, 25, 13, 31, 14]
-                      selectExpressions: LongColUnaryMinus(col 1:tinyint) -> 
15:tinyint, LongColAddLongColumn(col 16:tinyint, col 5:tinyint)(children: 
LongColUnaryMinus(col 1:tinyint) -> 16:tinyint) -> 17:tinyint, 
DoubleColMultiplyDoubleColumn(col 6:double, col 19:double)(children: 
CastLongToDouble(col 18:tinyint)(children: LongColAddLongColumn(col 16:tinyint, 
col 5:tinyint)(children: LongColUnaryMinus(col 1:tinyint) -> 16:tinyint) -> 
18:tinyint) -> 19:double) -> 20:double, DoubleColUnaryMinus(col 6:double) -> 
19:double, DoubleScalarMultiplyDoubleColumn(val 79.5530014038086, col 3:float) 
-> 21:float, FuncPowerDoubleToDouble(col 23:double)(children: 
DoubleColDivideLongColumn(col 22:double, col 9:bigint)(children: 
DoubleColSubtractDoubleColumn(col 7:double, col 23:double)(children: 
DoubleColDivideLongColumn(col 22:double, col 9:bigint)(children: 
DoubleColMultiplyDoubleColumn(col 8:double, col 8:double) -> 22:double) -> 
23:double) -> 22:double) -> 23:double) -> 22:double, DoubleColUnar
 yMinus(col 6:double) -> 23:double, FuncPowerDoubleToDouble(col 
25:double)(children: DoubleColDivideLongColumn(col 24:double, col 
12:bigint)(children: DoubleColSubtractDoubleColumn(col 10:double, col 
25:double)(children: DoubleColDivideLongColumn(col 24:double, col 
12:bigint)(children: DoubleColMultiplyDoubleColumn(col 11:double, col 
11:double) -> 24:double) -> 25:double) -> 24:double) -> 25:double) -> 
24:double, DecimalColSubtractDecimalScalar(col 26:decimal(3,0), val 
10.175)(children: CastLongToDecimal(col 18:tinyint)(children: 
LongColAddLongColumn(col 16:tinyint, col 5:tinyint)(children: 
LongColUnaryMinus(col 1:tinyint) -> 16:tinyint) -> 18:tinyint) -> 
26:decimal(3,0)) -> 27:decimal(7,3), DoubleColUnaryMinus(col 
25:double)(children: DoubleColUnaryMinus(col 6:double) -> 25:double) -> 
28:double, DoubleScalarDivideDoubleColumn(val -26.28, col 29:double)(children: 
DoubleColUnaryMinus(col 25:double)(children: DoubleColUnaryMinus(col 6:double) 
-> 25:double) -> 29:double) -> 25:double, D
 oubleColDivideDoubleColumn(col 30:double, col 29:double)(children: 
DoubleColMultiplyDoubleColumn(col 6:double, col 29:double)(children: 
CastLongToDouble(col 18:tinyint)(children: LongColAddLongColumn(col 16:tinyint, 
col 5:tinyint)(children: LongColUnaryMinus(col 1:tinyint) -> 16:tinyint) -> 
18:tinyint) -> 29:double) -> 30:double, CastLongToDouble(col 1:tinyint) -> 
29:double) -> 31:double
+                      projectedOutputColumnNums: [0, 1, 2, 3, 4, 15, 5, 17, 6, 
21, 22, 23, 28, 29, 34, 38, 40, 43, 13, 49, 14]
+                      selectExpressions: LongColUnaryMinus(col 1:tinyint) -> 
15:tinyint, LongColAddLongColumn(col 16:tinyint, col 5:tinyint)(children: 
LongColUnaryMinus(col 1:tinyint) -> 16:tinyint) -> 17:tinyint, 
DoubleColMultiplyDoubleColumn(col 6:double, col 20:double)(children: 
CastLongToDouble(col 19:tinyint)(children: LongColAddLongColumn(col 18:tinyint, 
col 5:tinyint)(children: LongColUnaryMinus(col 1:tinyint) -> 18:tinyint) -> 
19:tinyint) -> 20:double) -> 21:double, DoubleColUnaryMinus(col 6:double) -> 
22:double, DoubleScalarMultiplyDoubleColumn(val 79.5530014038086, col 3:float) 
-> 23:float, FuncPowerDoubleToDouble(col 27:double)(children: 
DoubleColDivideLongColumn(col 26:double, col 9:bigint)(children: 
DoubleColSubtractDoubleColumn(col 7:double, col 25:double)(children: 
DoubleColDivideLongColumn(col 24:double, col 9:bigint)(children: 
DoubleColMultiplyDoubleColumn(col 8:double, col 8:double) -> 24:double) -> 
25:double) -> 26:double) -> 27:double) -> 28:double, DoubleColUnar
 yMinus(col 6:double) -> 29:double, FuncPowerDoubleToDouble(col 
33:double)(children: DoubleColDivideLongColumn(col 32:double, col 
12:bigint)(children: DoubleColSubtractDoubleColumn(col 10:double, col 
31:double)(children: DoubleColDivideLongColumn(col 30:double, col 
12:bigint)(children: DoubleColMultiplyDoubleColumn(col 11:double, col 
11:double) -> 30:double) -> 31:double) -> 32:double) -> 33:double) -> 
34:double, DecimalColSubtractDecimalScalar(col 37:decimal(3,0), val 
10.175)(children: CastLongToDecimal(col 36:tinyint)(children: 
LongColAddLongColumn(col 35:tinyint, col 5:tinyint)(children: 
LongColUnaryMinus(col 1:tinyint) -> 35:tinyint) -> 36:tinyint) -> 
37:decimal(3,0)) -> 38:decimal(7,3), DoubleColUnaryMinus(col 
39:double)(children: DoubleColUnaryMinus(col 6:double) -> 39:double) -> 
40:double, DoubleScalarDivideDoubleColumn(val -26.28, col 42:double)(children: 
DoubleColUnaryMinus(col 41:double)(children: DoubleColUnaryMinus(col 6:double) 
-> 41:double) -> 42:double) -> 43:double, D
 oubleColDivideDoubleColumn(col 47:double, col 48:double)(children: 
DoubleColMultiplyDoubleColumn(col 6:double, col 46:double)(children: 
CastLongToDouble(col 45:tinyint)(children: LongColAddLongColumn(col 44:tinyint, 
col 5:tinyint)(children: LongColUnaryMinus(col 1:tinyint) -> 44:tinyint) -> 
45:tinyint) -> 46:double) -> 47:double, CastLongToDouble(col 1:tinyint) -> 
48:double) -> 49:double
                   Statistics: Num rows: 1365 Data size: 323031 Basic stats: 
COMPLETE Column stats: NONE
                   Reduce Output Operator
                     key expressions: _col0 (type: boolean), _col1 (type: 
tinyint), _col2 (type: timestamp), _col3 (type: float), _col4 (type: string), 
_col5 (type: tinyint), _col6 (type: tinyint), _col7 (type: tinyint), _col8 
(type: double), _col9 (type: double), _col10 (type: double), _col11 (type: 
float), _col12 (type: double), _col13 (type: double), _col14 (type: double), 
_col15 (type: decimal(7,3)), _col16 (type: double), _col17 (type: double), 
_col18 (type: float), _col19 (type: double), _col20 (type: tinyint)
                     sort order: +++++++++++++++++++++
                     Reduce Sink Vectorization:
                         className: VectorReduceSinkObjectHashOperator
-                        keyColumns: 0:boolean, 1:tinyint, 2:timestamp, 
3:float, 4:string, 15:tinyint, 5:tinyint, 17:tinyint, 6:double, 20:double, 
19:double, 21:float, 22:double, 23:double, 24:double, 27:decimal(7,3), 
28:double, 25:double, 13:float, 31:double, 14:tinyint
+                        keyColumns: 0:boolean, 1:tinyint, 2:timestamp, 
3:float, 4:string, 15:tinyint, 5:tinyint, 17:tinyint, 6:double, 21:double, 
22:double, 23:float, 28:double, 29:double, 34:double, 38:decimal(7,3), 
40:double, 43:double, 13:float, 49:double, 14:tinyint
                         native: true
                         nativeConditionsMet: 
hive.vectorized.execution.reducesink.new.enabled IS true, hive.execution.engine 
spark IN [tez, spark] IS true, No PTF TopN IS true, No DISTINCT columns IS 
true, BinarySortableSerDe for keys IS true, LazyBinarySerDe for values IS true
                     Statistics: Num rows: 1365 Data size: 323031 Basic stats: 
COMPLETE Column stats: NONE
@@ -453,7 +453,7 @@ STAGE PLANS:
                     Filter Vectorization:
                         className: VectorFilterOperator
                         native: true
-                        predicateExpression: FilterExprOrExpr(children: 
FilterExprAndExpr(children: FilterDoubleColLessDoubleScalar(col 4:float, val 
3569.0), FilterDoubleColLessEqualDoubleScalar(col 5:double, val 10.175), 
FilterLongColNotEqualLongScalar(col 10:boolean, val 1)), 
FilterExprAndExpr(children: FilterDoubleColGreaterDoubleScalar(col 13:double, 
val -28801.388)(children: CastTimestampToDouble(col 8:timestamp) -> 13:double), 
FilterDoubleColNotEqualDoubleScalar(col 13:double, val -28801.336)(children: 
CastTimestampToDouble(col 9:timestamp) -> 13:double), 
FilterDecimalColLessDecimalScalar(col 14:decimal(11,4), val 
9763215.5639)(children: CastLongToDecimal(col 0:tinyint) -> 14:decimal(11,4))))
+                        predicateExpression: FilterExprOrExpr(children: 
FilterExprAndExpr(children: FilterDoubleColLessDoubleScalar(col 4:float, val 
3569.0), FilterDoubleColLessEqualDoubleScalar(col 5:double, val 10.175), 
FilterLongColNotEqualLongScalar(col 10:boolean, val 1)), 
FilterExprAndExpr(children: FilterDoubleColGreaterDoubleScalar(col 13:double, 
val -28801.388)(children: CastTimestampToDouble(col 8:timestamp) -> 13:double), 
FilterDoubleColNotEqualDoubleScalar(col 14:double, val -28801.336)(children: 
CastTimestampToDouble(col 9:timestamp) -> 14:double), 
FilterDecimalColLessDecimalScalar(col 15:decimal(11,4), val 
9763215.5639)(children: CastLongToDecimal(col 0:tinyint) -> 15:decimal(11,4))))
                     predicate: (((UDFToDouble(ctimestamp1) > -28801.388D) and 
(UDFToDouble(ctimestamp2) <> -28801.336D) and (CAST( ctinyint AS decimal(11,4)) 
< 9763215.5639)) or ((cfloat < 3569.0) and (cdouble <= 10.175D) and (cboolean1 
<> 1))) (type: boolean)
                     Statistics: Num rows: 2730 Data size: 646063 Basic stats: 
COMPLETE Column stats: NONE
                     Select Operator
@@ -462,13 +462,13 @@ STAGE PLANS:
                       Select Vectorization:
                           className: VectorSelectOperator
                           native: true
-                          projectedOutputColumnNums: [10, 0, 8, 4, 6, 4, 13, 
15, 18]
-                          selectExpressions: DoubleColMultiplyDoubleColumn(col 
4:double, col 4:double)(children: col 4:float, col 4:float) -> 13:double, 
CastLongToDouble(col 0:tinyint) -> 15:double, DoubleColMultiplyDoubleColumn(col 
16:double, col 17:double)(children: CastLongToDouble(col 0:tinyint) -> 
16:double, CastLongToDouble(col 0:tinyint) -> 17:double) -> 18:double
+                          projectedOutputColumnNums: [10, 0, 8, 4, 6, 4, 16, 
17, 20]
+                          selectExpressions: DoubleColMultiplyDoubleColumn(col 
4:double, col 4:double)(children: col 4:float, col 4:float) -> 16:double, 
CastLongToDouble(col 0:tinyint) -> 17:double, DoubleColMultiplyDoubleColumn(col 
18:double, col 19:double)(children: CastLongToDouble(col 0:tinyint) -> 
18:double, CastLongToDouble(col 0:tinyint) -> 19:double) -> 20:double
                       Statistics: Num rows: 2730 Data size: 646063 Basic 
stats: COMPLETE Column stats: NONE
                       Group By Operator
                         aggregations: max(_col1), sum(_col3), sum(_col6), 
sum(_col5), count(_col3), sum(_col8), sum(_col7), count(_col1), max(_col3), 
min(_col1)
                         Group By Vectorization:
-                            aggregators: VectorUDAFMaxLong(col 0:tinyint) -> 
tinyint, VectorUDAFSumDouble(col 4:float) -> double, VectorUDAFSumDouble(col 
13:double) -> double, VectorUDAFSumDouble(col 4:double) -> double, 
VectorUDAFCount(col 4:float) -> bigint, VectorUDAFSumDouble(col 18:double) -> 
double, VectorUDAFSumDouble(col 15:double) -> double, VectorUDAFCount(col 
0:tinyint) -> bigint, VectorUDAFMaxDouble(col 4:float) -> float, 
VectorUDAFMinLong(col 0:tinyint) -> tinyint
+                            aggregators: VectorUDAFMaxLong(col 0:tinyint) -> 
tinyint, VectorUDAFSumDouble(col 4:float) -> double, VectorUDAFSumDouble(col 
16:double) -> double, VectorUDAFSumDouble(col 4:double) -> double, 
VectorUDAFCount(col 4:float) -> bigint, VectorUDAFSumDouble(col 20:double) -> 
double, VectorUDAFSumDouble(col 17:double) -> double, VectorUDAFCount(col 
0:tinyint) -> bigint, VectorUDAFMaxDouble(col 4:float) -> float, 
VectorUDAFMinLong(col 0:tinyint) -> tinyint
                             className: VectorGroupByOperator
                             groupByMode: HASH
                             keyExpressions: col 10:boolean, col 0:tinyint, col 
8:timestamp, col 4:float, col 6:string
@@ -528,8 +528,8 @@ STAGE PLANS:
                   Select Vectorization:
                       className: VectorSelectOperator
                       native: true
-                      projectedOutputColumnNums: [0, 1, 2, 3, 4, 15, 5, 17, 6, 
20, 19, 21, 22, 23, 24, 27, 28, 25, 13, 31, 14]
-                      selectExpressions: LongColUnaryMinus(col 1:tinyint) -> 
15:tinyint, LongColAddLongColumn(col 16:tinyint, col 5:tinyint)(children: 
LongColUnaryMinus(col 1:tinyint) -> 16:tinyint) -> 17:tinyint, 
DoubleColMultiplyDoubleColumn(col 6:double, col 19:double)(children: 
CastLongToDouble(col 18:tinyint)(children: LongColAddLongColumn(col 16:tinyint, 
col 5:tinyint)(children: LongColUnaryMinus(col 1:tinyint) -> 16:tinyint) -> 
18:tinyint) -> 19:double) -> 20:double, DoubleColUnaryMinus(col 6:double) -> 
19:double, DoubleScalarMultiplyDoubleColumn(val 79.5530014038086, col 3:float) 
-> 21:float, FuncPowerDoubleToDouble(col 23:double)(children: 
DoubleColDivideLongColumn(col 22:double, col 9:bigint)(children: 
DoubleColSubtractDoubleColumn(col 7:double, col 23:double)(children: 
DoubleColDivideLongColumn(col 22:double, col 9:bigint)(children: 
DoubleColMultiplyDoubleColumn(col 8:double, col 8:double) -> 22:double) -> 
23:double) -> 22:double) -> 23:double) -> 22:double, DoubleColUnar
 yMinus(col 6:double) -> 23:double, FuncPowerDoubleToDouble(col 
25:double)(children: DoubleColDivideLongColumn(col 24:double, col 
12:bigint)(children: DoubleColSubtractDoubleColumn(col 10:double, col 
25:double)(children: DoubleColDivideLongColumn(col 24:double, col 
12:bigint)(children: DoubleColMultiplyDoubleColumn(col 11:double, col 
11:double) -> 24:double) -> 25:double) -> 24:double) -> 25:double) -> 
24:double, DecimalColSubtractDecimalScalar(col 26:decimal(3,0), val 
10.175)(children: CastLongToDecimal(col 18:tinyint)(children: 
LongColAddLongColumn(col 16:tinyint, col 5:tinyint)(children: 
LongColUnaryMinus(col 1:tinyint) -> 16:tinyint) -> 18:tinyint) -> 
26:decimal(3,0)) -> 27:decimal(7,3), DoubleColUnaryMinus(col 
25:double)(children: DoubleColUnaryMinus(col 6:double) -> 25:double) -> 
28:double, DoubleScalarDivideDoubleColumn(val -26.28, col 29:double)(children: 
DoubleColUnaryMinus(col 25:double)(children: DoubleColUnaryMinus(col 6:double) 
-> 25:double) -> 29:double) -> 25:double, D
 oubleColDivideDoubleColumn(col 30:double, col 29:double)(children: 
DoubleColMultiplyDoubleColumn(col 6:double, col 29:double)(children: 
CastLongToDouble(col 18:tinyint)(children: LongColAddLongColumn(col 16:tinyint, 
col 5:tinyint)(children: LongColUnaryMinus(col 1:tinyint) -> 16:tinyint) -> 
18:tinyint) -> 29:double) -> 30:double, CastLongToDouble(col 1:tinyint) -> 
29:double) -> 31:double
+                      projectedOutputColumnNums: [0, 1, 2, 3, 4, 15, 5, 17, 6, 
21, 22, 23, 28, 29, 34, 38, 40, 43, 13, 49, 14]
+                      selectExpressions: LongColUnaryMinus(col 1:tinyint) -> 
15:tinyint, LongColAddLongColumn(col 16:tinyint, col 5:tinyint)(children: 
LongColUnaryMinus(col 1:tinyint) -> 16:tinyint) -> 17:tinyint, 
DoubleColMultiplyDoubleColumn(col 6:double, col 20:double)(children: 
CastLongToDouble(col 19:tinyint)(children: LongColAddLongColumn(col 18:tinyint, 
col 5:tinyint)(children: LongColUnaryMinus(col 1:tinyint) -> 18:tinyint) -> 
19:tinyint) -> 20:double) -> 21:double, DoubleColUnaryMinus(col 6:double) -> 
22:double, DoubleScalarMultiplyDoubleColumn(val 79.5530014038086, col 3:float) 
-> 23:float, FuncPowerDoubleToDouble(col 27:double)(children: 
DoubleColDivideLongColumn(col 26:double, col 9:bigint)(children: 
DoubleColSubtractDoubleColumn(col 7:double, col 25:double)(children: 
DoubleColDivideLongColumn(col 24:double, col 9:bigint)(children: 
DoubleColMultiplyDoubleColumn(col 8:double, col 8:double) -> 24:double) -> 
25:double) -> 26:double) -> 27:double) -> 28:double, DoubleColUnar
 yMinus(col 6:double) -> 29:double, FuncPowerDoubleToDouble(col 
33:double)(children: DoubleColDivideLongColumn(col 32:double, col 
12:bigint)(children: DoubleColSubtractDoubleColumn(col 10:double, col 
31:double)(children: DoubleColDivideLongColumn(col 30:double, col 
12:bigint)(children: DoubleColMultiplyDoubleColumn(col 11:double, col 
11:double) -> 30:double) -> 31:double) -> 32:double) -> 33:double) -> 
34:double, DecimalColSubtractDecimalScalar(col 37:decimal(3,0), val 
10.175)(children: CastLongToDecimal(col 36:tinyint)(children: 
LongColAddLongColumn(col 35:tinyint, col 5:tinyint)(children: 
LongColUnaryMinus(col 1:tinyint) -> 35:tinyint) -> 36:tinyint) -> 
37:decimal(3,0)) -> 38:decimal(7,3), DoubleColUnaryMinus(col 
39:double)(children: DoubleColUnaryMinus(col 6:double) -> 39:double) -> 
40:double, DoubleScalarDivideDoubleColumn(val -26.28, col 42:double)(children: 
DoubleColUnaryMinus(col 41:double)(children: DoubleColUnaryMinus(col 6:double) 
-> 41:double) -> 42:double) -> 43:double, D
 oubleColDivideDoubleColumn(col 47:double, col 48:double)(children: 
DoubleColMultiplyDoubleColumn(col 6:double, col 46:double)(children: 
CastLongToDouble(col 45:tinyint)(children: LongColAddLongColumn(col 44:tinyint, 
col 5:tinyint)(children: LongColUnaryMinus(col 1:tinyint) -> 44:tinyint) -> 
45:tinyint) -> 46:double) -> 47:double, CastLongToDouble(col 1:tinyint) -> 
48:double) -> 49:double
                   Statistics: Num rows: 1365 Data size: 323031 Basic stats: 
COMPLETE Column stats: NONE
                   Reduce Output Operator
                     key expressions: _col0 (type: boolean), _col1 (type: 
tinyint), _col2 (type: timestamp), _col3 (type: float), _col4 (type: string), 
_col5 (type: tinyint), _col6 (type: tinyint), _col7 (type: tinyint), _col8 
(type: double), _col9 (type: double), _col10 (type: double), _col11 (type: 
float), _col12 (type: double), _col13 (type: double), _col14 (type: double), 
_col15 (type: decimal(7,3)), _col16 (type: double), _col17 (type: double), 
_col18 (type: float), _col19 (type: double), _col20 (type: tinyint)

http://git-wip-us.apache.org/repos/asf/hive/blob/8b968c7e/ql/src/test/results/clientpositive/spark/vectorization_14.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/vectorization_14.q.out 
b/ql/src/test/results/clientpositive/spark/vectorization_14.q.out
index 780be9c..5435eb4 100644
--- a/ql/src/test/results/clientpositive/spark/vectorization_14.q.out
+++ b/ql/src/test/results/clientpositive/spark/vectorization_14.q.out
@@ -97,7 +97,7 @@ STAGE PLANS:
                     Filter Vectorization:
                         className: VectorFilterOperator
                         native: true
-                        predicateExpression: FilterExprAndExpr(children: 
FilterLongColLessEqualLongColumn(col 0:bigint, col 3:bigint)(children: col 
0:tinyint), FilterExprOrExpr(children: FilterDoubleColLessEqualDoubleColumn(col 
13:double, col 5:double)(children: CastLongToDouble(col 2:int) -> 13:double), 
FilterTimestampColLessTimestampColumn(col 9:timestamp, col 8:timestamp)), 
FilterDoubleColLessDoubleColumn(col 5:double, col 13:double)(children: 
CastLongToDouble(col 0:tinyint) -> 13:double), FilterExprOrExpr(children: 
FilterLongColGreaterLongScalar(col 3:bigint, val -257), 
FilterDoubleColLessDoubleColumn(col 4:float, col 13:float)(children: 
CastLongToFloatViaLongToDouble(col 2:int) -> 13:float)))
+                        predicateExpression: FilterExprAndExpr(children: 
FilterLongColLessEqualLongColumn(col 0:bigint, col 3:bigint)(children: col 
0:tinyint), FilterExprOrExpr(children: FilterDoubleColLessEqualDoubleColumn(col 
13:double, col 5:double)(children: CastLongToDouble(col 2:int) -> 13:double), 
FilterTimestampColLessTimestampColumn(col 9:timestamp, col 8:timestamp)), 
FilterDoubleColLessDoubleColumn(col 5:double, col 14:double)(children: 
CastLongToDouble(col 0:tinyint) -> 14:double), FilterExprOrExpr(children: 
FilterLongColGreaterLongScalar(col 3:bigint, val -257), 
FilterDoubleColLessDoubleColumn(col 4:float, col 15:float)(children: 
CastLongToFloatViaLongToDouble(col 2:int) -> 15:float)))
                     predicate: (((UDFToDouble(cint) <= cdouble) or 
(ctimestamp2 < ctimestamp1)) and ((cbigint > -257L) or (cfloat < 
UDFToFloat(cint))) and (UDFToLong(ctinyint) <= cbigint) and (cdouble < 
UDFToDouble(ctinyint))) (type: boolean)
                     Statistics: Num rows: 606 Data size: 143411 Basic stats: 
COMPLETE Column stats: NONE
                     Select Operator
@@ -106,13 +106,13 @@ STAGE PLANS:
                       Select Vectorization:
                           className: VectorSelectOperator
                           native: true
-                          projectedOutputColumnNums: [8, 4, 6, 10, 5, 14, 13, 
4, 15]
-                          selectExpressions: DoubleColUnaryMinus(col 
13:double)(children: DoubleScalarAddDoubleColumn(val -26.28, col 5:double) -> 
13:double) -> 14:double, DoubleColMultiplyDoubleColumn(col 15:double, col 
16:double)(children: DoubleColUnaryMinus(col 13:double)(children: 
DoubleScalarAddDoubleColumn(val -26.28, col 5:double) -> 13:double) -> 
15:double, DoubleColUnaryMinus(col 13:double)(children: 
DoubleScalarAddDoubleColumn(val -26.28, col 5:double) -> 13:double) -> 
16:double) -> 13:double, DoubleColMultiplyDoubleColumn(col 4:double, col 
4:double)(children: col 4:float, col 4:float) -> 15:double
+                          projectedOutputColumnNums: [8, 4, 6, 10, 5, 17, 22, 
4, 23]
+                          selectExpressions: DoubleColUnaryMinus(col 
16:double)(children: DoubleScalarAddDoubleColumn(val -26.28, col 5:double) -> 
16:double) -> 17:double, DoubleColMultiplyDoubleColumn(col 19:double, col 
21:double)(children: DoubleColUnaryMinus(col 18:double)(children: 
DoubleScalarAddDoubleColumn(val -26.28, col 5:double) -> 18:double) -> 
19:double, DoubleColUnaryMinus(col 20:double)(children: 
DoubleScalarAddDoubleColumn(val -26.28, col 5:double) -> 20:double) -> 
21:double) -> 22:double, DoubleColMultiplyDoubleColumn(col 4:double, col 
4:double)(children: col 4:float, col 4:float) -> 23:double
                       Statistics: Num rows: 606 Data size: 143411 Basic stats: 
COMPLETE Column stats: NONE
                       Group By Operator
                         aggregations: sum(_col6), sum(_col5), count(_col5), 
max(_col1), sum(_col8), sum(_col7), count(_col1)
                         Group By Vectorization:
-                            aggregators: VectorUDAFSumDouble(col 13:double) -> 
double, VectorUDAFSumDouble(col 14:double) -> double, VectorUDAFCount(col 
14:double) -> bigint, VectorUDAFMaxDouble(col 4:float) -> float, 
VectorUDAFSumDouble(col 15:double) -> double, VectorUDAFSumDouble(col 4:double) 
-> double, VectorUDAFCount(col 4:float) -> bigint
+                            aggregators: VectorUDAFSumDouble(col 22:double) -> 
double, VectorUDAFSumDouble(col 17:double) -> double, VectorUDAFCount(col 
17:double) -> bigint, VectorUDAFMaxDouble(col 4:float) -> float, 
VectorUDAFSumDouble(col 23:double) -> double, VectorUDAFSumDouble(col 4:double) 
-> double, VectorUDAFCount(col 4:float) -> bigint
                             className: VectorGroupByOperator
                             groupByMode: HASH
                             keyExpressions: col 6:string, col 4:float, col 
5:double, col 8:timestamp, col 10:boolean
@@ -150,7 +150,7 @@ STAGE PLANS:
                     includeColumns: [0, 2, 3, 4, 5, 6, 8, 9, 10]
                     dataColumns: ctinyint:tinyint, csmallint:smallint, 
cint:int, cbigint:bigint, cfloat:float, cdouble:double, cstring1:string, 
cstring2:string, ctimestamp1:timestamp, ctimestamp2:timestamp, 
cboolean1:boolean, cboolean2:boolean
                     partitionColumnCount: 0
-                    scratchColumnTypeNames: [double, double, double, double]
+                    scratchColumnTypeNames: [double, double, double, double, 
double, double, double, double, double, double, double]
         Reducer 2 
             Execution mode: vectorized
             Reduce Vectorization:
@@ -187,8 +187,8 @@ STAGE PLANS:
                   Select Vectorization:
                       className: VectorSelectOperator
                       native: true
-                      projectedOutputColumnNums: [3, 1, 0, 4, 2, 12, 14, 13, 
15, 8, 19, 20, 21, 22, 11, 24, 25, 23, 29, 28, 31, 34]
-                      selectExpressions: DoubleScalarAddDoubleColumn(val 
-26.28, col 2:double) -> 12:double, DoubleColUnaryMinus(col 
13:double)(children: DoubleScalarAddDoubleColumn(val -26.28, col 2:double) -> 
13:double) -> 14:double, FuncPowerDoubleToDouble(col 15:double)(children: 
DoubleColDivideLongColumn(col 13:double, col 18:bigint)(children: 
DoubleColSubtractDoubleColumn(col 5:double, col 15:double)(children: 
DoubleColDivideLongColumn(col 13:double, col 7:bigint)(children: 
DoubleColMultiplyDoubleColumn(col 6:double, col 6:double) -> 13:double) -> 
15:double) -> 13:double, IfExprNullCondExpr(col 16:boolean, null, col 
17:bigint)(children: LongColEqualLongScalar(col 7:bigint, val 1) -> 16:boolean, 
LongColSubtractLongScalar(col 7:bigint, val 1) -> 17:bigint) -> 18:bigint) -> 
15:double) -> 13:double, DoubleColMultiplyDoubleScalar(col 1:float, val 
-26.280000686645508) -> 15:float, DoubleColUnaryMinus(col 1:float) -> 19:float, 
DoubleColUnaryMinus(col 8:float) -> 20:float, DoubleColDi
 videDoubleScalar(col 22:double, val 10.175)(children: DoubleColUnaryMinus(col 
21:double)(children: DoubleScalarAddDoubleColumn(val -26.28, col 2:double) -> 
21:double) -> 22:double) -> 21:double, FuncPowerDoubleToDouble(col 
23:double)(children: DoubleColDivideLongColumn(col 22:double, col 
11:bigint)(children: DoubleColSubtractDoubleColumn(col 9:double, col 
23:double)(children: DoubleColDivideLongColumn(col 22:double, col 
11:bigint)(children: DoubleColMultiplyDoubleColumn(col 10:double, col 
10:double) -> 22:double) -> 23:double) -> 22:double) -> 23:double) -> 
22:double, DoubleColUnaryMinus(col 23:double)(children: 
DoubleColDivideDoubleScalar(col 24:double, val 10.175)(children: 
DoubleColUnaryMinus(col 23:double)(children: DoubleScalarAddDoubleColumn(val 
-26.28, col 2:double) -> 23:double) -> 24:double) -> 23:double) -> 24:double, 
DoubleScalarModuloDoubleColumn(val -1.389, col 23:double)(children: 
FuncPowerDoubleToDouble(col 25:double)(children: DoubleColDivideLongColumn(col 
23:double,
  col 27:bigint)(children: DoubleColSubtractDoubleColumn(col 5:double, col 
25:double)(children: DoubleColDivideLongColumn(col 23:double, col 
7:bigint)(children: DoubleColMultiplyDoubleColumn(col 6:double, col 6:double) 
-> 23:double) -> 25:double) -> 23:double, IfExprNullCondExpr(col 18:boolean, 
null, col 26:bigint)(children: LongColEqualLongScalar(col 7:bigint, val 1) -> 
18:boolean, LongColSubtractLongScalar(col 7:bigint, val 1) -> 26:bigint) -> 
27:bigint) -> 25:double) -> 23:double) -> 25:double, 
DoubleColSubtractDoubleColumn(col 1:double, col 2:double)(children: col 
1:float) -> 23:double, DoubleColDivideLongColumn(col 28:double, col 
11:bigint)(children: DoubleColSubtractDoubleColumn(col 9:double, col 
29:double)(children: DoubleColDivideLongColumn(col 28:double, col 
11:bigint)(children: DoubleColMultiplyDoubleColumn(col 10:double, col 
10:double) -> 28:double) -> 29:double) -> 28:double) -> 29:double, 
DoubleColModuloDoubleScalar(col 30:double, val 10.175)(children: 
DoubleColDivideLon
 gColumn(col 28:double, col 11:bigint)(children: 
DoubleColSubtractDoubleColumn(col 9:double, col 30:double)(children: 
DoubleColDivideLongColumn(col 28:double, col 11:bigint)(children: 
DoubleColMultiplyDoubleColumn(col 10:double, col 10:double) -> 28:double) -> 
30:double) -> 28:double) -> 30:double) -> 28:double, 
DoubleColDivideLongColumn(col 30:double, col 33:bigint)(children: 
DoubleColSubtractDoubleColumn(col 9:double, col 31:double)(children: 
DoubleColDivideLongColumn(col 30:double, col 11:bigint)(children: 
DoubleColMultiplyDoubleColumn(col 10:double, col 10:double) -> 30:double) -> 
31:double) -> 30:double, IfExprNullCondExpr(col 27:boolean, null, col 
32:bigint)(children: LongColEqualLongScalar(col 11:bigint, val 1) -> 
27:boolean, LongColSubtractLongScalar(col 11:bigint, val 1) -> 32:bigint) -> 
33:bigint) -> 31:double, DoubleColUnaryMinus(col 30:double)(children: 
DoubleColSubtractDoubleColumn(col 1:double, col 2:double)(children: col 
1:float) -> 30:double) -> 34:double
+                      projectedOutputColumnNums: [3, 1, 0, 4, 2, 12, 14, 22, 
23, 8, 24, 25, 28, 33, 11, 37, 46, 47, 51, 56, 63, 65]
+                      selectExpressions: DoubleScalarAddDoubleColumn(val 
-26.28, col 2:double) -> 12:double, DoubleColUnaryMinus(col 
13:double)(children: DoubleScalarAddDoubleColumn(val -26.28, col 2:double) -> 
13:double) -> 14:double, FuncPowerDoubleToDouble(col 21:double)(children: 
DoubleColDivideLongColumn(col 17:double, col 20:bigint)(children: 
DoubleColSubtractDoubleColumn(col 5:double, col 16:double)(children: 
DoubleColDivideLongColumn(col 15:double, col 7:bigint)(children: 
DoubleColMultiplyDoubleColumn(col 6:double, col 6:double) -> 15:double) -> 
16:double) -> 17:double, IfExprNullCondExpr(col 18:boolean, null, col 
19:bigint)(children: LongColEqualLongScalar(col 7:bigint, val 1) -> 18:boolean, 
LongColSubtractLongScalar(col 7:bigint, val 1) -> 19:bigint) -> 20:bigint) -> 
21:double) -> 22:double, DoubleColMultiplyDoubleScalar(col 1:float, val 
-26.280000686645508) -> 23:float, DoubleColUnaryMinus(col 1:float) -> 24:float, 
DoubleColUnaryMinus(col 8:float) -> 25:float, DoubleColDi
 videDoubleScalar(col 27:double, val 10.175)(children: DoubleColUnaryMinus(col 
26:double)(children: DoubleScalarAddDoubleColumn(val -26.28, col 2:double) -> 
26:double) -> 27:double) -> 28:double, FuncPowerDoubleToDouble(col 
32:double)(children: DoubleColDivideLongColumn(col 31:double, col 
11:bigint)(children: DoubleColSubtractDoubleColumn(col 9:double, col 
30:double)(children: DoubleColDivideLongColumn(col 29:double, col 
11:bigint)(children: DoubleColMultiplyDoubleColumn(col 10:double, col 
10:double) -> 29:double) -> 30:double) -> 31:double) -> 32:double) -> 
33:double, DoubleColUnaryMinus(col 36:double)(children: 
DoubleColDivideDoubleScalar(col 35:double, val 10.175)(children: 
DoubleColUnaryMinus(col 34:double)(children: DoubleScalarAddDoubleColumn(val 
-26.28, col 2:double) -> 34:double) -> 35:double) -> 36:double) -> 37:double, 
DoubleScalarModuloDoubleColumn(val -1.389, col 45:double)(children: 
FuncPowerDoubleToDouble(col 44:double)(children: DoubleColDivideLongColumn(col 
40:double,
  col 43:bigint)(children: DoubleColSubtractDoubleColumn(col 5:double, col 
39:double)(children: DoubleColDivideLongColumn(col 38:double, col 
7:bigint)(children: DoubleColMultiplyDoubleColumn(col 6:double, col 6:double) 
-> 38:double) -> 39:double) -> 40:double, IfExprNullCondExpr(col 41:boolean, 
null, col 42:bigint)(children: LongColEqualLongScalar(col 7:bigint, val 1) -> 
41:boolean, LongColSubtractLongScalar(col 7:bigint, val 1) -> 42:bigint) -> 
43:bigint) -> 44:double) -> 45:double) -> 46:double, 
DoubleColSubtractDoubleColumn(col 1:double, col 2:double)(children: col 
1:float) -> 47:double, DoubleColDivideLongColumn(col 50:double, col 
11:bigint)(children: DoubleColSubtractDoubleColumn(col 9:double, col 
49:double)(children: DoubleColDivideLongColumn(col 48:double, col 
11:bigint)(children: DoubleColMultiplyDoubleColumn(col 10:double, col 
10:double) -> 48:double) -> 49:double) -> 50:double) -> 51:double, 
DoubleColModuloDoubleScalar(col 55:double, val 10.175)(children: 
DoubleColDivideLon
 gColumn(col 54:double, col 11:bigint)(children: 
DoubleColSubtractDoubleColumn(col 9:double, col 53:double)(children: 
DoubleColDivideLongColumn(col 52:double, col 11:bigint)(children: 
DoubleColMultiplyDoubleColumn(col 10:double, col 10:double) -> 52:double) -> 
53:double) -> 54:double) -> 55:double) -> 56:double, 
DoubleColDivideLongColumn(col 59:double, col 62:bigint)(children: 
DoubleColSubtractDoubleColumn(col 9:double, col 58:double)(children: 
DoubleColDivideLongColumn(col 57:double, col 11:bigint)(children: 
DoubleColMultiplyDoubleColumn(col 10:double, col 10:double) -> 57:double) -> 
58:double) -> 59:double, IfExprNullCondExpr(col 60:boolean, null, col 
61:bigint)(children: LongColEqualLongScalar(col 11:bigint, val 1) -> 
60:boolean, LongColSubtractLongScalar(col 11:bigint, val 1) -> 61:bigint) -> 
62:bigint) -> 63:double, DoubleColUnaryMinus(col 64:double)(children: 
DoubleColSubtractDoubleColumn(col 1:double, col 2:double)(children: col 
1:float) -> 64:double) -> 65:double
                   Statistics: Num rows: 303 Data size: 71705 Basic stats: 
COMPLETE Column stats: NONE
                   Reduce Output Operator
                     key expressions: _col2 (type: string), _col1 (type: 
float), _col4 (type: double), _col0 (type: timestamp)
@@ -198,7 +198,7 @@ STAGE PLANS:
                         keyColumns: 0:string, 1:float, 2:double, 3:timestamp
                         native: true
                         nativeConditionsMet: 
hive.vectorized.execution.reducesink.new.enabled IS true, hive.execution.engine 
spark IN [tez, spark] IS true, No PTF TopN IS true, No DISTINCT columns IS 
true, BinarySortableSerDe for keys IS true, LazyBinarySerDe for values IS true
-                        valueColumns: 4:boolean, 12:double, 14:double, 
13:double, 15:float, 8:float, 19:float, 20:float, 21:double, 22:double, 
11:bigint, 24:double, 25:double, 23:double, 29:double, 28:double, 31:double, 
34:double
+                        valueColumns: 4:boolean, 12:double, 14:double, 
22:double, 23:float, 8:float, 24:float, 25:float, 28:double, 33:double, 
11:bigint, 37:double, 46:double, 47:double, 51:double, 56:double, 63:double, 
65:double
                     Statistics: Num rows: 303 Data size: 71705 Basic stats: 
COMPLETE Column stats: NONE
                     value expressions: _col3 (type: boolean), _col5 (type: 
double), _col6 (type: double), _col7 (type: double), _col8 (type: float), _col9 
(type: float), _col10 (type: float), _col11 (type: float), _col12 (type: 
double), _col13 (type: double), _col14 (type: bigint), _col15 (type: double), 
_col16 (type: double), _col17 (type: double), _col18 (type: double), _col19 
(type: double), _col20 (type: double), _col21 (type: double)
         Reducer 3 

http://git-wip-us.apache.org/repos/asf/hive/blob/8b968c7e/ql/src/test/results/clientpositive/spark/vectorization_15.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/vectorization_15.q.out 
b/ql/src/test/results/clientpositive/spark/vectorization_15.q.out
index 0ba15ee..f20d68e 100644
--- a/ql/src/test/results/clientpositive/spark/vectorization_15.q.out
+++ b/ql/src/test/results/clientpositive/spark/vectorization_15.q.out
@@ -102,13 +102,13 @@ STAGE PLANS:
                       Select Vectorization:
                           className: VectorSelectOperator
                           native: true
-                          projectedOutputColumnNums: [4, 10, 5, 6, 0, 2, 8, 4, 
13, 14, 17, 15, 19]
-                          selectExpressions: DoubleColMultiplyDoubleColumn(col 
4:double, col 4:double)(children: col 4:float, col 4:float) -> 13:double, 
CastLongToDouble(col 0:tinyint) -> 14:double, DoubleColMultiplyDoubleColumn(col 
15:double, col 16:double)(children: CastLongToDouble(col 0:tinyint) -> 
15:double, CastLongToDouble(col 0:tinyint) -> 16:double) -> 17:double, 
CastLongToDouble(col 2:int) -> 15:double, DoubleColMultiplyDoubleColumn(col 
16:double, col 18:double)(children: CastLongToDouble(col 2:int) -> 16:double, 
CastLongToDouble(col 2:int) -> 18:double) -> 19:double
+                          projectedOutputColumnNums: [4, 10, 5, 6, 0, 2, 8, 4, 
13, 14, 17, 18, 21]
+                          selectExpressions: DoubleColMultiplyDoubleColumn(col 
4:double, col 4:double)(children: col 4:float, col 4:float) -> 13:double, 
CastLongToDouble(col 0:tinyint) -> 14:double, DoubleColMultiplyDoubleColumn(col 
15:double, col 16:double)(children: CastLongToDouble(col 0:tinyint) -> 
15:double, CastLongToDouble(col 0:tinyint) -> 16:double) -> 17:double, 
CastLongToDouble(col 2:int) -> 18:double, DoubleColMultiplyDoubleColumn(col 
19:double, col 20:double)(children: CastLongToDouble(col 2:int) -> 19:double, 
CastLongToDouble(col 2:int) -> 20:double) -> 21:double
                       Statistics: Num rows: 12288 Data size: 2907994 Basic 
stats: COMPLETE Column stats: NONE
                       Group By Operator
                         aggregations: sum(_col8), sum(_col7), count(_col0), 
min(_col2), sum(_col10), sum(_col9), count(_col4), sum(_col12), sum(_col11), 
count(_col5)
                         Group By Vectorization:
-                            aggregators: VectorUDAFSumDouble(col 13:double) -> 
double, VectorUDAFSumDouble(col 4:double) -> double, VectorUDAFCount(col 
4:float) -> bigint, VectorUDAFMinDouble(col 5:double) -> double, 
VectorUDAFSumDouble(col 17:double) -> double, VectorUDAFSumDouble(col 
14:double) -> double, VectorUDAFCount(col 0:tinyint) -> bigint, 
VectorUDAFSumDouble(col 19:double) -> double, VectorUDAFSumDouble(col 
15:double) -> double, VectorUDAFCount(col 2:int) -> bigint
+                            aggregators: VectorUDAFSumDouble(col 13:double) -> 
double, VectorUDAFSumDouble(col 4:double) -> double, VectorUDAFCount(col 
4:float) -> bigint, VectorUDAFMinDouble(col 5:double) -> double, 
VectorUDAFSumDouble(col 17:double) -> double, VectorUDAFSumDouble(col 
14:double) -> double, VectorUDAFCount(col 0:tinyint) -> bigint, 
VectorUDAFSumDouble(col 21:double) -> double, VectorUDAFSumDouble(col 
18:double) -> double, VectorUDAFCount(col 2:int) -> bigint
                             className: VectorGroupByOperator
                             groupByMode: HASH
                             keyExpressions: col 4:float, col 10:boolean, col 
5:double, col 6:string, col 0:tinyint, col 2:int, col 8:timestamp
@@ -146,7 +146,7 @@ STAGE PLANS:
                     includeColumns: [0, 1, 2, 4, 5, 6, 7, 8, 10]
                     dataColumns: ctinyint:tinyint, csmallint:smallint, 
cint:int, cbigint:bigint, cfloat:float, cdouble:double, cstring1:string, 
cstring2:string, ctimestamp1:timestamp, ctimestamp2:timestamp, 
cboolean1:boolean, cboolean2:boolean
                     partitionColumnCount: 0
-                    scratchColumnTypeNames: [double, double, double, double, 
double, double, double]
+                    scratchColumnTypeNames: [double, double, double, double, 
double, double, double, double, double]
         Reducer 2 
             Reduce Vectorization:
                 enabled: false

http://git-wip-us.apache.org/repos/asf/hive/blob/8b968c7e/ql/src/test/results/clientpositive/spark/vectorization_16.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/vectorization_16.q.out 
b/ql/src/test/results/clientpositive/spark/vectorization_16.q.out
index cb7da29..0efe4b4 100644
--- a/ql/src/test/results/clientpositive/spark/vectorization_16.q.out
+++ b/ql/src/test/results/clientpositive/spark/vectorization_16.q.out
@@ -160,8 +160,8 @@ STAGE PLANS:
                   Select Vectorization:
                       className: VectorSelectOperator
                       native: true
-                      projectedOutputColumnNums: [0, 1, 2, 7, 9, 3, 8, 14, 20, 
6, 10, 22, 17]
-                      selectExpressions: DoubleColSubtractDoubleScalar(col 
1:double, val 9763215.5639) -> 7:double, DoubleColUnaryMinus(col 
8:double)(children: DoubleColSubtractDoubleScalar(col 1:double, val 
9763215.5639) -> 8:double) -> 9:double, FuncPowerDoubleToDouble(col 
10:double)(children: DoubleColDivideLongColumn(col 8:double, col 
13:bigint)(children: DoubleColSubtractDoubleColumn(col 4:double, col 
10:double)(children: DoubleColDivideLongColumn(col 8:double, col 
3:bigint)(children: DoubleColMultiplyDoubleColumn(col 5:double, col 5:double) 
-> 8:double) -> 10:double) -> 8:double, IfExprNullCondExpr(col 11:boolean, 
null, col 12:bigint)(children: LongColEqualLongScalar(col 3:bigint, val 1) -> 
11:boolean, LongColSubtractLongScalar(col 3:bigint, val 1) -> 12:bigint) -> 
13:bigint) -> 10:double) -> 8:double, DoubleColUnaryMinus(col 
10:double)(children: FuncPowerDoubleToDouble(col 14:double)(children: 
DoubleColDivideLongColumn(col 10:double, col 16:bigint)(children: 
DoubleColSubtract
 DoubleColumn(col 4:double, col 14:double)(children: 
DoubleColDivideLongColumn(col 10:double, col 3:bigint)(children: 
DoubleColMultiplyDoubleColumn(col 5:double, col 5:double) -> 10:double) -> 
14:double) -> 10:double, IfExprNullCondExpr(col 13:boolean, null, col 
15:bigint)(children: LongColEqualLongScalar(col 3:bigint, val 1) -> 13:boolean, 
LongColSubtractLongScalar(col 3:bigint, val 1) -> 15:bigint) -> 16:bigint) -> 
14:double) -> 10:double) -> 14:double, DoubleColMultiplyDoubleColumn(col 
10:double, col 17:double)(children: FuncPowerDoubleToDouble(col 
17:double)(children: DoubleColDivideLongColumn(col 10:double, col 
19:bigint)(children: DoubleColSubtractDoubleColumn(col 4:double, col 
17:double)(children: DoubleColDivideLongColumn(col 10:double, col 
3:bigint)(children: DoubleColMultiplyDoubleColumn(col 5:double, col 5:double) 
-> 10:double) -> 17:double) -> 10:double, IfExprNullCondExpr(col 16:boolean, 
null, col 18:bigint)(children: LongColEqualLongScalar(col 3:bigint, val 1) -> 
16:boo
 lean, LongColSubtractLongScalar(col 3:bigint, val 1) -> 18:bigint) -> 
19:bigint) -> 17:double) -> 10:double, CastLongToDouble(col 3:bigint) -> 
17:double) -> 20:double, DoubleScalarDivideDoubleColumn(val 9763215.5639, col 
1:double) -> 10:double, DecimalColDivideDecimalScalar(col 21:decimal(19,0), val 
-1.389)(children: CastLongToDecimal(col 3:bigint) -> 21:decimal(19,0)) -> 
22:decimal(28,6), FuncPowerDoubleToDouble(col 23:double)(children: 
DoubleColDivideLongColumn(col 17:double, col 25:bigint)(children: 
DoubleColSubtractDoubleColumn(col 4:double, col 23:double)(children: 
DoubleColDivideLongColumn(col 17:double, col 3:bigint)(children: 
DoubleColMultiplyDoubleColumn(col 5:double, col 5:double) -> 17:double) -> 
23:double) -> 17:double, IfExprNullCondExpr(col 19:boolean, null, col 
24:bigint)(children: LongColEqualLongScalar(col 3:bigint, val 1) -> 19:boolean, 
LongColSubtractLongScalar(col 3:bigint, val 1) -> 24:bigint) -> 25:bigint) -> 
23:double) -> 17:double
+                      projectedOutputColumnNums: [0, 1, 2, 7, 9, 3, 17, 26, 
36, 6, 37, 39, 47]
+                      selectExpressions: DoubleColSubtractDoubleScalar(col 
1:double, val 9763215.5639) -> 7:double, DoubleColUnaryMinus(col 
8:double)(children: DoubleColSubtractDoubleScalar(col 1:double, val 
9763215.5639) -> 8:double) -> 9:double, FuncPowerDoubleToDouble(col 
16:double)(children: DoubleColDivideLongColumn(col 12:double, col 
15:bigint)(children: DoubleColSubtractDoubleColumn(col 4:double, col 
11:double)(children: DoubleColDivideLongColumn(col 10:double, col 
3:bigint)(children: DoubleColMultiplyDoubleColumn(col 5:double, col 5:double) 
-> 10:double) -> 11:double) -> 12:double, IfExprNullCondExpr(col 13:boolean, 
null, col 14:bigint)(children: LongColEqualLongScalar(col 3:bigint, val 1) -> 
13:boolean, LongColSubtractLongScalar(col 3:bigint, val 1) -> 14:bigint) -> 
15:bigint) -> 16:double) -> 17:double, DoubleColUnaryMinus(col 
25:double)(children: FuncPowerDoubleToDouble(col 24:double)(children: 
DoubleColDivideLongColumn(col 20:double, col 23:bigint)(children: DoubleColSub
 tractDoubleColumn(col 4:double, col 19:double)(children: 
DoubleColDivideLongColumn(col 18:double, col 3:bigint)(children: 
DoubleColMultiplyDoubleColumn(col 5:double, col 5:double) -> 18:double) -> 
19:double) -> 20:double, IfExprNullCondExpr(col 21:boolean, null, col 
22:bigint)(children: LongColEqualLongScalar(col 3:bigint, val 1) -> 21:boolean, 
LongColSubtractLongScalar(col 3:bigint, val 1) -> 22:bigint) -> 23:bigint) -> 
24:double) -> 25:double) -> 26:double, DoubleColMultiplyDoubleColumn(col 
34:double, col 35:double)(children: FuncPowerDoubleToDouble(col 
33:double)(children: DoubleColDivideLongColumn(col 29:double, col 
32:bigint)(children: DoubleColSubtractDoubleColumn(col 4:double, col 
28:double)(children: DoubleColDivideLongColumn(col 27:double, col 
3:bigint)(children: DoubleColMultiplyDoubleColumn(col 5:double, col 5:double) 
-> 27:double) -> 28:double) -> 29:double, IfExprNullCondExpr(col 30:boolean, 
null, col 31:bigint)(children: LongColEqualLongScalar(col 3:bigint, val 1) -> 3
 0:boolean, LongColSubtractLongScalar(col 3:bigint, val 1) -> 31:bigint) -> 
32:bigint) -> 33:double) -> 34:double, CastLongToDouble(col 3:bigint) -> 
35:double) -> 36:double, DoubleScalarDivideDoubleColumn(val 9763215.5639, col 
1:double) -> 37:double, DecimalColDivideDecimalScalar(col 38:decimal(19,0), val 
-1.389)(children: CastLongToDecimal(col 3:bigint) -> 38:decimal(19,0)) -> 
39:decimal(28,6), FuncPowerDoubleToDouble(col 46:double)(children: 
DoubleColDivideLongColumn(col 42:double, col 45:bigint)(children: 
DoubleColSubtractDoubleColumn(col 4:double, col 41:double)(children: 
DoubleColDivideLongColumn(col 40:double, col 3:bigint)(children: 
DoubleColMultiplyDoubleColumn(col 5:double, col 5:double) -> 40:double) -> 
41:double) -> 42:double, IfExprNullCondExpr(col 43:boolean, null, col 
44:bigint)(children: LongColEqualLongScalar(col 3:bigint, val 1) -> 43:boolean, 
LongColSubtractLongScalar(col 3:bigint, val 1) -> 44:bigint) -> 45:bigint) -> 
46:double) -> 47:double
                   Statistics: Num rows: 2048 Data size: 484665 Basic stats: 
COMPLETE Column stats: NONE
                   File Output Operator
                     compressed: false

http://git-wip-us.apache.org/repos/asf/hive/blob/8b968c7e/ql/src/test/results/clientpositive/spark/vectorization_17.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/vectorization_17.q.out 
b/ql/src/test/results/clientpositive/spark/vectorization_17.q.out
index ca77855..b0ac0ae 100644
--- a/ql/src/test/results/clientpositive/spark/vectorization_17.q.out
+++ b/ql/src/test/results/clientpositive/spark/vectorization_17.q.out
@@ -87,8 +87,8 @@ STAGE PLANS:
                       Select Vectorization:
                           className: VectorSelectOperator
                           native: true
-                          projectedOutputColumnNums: [4, 6, 2, 8, 5, 3, 15, 
16, 14, 17, 19, 20, 22, 18]
-                          selectExpressions: DoubleColDivideDoubleColumn(col 
4:double, col 14:double)(children: col 4:float, CastLongToDouble(col 0:tinyint) 
-> 14:double) -> 15:double, LongColModuloLongColumn(col 2:bigint, col 
3:bigint)(children: col 2:int) -> 16:bigint, DoubleColUnaryMinus(col 5:double) 
-> 14:double, DoubleColAddDoubleColumn(col 5:double, col 18:double)(children: 
DoubleColDivideDoubleColumn(col 4:double, col 17:double)(children: col 4:float, 
CastLongToDouble(col 0:tinyint) -> 17:double) -> 18:double) -> 17:double, 
DoubleColDivideDoubleColumn(col 5:double, col 18:double)(children: 
CastLongToDouble(col 2:int) -> 18:double) -> 19:double, DoubleColUnaryMinus(col 
18:double)(children: DoubleColUnaryMinus(col 5:double) -> 18:double) -> 
20:double, DecimalScalarModuloDecimalColumn(val 9763215.5639, col 
21:decimal(19,0))(children: CastLongToDecimal(col 3:bigint) -> 
21:decimal(19,0)) -> 22:decimal(11,4), DoubleScalarAddDoubleColumn(val 2563.58, 
col 23:double)(children: Double
 ColUnaryMinus(col 18:double)(children: DoubleColUnaryMinus(col 5:double) -> 
18:double) -> 23:double) -> 18:double
+                          projectedOutputColumnNums: [4, 6, 2, 8, 5, 3, 15, 
16, 17, 20, 22, 24, 26, 29]
+                          selectExpressions: DoubleColDivideDoubleColumn(col 
4:double, col 14:double)(children: col 4:float, CastLongToDouble(col 0:tinyint) 
-> 14:double) -> 15:double, LongColModuloLongColumn(col 2:bigint, col 
3:bigint)(children: col 2:int) -> 16:bigint, DoubleColUnaryMinus(col 5:double) 
-> 17:double, DoubleColAddDoubleColumn(col 5:double, col 19:double)(children: 
DoubleColDivideDoubleColumn(col 4:double, col 18:double)(children: col 4:float, 
CastLongToDouble(col 0:tinyint) -> 18:double) -> 19:double) -> 20:double, 
DoubleColDivideDoubleColumn(col 5:double, col 21:double)(children: 
CastLongToDouble(col 2:int) -> 21:double) -> 22:double, DoubleColUnaryMinus(col 
23:double)(children: DoubleColUnaryMinus(col 5:double) -> 23:double) -> 
24:double, DecimalScalarModuloDecimalColumn(val 9763215.5639, col 
25:decimal(19,0))(children: CastLongToDecimal(col 3:bigint) -> 
25:decimal(19,0)) -> 26:decimal(11,4), DoubleScalarAddDoubleColumn(val 2563.58, 
col 28:double)(children: Double
 ColUnaryMinus(col 27:double)(children: DoubleColUnaryMinus(col 5:double) -> 
27:double) -> 28:double) -> 29:double
                       Statistics: Num rows: 4096 Data size: 969331 Basic 
stats: COMPLETE Column stats: NONE
                       Reduce Output Operator
                         key expressions: _col5 (type: bigint), _col0 (type: 
float)
@@ -98,7 +98,7 @@ STAGE PLANS:
                             keyColumns: 3:bigint, 4:float
                             native: true
                             nativeConditionsMet: 
hive.vectorized.execution.reducesink.new.enabled IS true, hive.execution.engine 
spark IN [tez, spark] IS true, No PTF TopN IS true, No DISTINCT columns IS 
true, BinarySortableSerDe for keys IS true, LazyBinarySerDe for values IS true
-                            valueColumns: 6:string, 2:int, 8:timestamp, 
5:double, 15:double, 16:bigint, 14:double, 17:double, 19:double, 20:double, 
22:decimal(11,4), 18:double
+                            valueColumns: 6:string, 2:int, 8:timestamp, 
5:double, 15:double, 16:bigint, 17:double, 20:double, 22:double, 24:double, 
26:decimal(11,4), 29:double
                         Statistics: Num rows: 4096 Data size: 969331 Basic 
stats: COMPLETE Column stats: NONE
                         value expressions: _col1 (type: string), _col2 (type: 
int), _col3 (type: timestamp), _col4 (type: double), _col6 (type: double), 
_col7 (type: bigint), _col8 (type: double), _col9 (type: double), _col10 (type: 
double), _col11 (type: double), _col12 (type: decimal(11,4)), _col13 (type: 
double)
             Execution mode: vectorized
@@ -116,7 +116,7 @@ STAGE PLANS:
                     includeColumns: [0, 1, 2, 3, 4, 5, 6, 8]
                     dataColumns: ctinyint:tinyint, csmallint:smallint, 
cint:int, cbigint:bigint, cfloat:float, cdouble:double, cstring1:string, 
cstring2:string, ctimestamp1:timestamp, ctimestamp2:timestamp, 
cboolean1:boolean, cboolean2:boolean
                     partitionColumnCount: 0
-                    scratchColumnTypeNames: [decimal(13,3), double, double, 
bigint, double, double, double, double, decimal(19,0), decimal(11,4), double]
+                    scratchColumnTypeNames: [decimal(13,3), double, double, 
bigint, double, double, double, double, double, double, double, double, 
decimal(19,0), decimal(11,4), double, double, double]
         Reducer 2 
             Execution mode: vectorized
             Reduce Vectorization:

http://git-wip-us.apache.org/repos/asf/hive/blob/8b968c7e/ql/src/test/results/clientpositive/spark/vectorization_2.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/vectorization_2.q.out 
b/ql/src/test/results/clientpositive/spark/vectorization_2.q.out
index 7acdce1..199fe37 100644
--- a/ql/src/test/results/clientpositive/spark/vectorization_2.q.out
+++ b/ql/src/test/results/clientpositive/spark/vectorization_2.q.out
@@ -76,7 +76,7 @@ STAGE PLANS:
                     Filter Vectorization:
                         className: VectorFilterOperator
                         native: true
-                        predicateExpression: FilterExprOrExpr(children: 
FilterExprAndExpr(children: FilterTimestampColLessTimestampColumn(col 
8:timestamp, col 9:timestamp), FilterStringColLikeStringScalar(col 7:string, 
pattern b%), FilterDoubleColLessEqualDoubleScalar(col 4:float, val 
-5638.14990234375)), FilterExprAndExpr(children: 
FilterDoubleColLessDoubleColumn(col 5:double, col 13:double)(children: 
CastLongToDouble(col 0:tinyint) -> 13:double), FilterExprOrExpr(children: 
FilterDoubleColNotEqualDoubleScalar(col 13:double, val -10669.0)(children: 
CastTimestampToDouble(col 9:timestamp) -> 13:double), 
FilterLongColLessLongScalar(col 2:int, val 359))))
+                        predicateExpression: FilterExprOrExpr(children: 
FilterExprAndExpr(children: FilterTimestampColLessTimestampColumn(col 
8:timestamp, col 9:timestamp), FilterStringColLikeStringScalar(col 7:string, 
pattern b%), FilterDoubleColLessEqualDoubleScalar(col 4:float, val 
-5638.14990234375)), FilterExprAndExpr(children: 
FilterDoubleColLessDoubleColumn(col 5:double, col 13:double)(children: 
CastLongToDouble(col 0:tinyint) -> 13:double), FilterExprOrExpr(children: 
FilterDoubleColNotEqualDoubleScalar(col 14:double, val -10669.0)(children: 
CastTimestampToDouble(col 9:timestamp) -> 14:double), 
FilterLongColLessLongScalar(col 2:int, val 359))))
                     predicate: (((cdouble < UDFToDouble(ctinyint)) and 
((UDFToDouble(ctimestamp2) <> -10669.0D) or (cint < 359))) or ((ctimestamp1 < 
ctimestamp2) and (cstring2 like 'b%') and (cfloat <= -5638.15))) (type: boolean)
                     Statistics: Num rows: 4778 Data size: 1130728 Basic stats: 
COMPLETE Column stats: NONE
                     Select Operator
@@ -85,13 +85,13 @@ STAGE PLANS:
                       Select Vectorization:
                           className: VectorSelectOperator
                           native: true
-                          projectedOutputColumnNums: [1, 4, 3, 0, 5, 13, 16]
-                          selectExpressions: CastLongToDouble(col 3:bigint) -> 
13:double, DoubleColMultiplyDoubleColumn(col 14:double, col 
15:double)(children: CastLongToDouble(col 3:bigint) -> 14:double, 
CastLongToDouble(col 3:bigint) -> 15:double) -> 16:double
+                          projectedOutputColumnNums: [1, 4, 3, 0, 5, 15, 18]
+                          selectExpressions: CastLongToDouble(col 3:bigint) -> 
15:double, DoubleColMultiplyDoubleColumn(col 16:double, col 
17:double)(children: CastLongToDouble(col 3:bigint) -> 16:double, 
CastLongToDouble(col 3:bigint) -> 17:double) -> 18:double
                       Statistics: Num rows: 4778 Data size: 1130728 Basic 
stats: COMPLETE Column stats: NONE
                       Group By Operator
                         aggregations: sum(_col0), count(_col0), sum(_col1), 
sum(_col6), sum(_col5), count(_col2), count(), min(_col3), sum(_col4), 
count(_col4)
                         Group By Vectorization:
-                            aggregators: VectorUDAFSumLong(col 1:smallint) -> 
bigint, VectorUDAFCount(col 1:smallint) -> bigint, VectorUDAFSumDouble(col 
4:float) -> double, VectorUDAFSumDouble(col 16:double) -> double, 
VectorUDAFSumDouble(col 13:double) -> double, VectorUDAFCount(col 3:bigint) -> 
bigint, VectorUDAFCountStar(*) -> bigint, VectorUDAFMinLong(col 0:tinyint) -> 
tinyint, VectorUDAFSumDouble(col 5:double) -> double, VectorUDAFCount(col 
5:double) -> bigint
+                            aggregators: VectorUDAFSumLong(col 1:smallint) -> 
bigint, VectorUDAFCount(col 1:smallint) -> bigint, VectorUDAFSumDouble(col 
4:float) -> double, VectorUDAFSumDouble(col 18:double) -> double, 
VectorUDAFSumDouble(col 15:double) -> double, VectorUDAFCount(col 3:bigint) -> 
bigint, VectorUDAFCountStar(*) -> bigint, VectorUDAFMinLong(col 0:tinyint) -> 
tinyint, VectorUDAFSumDouble(col 5:double) -> double, VectorUDAFCount(col 
5:double) -> bigint
                             className: VectorGroupByOperator
                             groupByMode: HASH
                             native: false
@@ -124,7 +124,7 @@ STAGE PLANS:
                     includeColumns: [0, 1, 2, 3, 4, 5, 7, 8, 9]
                     dataColumns: ctinyint:tinyint, csmallint:smallint, 
cint:int, cbigint:bigint, cfloat:float, cdouble:double, cstring1:string, 
cstring2:string, ctimestamp1:timestamp, ctimestamp2:timestamp, 
cboolean1:boolean, cboolean2:boolean
                     partitionColumnCount: 0
-                    scratchColumnTypeNames: [double, double, double, double]
+                    scratchColumnTypeNames: [double, double, double, double, 
double, double]
         Reducer 2 
             Execution mode: vectorized
             Reduce Vectorization:
@@ -159,8 +159,8 @@ STAGE PLANS:
                   Select Vectorization:
                       className: VectorSelectOperator
                       native: true
-                      projectedOutputColumnNums: [11, 10, 12, 2, 14, 13, 15, 
6, 17, 16, 7, 20, 18, 19]
-                      selectExpressions: DoubleColDivideLongColumn(col 
10:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 10:double) 
-> 11:double, DoubleColModuloDoubleScalar(col 12:double, val -563.0)(children: 
DoubleColDivideLongColumn(col 10:double, col 1:bigint)(children: 
CastLongToDouble(col 0:bigint) -> 10:double) -> 12:double) -> 10:double, 
DoubleColAddDoubleScalar(col 13:double, val 762.0)(children: 
DoubleColDivideLongColumn(col 12:double, col 1:bigint)(children: 
CastLongToDouble(col 0:bigint) -> 12:double) -> 13:double) -> 12:double, 
DoubleColDivideLongColumn(col 13:double, col 5:bigint)(children: 
DoubleColSubtractDoubleColumn(col 3:double, col 14:double)(children: 
DoubleColDivideLongColumn(col 13:double, col 5:bigint)(children: 
DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 13:double) -> 
14:double) -> 13:double) -> 14:double, DoubleColUnaryMinus(col 
15:double)(children: DoubleColDivideLongColumn(col 13:double, col 
5:bigint)(children: DoubleC
 olSubtractDoubleColumn(col 3:double, col 15:double)(children: 
DoubleColDivideLongColumn(col 13:double, col 5:bigint)(children: 
DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 13:double) -> 
15:double) -> 13:double) -> 15:double) -> 13:double, 
DoubleColSubtractDoubleColumn(col 2:double, col 16:double)(children: 
DoubleColDivideLongColumn(col 15:double, col 1:bigint)(children: 
CastLongToDouble(col 0:bigint) -> 15:double) -> 16:double) -> 15:double, 
DoubleColUnaryMinus(col 16:double)(children: DoubleColSubtractDoubleColumn(col 
2:double, col 17:double)(children: DoubleColDivideLongColumn(col 16:double, col 
1:bigint)(children: CastLongToDouble(col 0:bigint) -> 16:double) -> 17:double) 
-> 16:double) -> 17:double, DoubleColSubtractDoubleScalar(col 18:double, val 
762.0)(children: DoubleColDivideLongColumn(col 16:double, col 
5:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 
18:double)(children: DoubleColDivideLongColumn(col 16:double, col 
5:bigint)(children: Doub
 leColMultiplyDoubleColumn(col 4:double, col 4:double) -> 16:double) -> 
18:double) -> 16:double) -> 18:double) -> 16:double, 
DoubleColAddDoubleColumn(col 18:double, col 19:double)(children: 
DoubleColUnaryMinus(col 19:double)(children: DoubleColDivideLongColumn(col 
18:double, col 5:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, 
col 19:double)(children: DoubleColDivideLongColumn(col 18:double, col 
5:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) 
-> 18:double) -> 19:double) -> 18:double) -> 19:double) -> 18:double, 
CastLongToDouble(col 7:tinyint) -> 19:double) -> 20:double, 
DoubleColDivideLongColumn(col 8:double, col 9:bigint) -> 18:double, 
DoubleColSubtractDoubleColumn(col 22:double, col 2:double)(children: 
DoubleColAddDoubleColumn(col 19:double, col 21:double)(children: 
DoubleColUnaryMinus(col 21:double)(children: DoubleColDivideLongColumn(col 
19:double, col 5:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, 
col 21:double)(child
 ren: DoubleColDivideLongColumn(col 19:double, col 5:bigint)(children: 
DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 19:double) -> 
21:double) -> 19:double) -> 21:double) -> 19:double, CastLongToDouble(col 
7:tinyint) -> 21:double) -> 22:double) -> 19:double
+                      projectedOutputColumnNums: [11, 14, 17, 2, 21, 26, 29, 
6, 33, 38, 7, 45, 46, 54]
+                      selectExpressions: DoubleColDivideLongColumn(col 
10:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 10:double) 
-> 11:double, DoubleColModuloDoubleScalar(col 13:double, val -563.0)(children: 
DoubleColDivideLongColumn(col 12:double, col 1:bigint)(children: 
CastLongToDouble(col 0:bigint) -> 12:double) -> 13:double) -> 14:double, 
DoubleColAddDoubleScalar(col 16:double, val 762.0)(children: 
DoubleColDivideLongColumn(col 15:double, col 1:bigint)(children: 
CastLongToDouble(col 0:bigint) -> 15:double) -> 16:double) -> 17:double, 
DoubleColDivideLongColumn(col 20:double, col 5:bigint)(children: 
DoubleColSubtractDoubleColumn(col 3:double, col 19:double)(children: 
DoubleColDivideLongColumn(col 18:double, col 5:bigint)(children: 
DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 18:double) -> 
19:double) -> 20:double) -> 21:double, DoubleColUnaryMinus(col 
25:double)(children: DoubleColDivideLongColumn(col 24:double, col 
5:bigint)(children: DoubleC
 olSubtractDoubleColumn(col 3:double, col 23:double)(children: 
DoubleColDivideLongColumn(col 22:double, col 5:bigint)(children: 
DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 22:double) -> 
23:double) -> 24:double) -> 25:double) -> 26:double, 
DoubleColSubtractDoubleColumn(col 2:double, col 28:double)(children: 
DoubleColDivideLongColumn(col 27:double, col 1:bigint)(children: 
CastLongToDouble(col 0:bigint) -> 27:double) -> 28:double) -> 29:double, 
DoubleColUnaryMinus(col 32:double)(children: DoubleColSubtractDoubleColumn(col 
2:double, col 31:double)(children: DoubleColDivideLongColumn(col 30:double, col 
1:bigint)(children: CastLongToDouble(col 0:bigint) -> 30:double) -> 31:double) 
-> 32:double) -> 33:double, DoubleColSubtractDoubleScalar(col 37:double, val 
762.0)(children: DoubleColDivideLongColumn(col 36:double, col 
5:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 
35:double)(children: DoubleColDivideLongColumn(col 34:double, col 
5:bigint)(children: Doub
 leColMultiplyDoubleColumn(col 4:double, col 4:double) -> 34:double) -> 
35:double) -> 36:double) -> 37:double) -> 38:double, 
DoubleColAddDoubleColumn(col 43:double, col 44:double)(children: 
DoubleColUnaryMinus(col 42:double)(children: DoubleColDivideLongColumn(col 
41:double, col 5:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, 
col 40:double)(children: DoubleColDivideLongColumn(col 39:double, col 
5:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) 
-> 39:double) -> 40:double) -> 41:double) -> 42:double) -> 43:double, 
CastLongToDouble(col 7:tinyint) -> 44:double) -> 45:double, 
DoubleColDivideLongColumn(col 8:double, col 9:bigint) -> 46:double, 
DoubleColSubtractDoubleColumn(col 53:double, col 2:double)(children: 
DoubleColAddDoubleColumn(col 51:double, col 52:double)(children: 
DoubleColUnaryMinus(col 50:double)(children: DoubleColDivideLongColumn(col 
49:double, col 5:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, 
col 48:double)(child
 ren: DoubleColDivideLongColumn(col 47:double, col 5:bigint)(children: 
DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 47:double) -> 
48:double) -> 49:double) -> 50:double) -> 51:double, CastLongToDouble(col 
7:tinyint) -> 52:double) -> 53:double) -> 54:double
                   Statistics: Num rows: 1 Data size: 76 Basic stats: COMPLETE 
Column stats: NONE
                   File Output Operator
                     compressed: false

Reply via email to