http://git-wip-us.apache.org/repos/asf/hive/blob/8b968c7e/ql/src/test/results/clientpositive/llap/vector_decimal_math_funcs.q.out
----------------------------------------------------------------------
diff --git 
a/ql/src/test/results/clientpositive/llap/vector_decimal_math_funcs.q.out 
b/ql/src/test/results/clientpositive/llap/vector_decimal_math_funcs.q.out
index 359f9e7..a8a83bd 100644
--- a/ql/src/test/results/clientpositive/llap/vector_decimal_math_funcs.q.out
+++ b/ql/src/test/results/clientpositive/llap/vector_decimal_math_funcs.q.out
@@ -137,8 +137,8 @@ STAGE PLANS:
                       Select Vectorization:
                           className: VectorSelectOperator
                           native: true
-                          projectedOutputColumnNums: [2, 8, 9, 10, 11, 6, 12, 
13, 14, 16, 17, 7, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 2, 29, 5, 30]
-                          selectExpressions: 
FuncRoundWithNumDigitsDecimalToDecimal(col 2:decimal(20,10), decimalPlaces 2) 
-> 8:decimal(13,2), FuncRoundDecimalToDecimal(col 2:decimal(20,10)) -> 
9:decimal(11,0), FuncFloorDecimalToDecimal(col 2:decimal(20,10)) -> 
10:decimal(11,0), FuncCeilDecimalToDecimal(col 2:decimal(20,10)) -> 
11:decimal(11,0), RoundWithNumDigitsDoubleToDouble(col 7, decimalPlaces 
58)(children: FuncExpDoubleToDouble(col 6:double)(children: 
CastDecimalToDouble(col 2:decimal(20,10)) -> 6:double) -> 7:double) -> 
6:double, FuncLnDoubleToDouble(col 7:double)(children: CastDecimalToDouble(col 
2:decimal(20,10)) -> 7:double) -> 12:double, FuncLog10DoubleToDouble(col 
7:double)(children: CastDecimalToDouble(col 2:decimal(20,10)) -> 7:double) -> 
13:double, FuncLog2DoubleToDouble(col 7:double)(children: 
CastDecimalToDouble(col 2:decimal(20,10)) -> 7:double) -> 14:double, 
FuncLog2DoubleToDouble(col 7:double)(children: CastDecimalToDouble(col 
15:decimal(21,10))(children: Decimal
 ColSubtractDecimalScalar(col 2:decimal(20,10), val 15601) -> 
15:decimal(21,10)) -> 7:double) -> 16:double, FuncLogWithBaseDoubleToDouble(col 
7:double)(children: CastDecimalToDouble(col 2:decimal(20,10)) -> 7:double) -> 
17:double, FuncPowerDoubleToDouble(col 18:double)(children: 
FuncLog2DoubleToDouble(col 7:double)(children: CastDecimalToDouble(col 
2:decimal(20,10)) -> 7:double) -> 18:double) -> 7:double, 
FuncPowerDoubleToDouble(col 19:double)(children: FuncLog2DoubleToDouble(col 
18:double)(children: CastDecimalToDouble(col 2:decimal(20,10)) -> 18:double) -> 
19:double) -> 18:double, FuncSqrtDoubleToDouble(col 19:double)(children: 
CastDecimalToDouble(col 2:decimal(20,10)) -> 19:double) -> 20:double, 
FuncAbsDecimalToDecimal(col 2:decimal(20,10)) -> 21:decimal(20,10), 
FuncSinDoubleToDouble(col 19:double)(children: CastDecimalToDouble(col 
2:decimal(20,10)) -> 19:double) -> 22:double, FuncASinDoubleToDouble(col 
19:double)(children: CastDecimalToDouble(col 2:decimal(20,10)) -> 19:double) -
 > 23:double, FuncCosDoubleToDouble(col 19:double)(children: 
 > CastDecimalToDouble(col 2:decimal(20,10)) -> 19:double) -> 24:double, 
 > FuncACosDoubleToDouble(col 19:double)(children: CastDecimalToDouble(col 
 > 2:decimal(20,10)) -> 19:double) -> 25:double, FuncATanDoubleToDouble(col 
 > 19:double)(children: CastDecimalToDouble(col 2:decimal(20,10)) -> 19:double) 
 > -> 26:double, FuncDegreesDoubleToDouble(col 19:double)(children: 
 > CastDecimalToDouble(col 2:decimal(20,10)) -> 19:double) -> 27:double, 
 > FuncRadiansDoubleToDouble(col 19:double)(children: CastDecimalToDouble(col 
 > 2:decimal(20,10)) -> 19:double) -> 28:double, FuncNegateDecimalToDecimal(col 
 > 2:decimal(20,10)) -> 29:decimal(20,10), FuncSignDecimalToLong(col 
 > 2:decimal(20,10)) -> 5:int, FuncCosDoubleToDouble(col 19:double)(children: 
 > DoubleColAddDoubleScalar(col 30:double, val 3.14159)(children: 
 > DoubleColUnaryMinus(col 19:double)(children: FuncSinDoubleToDouble(col 
 > 30:double)(children: FuncLnDoubleToDouble(col 19:double)(children: 
 > CastDecimalToDou
 ble(col 2:decimal(20,10)) -> 19:double) -> 30:double) -> 19:double) -> 
30:double) -> 19:double) -> 30:double
+                          projectedOutputColumnNums: [2, 8, 9, 10, 11, 14, 16, 
18, 20, 23, 25, 28, 31, 33, 34, 36, 38, 40, 42, 44, 46, 48, 2, 49, 50, 56]
+                          selectExpressions: 
FuncRoundWithNumDigitsDecimalToDecimal(col 2:decimal(20,10), decimalPlaces 2) 
-> 8:decimal(13,2), FuncRoundDecimalToDecimal(col 2:decimal(20,10)) -> 
9:decimal(11,0), FuncFloorDecimalToDecimal(col 2:decimal(20,10)) -> 
10:decimal(11,0), FuncCeilDecimalToDecimal(col 2:decimal(20,10)) -> 
11:decimal(11,0), RoundWithNumDigitsDoubleToDouble(col 13, decimalPlaces 
58)(children: FuncExpDoubleToDouble(col 12:double)(children: 
CastDecimalToDouble(col 2:decimal(20,10)) -> 12:double) -> 13:double) -> 
14:double, FuncLnDoubleToDouble(col 15:double)(children: 
CastDecimalToDouble(col 2:decimal(20,10)) -> 15:double) -> 16:double, 
FuncLog10DoubleToDouble(col 17:double)(children: CastDecimalToDouble(col 
2:decimal(20,10)) -> 17:double) -> 18:double, FuncLog2DoubleToDouble(col 
19:double)(children: CastDecimalToDouble(col 2:decimal(20,10)) -> 19:double) -> 
20:double, FuncLog2DoubleToDouble(col 22:double)(children: 
CastDecimalToDouble(col 21:decimal(21,10))(child
 ren: DecimalColSubtractDecimalScalar(col 2:decimal(20,10), val 15601) -> 
21:decimal(21,10)) -> 22:double) -> 23:double, 
FuncLogWithBaseDoubleToDouble(col 24:double)(children: CastDecimalToDouble(col 
2:decimal(20,10)) -> 24:double) -> 25:double, FuncPowerDoubleToDouble(col 
27:double)(children: FuncLog2DoubleToDouble(col 26:double)(children: 
CastDecimalToDouble(col 2:decimal(20,10)) -> 26:double) -> 27:double) -> 
28:double, FuncPowerDoubleToDouble(col 30:double)(children: 
FuncLog2DoubleToDouble(col 29:double)(children: CastDecimalToDouble(col 
2:decimal(20,10)) -> 29:double) -> 30:double) -> 31:double, 
FuncSqrtDoubleToDouble(col 32:double)(children: CastDecimalToDouble(col 
2:decimal(20,10)) -> 32:double) -> 33:double, FuncAbsDecimalToDecimal(col 
2:decimal(20,10)) -> 34:decimal(20,10), FuncSinDoubleToDouble(col 
35:double)(children: CastDecimalToDouble(col 2:decimal(20,10)) -> 35:double) -> 
36:double, FuncASinDoubleToDouble(col 37:double)(children: 
CastDecimalToDouble(col 2:decimal(20,10
 )) -> 37:double) -> 38:double, FuncCosDoubleToDouble(col 39:double)(children: 
CastDecimalToDouble(col 2:decimal(20,10)) -> 39:double) -> 40:double, 
FuncACosDoubleToDouble(col 41:double)(children: CastDecimalToDouble(col 
2:decimal(20,10)) -> 41:double) -> 42:double, FuncATanDoubleToDouble(col 
43:double)(children: CastDecimalToDouble(col 2:decimal(20,10)) -> 43:double) -> 
44:double, FuncDegreesDoubleToDouble(col 45:double)(children: 
CastDecimalToDouble(col 2:decimal(20,10)) -> 45:double) -> 46:double, 
FuncRadiansDoubleToDouble(col 47:double)(children: CastDecimalToDouble(col 
2:decimal(20,10)) -> 47:double) -> 48:double, FuncNegateDecimalToDecimal(col 
2:decimal(20,10)) -> 49:decimal(20,10), FuncSignDecimalToLong(col 
2:decimal(20,10)) -> 50:int, FuncCosDoubleToDouble(col 55:double)(children: 
DoubleColAddDoubleScalar(col 54:double, val 3.14159)(children: 
DoubleColUnaryMinus(col 53:double)(children: FuncSinDoubleToDouble(col 
52:double)(children: FuncLnDoubleToDouble(col 51:double)(childre
 n: CastDecimalToDouble(col 2:decimal(20,10)) -> 51:double) -> 52:double) -> 
53:double) -> 54:double) -> 55:double) -> 56:double
                       Statistics: Num rows: 2048 Data size: 233500 Basic 
stats: COMPLETE Column stats: NONE
                       File Output Operator
                         compressed: false
@@ -166,7 +166,7 @@ STAGE PLANS:
                     includeColumns: [0, 2]
                     dataColumns: cbigint:bigint, cdouble:double, 
cdecimal1:decimal(20,10), cdecimal2:decimal(23,14)
                     partitionColumnCount: 0
-                    scratchColumnTypeNames: [bigint, double, double, 
decimal(13,2), decimal(11,0), decimal(11,0), decimal(11,0), double, double, 
double, decimal(21,10), double, double, double, double, double, decimal(20,10), 
double, double, double, double, double, double, double, decimal(20,10), double]
+                    scratchColumnTypeNames: [bigint, double, double, 
decimal(13,2), decimal(11,0), decimal(11,0), decimal(11,0), double, double, 
double, double, double, double, double, double, double, decimal(21,10), double, 
double, double, double, double, double, double, double, double, double, double, 
double, decimal(20,10), double, double, double, double, double, double, double, 
double, double, double, double, double, double, double, decimal(20,10), bigint, 
double, double, double, double, double, double]
 
   Stage: Stage-0
     Fetch Operator
@@ -388,8 +388,8 @@ STAGE PLANS:
                       Select Vectorization:
                           className: VectorSelectOperator
                           native: true
-                          projectedOutputColumnNums: [2, 9, 10, 11, 12, 7, 13, 
14, 15, 17, 18, 8, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 2, 30, 5, 31]
-                          selectExpressions: 
FuncRoundWithNumDigitsDecimalToDecimal(col 6:decimal(12,4), decimalPlaces 
2)(children: ConvertDecimal64ToDecimal(col 2:decimal(12,4)/DECIMAL_64) -> 
6:decimal(12,4)) -> 9:decimal(11,2), FuncRoundDecimalToDecimal(col 
6:decimal(12,4))(children: ConvertDecimal64ToDecimal(col 
2:decimal(12,4)/DECIMAL_64) -> 6:decimal(12,4)) -> 10:decimal(9,0), 
FuncFloorDecimalToDecimal(col 6:decimal(12,4))(children: 
ConvertDecimal64ToDecimal(col 2:decimal(12,4)/DECIMAL_64) -> 6:decimal(12,4)) 
-> 11:decimal(9,0), FuncCeilDecimalToDecimal(col 6:decimal(12,4))(children: 
ConvertDecimal64ToDecimal(col 2:decimal(12,4)/DECIMAL_64) -> 6:decimal(12,4)) 
-> 12:decimal(9,0), RoundWithNumDigitsDoubleToDouble(col 8, decimalPlaces 
58)(children: FuncExpDoubleToDouble(col 7:double)(children: 
CastDecimalToDouble(col 6:decimal(12,4))(children: 
ConvertDecimal64ToDecimal(col 2:decimal(12,4)/DECIMAL_64) -> 6:decimal(12,4)) 
-> 7:double) -> 8:double) -> 7:double, FuncLnDoubleToDouble(
 col 8:double)(children: CastDecimalToDouble(col 6:decimal(12,4))(children: 
ConvertDecimal64ToDecimal(col 2:decimal(12,4)/DECIMAL_64) -> 6:decimal(12,4)) 
-> 8:double) -> 13:double, FuncLog10DoubleToDouble(col 8:double)(children: 
CastDecimalToDouble(col 6:decimal(12,4))(children: 
ConvertDecimal64ToDecimal(col 2:decimal(12,4)/DECIMAL_64) -> 6:decimal(12,4)) 
-> 8:double) -> 14:double, FuncLog2DoubleToDouble(col 8:double)(children: 
CastDecimalToDouble(col 6:decimal(12,4))(children: 
ConvertDecimal64ToDecimal(col 2:decimal(12,4)/DECIMAL_64) -> 6:decimal(12,4)) 
-> 8:double) -> 15:double, FuncLog2DoubleToDouble(col 8:double)(children: 
CastDecimalToDouble(col 32:decimal(13,4))(children: 
ConvertDecimal64ToDecimal(col 16:decimal(13,4)/DECIMAL_64)(children: 
Decimal64ColSubtractDecimal64Scalar(col 2:decimal(12,4)/DECIMAL_64, 
decimal64Val 156010000, decimalVal 15601) -> 16:decimal(13,4)/DECIMAL_64) -> 
32:decimal(13,4)) -> 8:double) -> 17:double, FuncLogWithBaseDoubleToDouble(col 
8:double)(children
 : CastDecimalToDouble(col 6:decimal(12,4))(children: 
ConvertDecimal64ToDecimal(col 2:decimal(12,4)/DECIMAL_64) -> 6:decimal(12,4)) 
-> 8:double) -> 18:double, FuncPowerDoubleToDouble(col 19:double)(children: 
FuncLog2DoubleToDouble(col 8:double)(children: CastDecimalToDouble(col 
6:decimal(12,4))(children: ConvertDecimal64ToDecimal(col 
2:decimal(12,4)/DECIMAL_64) -> 6:decimal(12,4)) -> 8:double) -> 19:double) -> 
8:double, FuncPowerDoubleToDouble(col 20:double)(children: 
FuncLog2DoubleToDouble(col 19:double)(children: CastDecimalToDouble(col 
6:decimal(12,4))(children: ConvertDecimal64ToDecimal(col 
2:decimal(12,4)/DECIMAL_64) -> 6:decimal(12,4)) -> 19:double) -> 20:double) -> 
19:double, FuncSqrtDoubleToDouble(col 20:double)(children: 
CastDecimalToDouble(col 6:decimal(12,4))(children: 
ConvertDecimal64ToDecimal(col 2:decimal(12,4)/DECIMAL_64) -> 6:decimal(12,4)) 
-> 20:double) -> 21:double, FuncAbsDecimalToDecimal(col 
6:decimal(12,4))(children: ConvertDecimal64ToDecimal(col 2:decimal(12,4)/
 DECIMAL_64) -> 6:decimal(12,4)) -> 22:decimal(12,4), FuncSinDoubleToDouble(col 
20:double)(children: CastDecimalToDouble(col 6:decimal(12,4))(children: 
ConvertDecimal64ToDecimal(col 2:decimal(12,4)/DECIMAL_64) -> 6:decimal(12,4)) 
-> 20:double) -> 23:double, FuncASinDoubleToDouble(col 20:double)(children: 
CastDecimalToDouble(col 6:decimal(12,4))(children: 
ConvertDecimal64ToDecimal(col 2:decimal(12,4)/DECIMAL_64) -> 6:decimal(12,4)) 
-> 20:double) -> 24:double, FuncCosDoubleToDouble(col 20:double)(children: 
CastDecimalToDouble(col 6:decimal(12,4))(children: 
ConvertDecimal64ToDecimal(col 2:decimal(12,4)/DECIMAL_64) -> 6:decimal(12,4)) 
-> 20:double) -> 25:double, FuncACosDoubleToDouble(col 20:double)(children: 
CastDecimalToDouble(col 6:decimal(12,4))(children: 
ConvertDecimal64ToDecimal(col 2:decimal(12,4)/DECIMAL_64) -> 6:decimal(12,4)) 
-> 20:double) -> 26:double, FuncATanDoubleToDouble(col 20:double)(children: 
CastDecimalToDouble(col 6:decimal(12,4))(children: ConvertDecimal64ToDecimal(c
 ol 2:decimal(12,4)/DECIMAL_64) -> 6:decimal(12,4)) -> 20:double) -> 27:double, 
FuncDegreesDoubleToDouble(col 20:double)(children: CastDecimalToDouble(col 
6:decimal(12,4))(children: ConvertDecimal64ToDecimal(col 
2:decimal(12,4)/DECIMAL_64) -> 6:decimal(12,4)) -> 20:double) -> 28:double, 
FuncRadiansDoubleToDouble(col 20:double)(children: CastDecimalToDouble(col 
6:decimal(12,4))(children: ConvertDecimal64ToDecimal(col 
2:decimal(12,4)/DECIMAL_64) -> 6:decimal(12,4)) -> 20:double) -> 29:double, 
FuncNegateDecimalToDecimal(col 6:decimal(12,4))(children: 
ConvertDecimal64ToDecimal(col 2:decimal(12,4)/DECIMAL_64) -> 6:decimal(12,4)) 
-> 30:decimal(12,4), FuncSignDecimalToLong(col 6:decimal(12,4))(children: 
ConvertDecimal64ToDecimal(col 2:decimal(12,4)/DECIMAL_64) -> 6:decimal(12,4)) 
-> 5:int, FuncCosDoubleToDouble(col 20:double)(children: 
DoubleColAddDoubleScalar(col 31:double, val 3.14159)(children: 
DoubleColUnaryMinus(col 20:double)(children: FuncSinDoubleToDouble(col 
31:double)(children: Fu
 ncLnDoubleToDouble(col 20:double)(children: CastDecimalToDouble(col 
6:decimal(12,4))(children: ConvertDecimal64ToDecimal(col 
2:decimal(12,4)/DECIMAL_64) -> 6:decimal(12,4)) -> 20:double) -> 31:double) -> 
20:double) -> 31:double) -> 20:double) -> 31:double
+                          projectedOutputColumnNums: [2, 10, 12, 14, 16, 20, 
23, 26, 29, 32, 35, 39, 43, 46, 48, 51, 54, 57, 60, 63, 66, 69, 2, 71, 73, 80]
+                          selectExpressions: 
FuncRoundWithNumDigitsDecimalToDecimal(col 9:decimal(12,4), decimalPlaces 
2)(children: ConvertDecimal64ToDecimal(col 2:decimal(12,4)/DECIMAL_64) -> 
9:decimal(12,4)) -> 10:decimal(11,2), FuncRoundDecimalToDecimal(col 
11:decimal(12,4))(children: ConvertDecimal64ToDecimal(col 
2:decimal(12,4)/DECIMAL_64) -> 11:decimal(12,4)) -> 12:decimal(9,0), 
FuncFloorDecimalToDecimal(col 13:decimal(12,4))(children: 
ConvertDecimal64ToDecimal(col 2:decimal(12,4)/DECIMAL_64) -> 13:decimal(12,4)) 
-> 14:decimal(9,0), FuncCeilDecimalToDecimal(col 15:decimal(12,4))(children: 
ConvertDecimal64ToDecimal(col 2:decimal(12,4)/DECIMAL_64) -> 15:decimal(12,4)) 
-> 16:decimal(9,0), RoundWithNumDigitsDoubleToDouble(col 19, decimalPlaces 
58)(children: FuncExpDoubleToDouble(col 18:double)(children: 
CastDecimalToDouble(col 17:decimal(12,4))(children: 
ConvertDecimal64ToDecimal(col 2:decimal(12,4)/DECIMAL_64) -> 17:decimal(12,4)) 
-> 18:double) -> 19:double) -> 20:double, FuncLnD
 oubleToDouble(col 22:double)(children: CastDecimalToDouble(col 
21:decimal(12,4))(children: ConvertDecimal64ToDecimal(col 
2:decimal(12,4)/DECIMAL_64) -> 21:decimal(12,4)) -> 22:double) -> 23:double, 
FuncLog10DoubleToDouble(col 25:double)(children: CastDecimalToDouble(col 
24:decimal(12,4))(children: ConvertDecimal64ToDecimal(col 
2:decimal(12,4)/DECIMAL_64) -> 24:decimal(12,4)) -> 25:double) -> 26:double, 
FuncLog2DoubleToDouble(col 28:double)(children: CastDecimalToDouble(col 
27:decimal(12,4))(children: ConvertDecimal64ToDecimal(col 
2:decimal(12,4)/DECIMAL_64) -> 27:decimal(12,4)) -> 28:double) -> 29:double, 
FuncLog2DoubleToDouble(col 31:double)(children: CastDecimalToDouble(col 
81:decimal(13,4))(children: ConvertDecimal64ToDecimal(col 
30:decimal(13,4)/DECIMAL_64)(children: Decimal64ColSubtractDecimal64Scalar(col 
2:decimal(12,4)/DECIMAL_64, decimal64Val 156010000, decimalVal 15601) -> 
30:decimal(13,4)/DECIMAL_64) -> 81:decimal(13,4)) -> 31:double) -> 32:double, 
FuncLogWithBaseDoubleToD
 ouble(col 34:double)(children: CastDecimalToDouble(col 
33:decimal(12,4))(children: ConvertDecimal64ToDecimal(col 
2:decimal(12,4)/DECIMAL_64) -> 33:decimal(12,4)) -> 34:double) -> 35:double, 
FuncPowerDoubleToDouble(col 38:double)(children: FuncLog2DoubleToDouble(col 
37:double)(children: CastDecimalToDouble(col 36:decimal(12,4))(children: 
ConvertDecimal64ToDecimal(col 2:decimal(12,4)/DECIMAL_64) -> 36:decimal(12,4)) 
-> 37:double) -> 38:double) -> 39:double, FuncPowerDoubleToDouble(col 
42:double)(children: FuncLog2DoubleToDouble(col 41:double)(children: 
CastDecimalToDouble(col 40:decimal(12,4))(children: 
ConvertDecimal64ToDecimal(col 2:decimal(12,4)/DECIMAL_64) -> 40:decimal(12,4)) 
-> 41:double) -> 42:double) -> 43:double, FuncSqrtDoubleToDouble(col 
45:double)(children: CastDecimalToDouble(col 44:decimal(12,4))(children: 
ConvertDecimal64ToDecimal(col 2:decimal(12,4)/DECIMAL_64) -> 44:decimal(12,4)) 
-> 45:double) -> 46:double, FuncAbsDecimalToDecimal(col 
47:decimal(12,4))(children: Conv
 ertDecimal64ToDecimal(col 2:decimal(12,4)/DECIMAL_64) -> 47:decimal(12,4)) -> 
48:decimal(12,4), FuncSinDoubleToDouble(col 50:double)(children: 
CastDecimalToDouble(col 49:decimal(12,4))(children: 
ConvertDecimal64ToDecimal(col 2:decimal(12,4)/DECIMAL_64) -> 49:decimal(12,4)) 
-> 50:double) -> 51:double, FuncASinDoubleToDouble(col 53:double)(children: 
CastDecimalToDouble(col 52:decimal(12,4))(children: 
ConvertDecimal64ToDecimal(col 2:decimal(12,4)/DECIMAL_64) -> 52:decimal(12,4)) 
-> 53:double) -> 54:double, FuncCosDoubleToDouble(col 56:double)(children: 
CastDecimalToDouble(col 55:decimal(12,4))(children: 
ConvertDecimal64ToDecimal(col 2:decimal(12,4)/DECIMAL_64) -> 55:decimal(12,4)) 
-> 56:double) -> 57:double, FuncACosDoubleToDouble(col 59:double)(children: 
CastDecimalToDouble(col 58:decimal(12,4))(children: 
ConvertDecimal64ToDecimal(col 2:decimal(12,4)/DECIMAL_64) -> 58:decimal(12,4)) 
-> 59:double) -> 60:double, FuncATanDoubleToDouble(col 62:double)(children: 
CastDecimalToDouble(col 61:
 decimal(12,4))(children: ConvertDecimal64ToDecimal(col 
2:decimal(12,4)/DECIMAL_64) -> 61:decimal(12,4)) -> 62:double) -> 63:double, 
FuncDegreesDoubleToDouble(col 65:double)(children: CastDecimalToDouble(col 
64:decimal(12,4))(children: ConvertDecimal64ToDecimal(col 
2:decimal(12,4)/DECIMAL_64) -> 64:decimal(12,4)) -> 65:double) -> 66:double, 
FuncRadiansDoubleToDouble(col 68:double)(children: CastDecimalToDouble(col 
67:decimal(12,4))(children: ConvertDecimal64ToDecimal(col 
2:decimal(12,4)/DECIMAL_64) -> 67:decimal(12,4)) -> 68:double) -> 69:double, 
FuncNegateDecimalToDecimal(col 70:decimal(12,4))(children: 
ConvertDecimal64ToDecimal(col 2:decimal(12,4)/DECIMAL_64) -> 70:decimal(12,4)) 
-> 71:decimal(12,4), FuncSignDecimalToLong(col 72:decimal(12,4))(children: 
ConvertDecimal64ToDecimal(col 2:decimal(12,4)/DECIMAL_64) -> 72:decimal(12,4)) 
-> 73:int, FuncCosDoubleToDouble(col 79:double)(children: 
DoubleColAddDoubleScalar(col 78:double, val 3.14159)(children: 
DoubleColUnaryMinus(col 77:doubl
 e)(children: FuncSinDoubleToDouble(col 76:double)(children: 
FuncLnDoubleToDouble(col 75:double)(children: CastDecimalToDouble(col 
74:decimal(12,4))(children: ConvertDecimal64ToDecimal(col 
2:decimal(12,4)/DECIMAL_64) -> 74:decimal(12,4)) -> 75:double) -> 76:double) -> 
77:double) -> 78:double) -> 79:double) -> 80:double
                       Statistics: Num rows: 2048 Data size: 233500 Basic 
stats: COMPLETE Column stats: NONE
                       File Output Operator
                         compressed: false
@@ -417,7 +417,7 @@ STAGE PLANS:
                     includeColumns: [0, 2]
                     dataColumns: cbigint:bigint, cdouble:double, 
cdecimal1:decimal(12,4)/DECIMAL_64, cdecimal2:decimal(14,8)/DECIMAL_64
                     partitionColumnCount: 0
-                    scratchColumnTypeNames: [bigint, decimal(12,4), double, 
double, decimal(11,2), decimal(9,0), decimal(9,0), decimal(9,0), double, 
double, double, decimal(13,4)/DECIMAL_64, double, double, double, double, 
double, decimal(12,4), double, double, double, double, double, double, double, 
decimal(12,4), double, decimal(13,4)]
+                    scratchColumnTypeNames: [bigint, decimal(12,4), double, 
double, decimal(12,4), decimal(11,2), decimal(12,4), decimal(9,0), 
decimal(12,4), decimal(9,0), decimal(12,4), decimal(9,0), decimal(12,4), 
double, double, double, decimal(12,4), double, double, decimal(12,4), double, 
double, decimal(12,4), double, double, decimal(13,4)/DECIMAL_64, double, 
double, decimal(12,4), double, double, decimal(12,4), double, double, double, 
decimal(12,4), double, double, double, decimal(12,4), double, double, 
decimal(12,4), decimal(12,4), decimal(12,4), double, double, decimal(12,4), 
double, double, decimal(12,4), double, double, decimal(12,4), double, double, 
decimal(12,4), double, double, decimal(12,4), double, double, decimal(12,4), 
double, double, decimal(12,4), decimal(12,4), decimal(12,4), bigint, 
decimal(12,4), double, double, double, double, double, double, decimal(13,4)]
 
   Stage: Stage-0
     Fetch Operator

http://git-wip-us.apache.org/repos/asf/hive/blob/8b968c7e/ql/src/test/results/clientpositive/llap/vector_decimal_udf.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/llap/vector_decimal_udf.q.out 
b/ql/src/test/results/clientpositive/llap/vector_decimal_udf.q.out
index 7762e1e..0536ccd 100644
--- a/ql/src/test/results/clientpositive/llap/vector_decimal_udf.q.out
+++ b/ql/src/test/results/clientpositive/llap/vector_decimal_udf.q.out
@@ -337,8 +337,8 @@ STAGE PLANS:
                     Select Vectorization:
                         className: VectorSelectOperator
                         native: true
-                        projectedOutputColumnNums: [4]
-                        selectExpressions: DoubleColAddDoubleColumn(col 
3:double, col 5:double)(children: CastDecimalToDouble(col 0:decimal(20,10)) -> 
3:double, DoubleColDivideDoubleScalar(col 4:double, val 2.0)(children: 
CastLongToDouble(col 1:int) -> 4:double) -> 5:double) -> 4:double
+                        projectedOutputColumnNums: [6]
+                        selectExpressions: DoubleColAddDoubleColumn(col 
3:double, col 5:double)(children: CastDecimalToDouble(col 0:decimal(20,10)) -> 
3:double, DoubleColDivideDoubleScalar(col 4:double, val 2.0)(children: 
CastLongToDouble(col 1:int) -> 4:double) -> 5:double) -> 6:double
                     Statistics: Num rows: 39 Data size: 312 Basic stats: 
COMPLETE Column stats: COMPLETE
                     File Output Operator
                       compressed: false
@@ -366,7 +366,7 @@ STAGE PLANS:
                     includeColumns: [0, 1]
                     dataColumns: key:decimal(20,10), value:int
                     partitionColumnCount: 0
-                    scratchColumnTypeNames: [double, double, double]
+                    scratchColumnTypeNames: [double, double, double, double]
 
   Stage: Stage-0
     Fetch Operator
@@ -821,8 +821,8 @@ STAGE PLANS:
                     Select Vectorization:
                         className: VectorSelectOperator
                         native: true
-                        projectedOutputColumnNums: [4]
-                        selectExpressions: DoubleColSubtractDoubleColumn(col 
3:double, col 5:double)(children: CastDecimalToDouble(col 0:decimal(20,10)) -> 
3:double, DoubleColDivideDoubleScalar(col 4:double, val 2.0)(children: 
CastLongToDouble(col 1:int) -> 4:double) -> 5:double) -> 4:double
+                        projectedOutputColumnNums: [6]
+                        selectExpressions: DoubleColSubtractDoubleColumn(col 
3:double, col 5:double)(children: CastDecimalToDouble(col 0:decimal(20,10)) -> 
3:double, DoubleColDivideDoubleScalar(col 4:double, val 2.0)(children: 
CastLongToDouble(col 1:int) -> 4:double) -> 5:double) -> 6:double
                     Statistics: Num rows: 39 Data size: 312 Basic stats: 
COMPLETE Column stats: COMPLETE
                     File Output Operator
                       compressed: false
@@ -850,7 +850,7 @@ STAGE PLANS:
                     includeColumns: [0, 1]
                     dataColumns: key:decimal(20,10), value:int
                     partitionColumnCount: 0
-                    scratchColumnTypeNames: [double, double, double]
+                    scratchColumnTypeNames: [double, double, double, double]
 
   Stage: Stage-0
     Fetch Operator
@@ -1417,8 +1417,8 @@ STAGE PLANS:
                     Select Vectorization:
                         className: VectorSelectOperator
                         native: true
-                        projectedOutputColumnNums: [4]
-                        selectExpressions: DoubleColMultiplyDoubleColumn(col 
3:double, col 5:double)(children: CastDecimalToDouble(col 0:decimal(20,10)) -> 
3:double, DoubleColDivideDoubleScalar(col 4:double, val 2.0)(children: 
CastLongToDouble(col 1:int) -> 4:double) -> 5:double) -> 4:double
+                        projectedOutputColumnNums: [6]
+                        selectExpressions: DoubleColMultiplyDoubleColumn(col 
3:double, col 5:double)(children: CastDecimalToDouble(col 0:decimal(20,10)) -> 
3:double, DoubleColDivideDoubleScalar(col 4:double, val 2.0)(children: 
CastLongToDouble(col 1:int) -> 4:double) -> 5:double) -> 6:double
                     Statistics: Num rows: 39 Data size: 312 Basic stats: 
COMPLETE Column stats: COMPLETE
                     File Output Operator
                       compressed: false
@@ -1446,7 +1446,7 @@ STAGE PLANS:
                     includeColumns: [0, 1]
                     dataColumns: key:decimal(20,10), value:int
                     partitionColumnCount: 0
-                    scratchColumnTypeNames: [double, double, double]
+                    scratchColumnTypeNames: [double, double, double, double]
 
   Stage: Stage-0
     Fetch Operator
@@ -2026,8 +2026,8 @@ STAGE PLANS:
                       Select Vectorization:
                           className: VectorSelectOperator
                           native: true
-                          projectedOutputColumnNums: [4]
-                          selectExpressions: DoubleColDivideDoubleColumn(col 
3:double, col 5:double)(children: CastDecimalToDouble(col 0:decimal(20,10)) -> 
3:double, DoubleColDivideDoubleScalar(col 4:double, val 2.0)(children: 
CastLongToDouble(col 1:int) -> 4:double) -> 5:double) -> 4:double
+                          projectedOutputColumnNums: [6]
+                          selectExpressions: DoubleColDivideDoubleColumn(col 
3:double, col 5:double)(children: CastDecimalToDouble(col 0:decimal(20,10)) -> 
3:double, DoubleColDivideDoubleScalar(col 4:double, val 2.0)(children: 
CastLongToDouble(col 1:int) -> 4:double) -> 5:double) -> 6:double
                       Statistics: Num rows: 39 Data size: 312 Basic stats: 
COMPLETE Column stats: COMPLETE
                       File Output Operator
                         compressed: false
@@ -2055,7 +2055,7 @@ STAGE PLANS:
                     includeColumns: [0, 1]
                     dataColumns: key:decimal(20,10), value:int
                     partitionColumnCount: 0
-                    scratchColumnTypeNames: [double, double, double]
+                    scratchColumnTypeNames: [double, double, double, double]
 
   Stage: Stage-0
     Fetch Operator
@@ -2132,8 +2132,8 @@ STAGE PLANS:
                     Select Vectorization:
                         className: VectorSelectOperator
                         native: true
-                        projectedOutputColumnNums: [3]
-                        selectExpressions: DoubleScalarAddDoubleColumn(val 
1.0, col 4:double)(children: DoubleColDivideDoubleScalar(col 3:double, val 
2.0)(children: CastDecimalToDouble(col 0:decimal(20,10)) -> 3:double) -> 
4:double) -> 3:double
+                        projectedOutputColumnNums: [5]
+                        selectExpressions: DoubleScalarAddDoubleColumn(val 
1.0, col 4:double)(children: DoubleColDivideDoubleScalar(col 3:double, val 
2.0)(children: CastDecimalToDouble(col 0:decimal(20,10)) -> 3:double) -> 
4:double) -> 5:double
                     Statistics: Num rows: 39 Data size: 312 Basic stats: 
COMPLETE Column stats: COMPLETE
                     File Output Operator
                       compressed: false
@@ -2161,7 +2161,7 @@ STAGE PLANS:
                     includeColumns: [0]
                     dataColumns: key:decimal(20,10), value:int
                     partitionColumnCount: 0
-                    scratchColumnTypeNames: [double, double]
+                    scratchColumnTypeNames: [double, double, double]
 
   Stage: Stage-0
     Fetch Operator
@@ -2459,8 +2459,8 @@ STAGE PLANS:
                   Select Vectorization:
                       className: VectorSelectOperator
                       native: true
-                      projectedOutputColumnNums: [0, 4, 6, 1]
-                      selectExpressions: DecimalColDivideDecimalColumn(col 
1:decimal(30,10), col 3:decimal(19,0))(children: CastLongToDecimal(col 
2:bigint) -> 3:decimal(19,0)) -> 4:decimal(38,18), 
DecimalColDivideDecimalColumn(col 5:decimal(24,14), col 
3:decimal(19,0))(children: CastDecimalToDecimal(col 1:decimal(30,10)) -> 
5:decimal(24,14), CastLongToDecimal(col 2:bigint) -> 3:decimal(19,0)) -> 
6:decimal(38,28)
+                      projectedOutputColumnNums: [0, 4, 7, 1]
+                      selectExpressions: DecimalColDivideDecimalColumn(col 
1:decimal(30,10), col 3:decimal(19,0))(children: CastLongToDecimal(col 
2:bigint) -> 3:decimal(19,0)) -> 4:decimal(38,18), 
DecimalColDivideDecimalColumn(col 5:decimal(24,14), col 
6:decimal(19,0))(children: CastDecimalToDecimal(col 1:decimal(30,10)) -> 
5:decimal(24,14), CastLongToDecimal(col 2:bigint) -> 6:decimal(19,0)) -> 
7:decimal(38,28)
                   Statistics: Num rows: 17 Data size: 5780 Basic stats: 
COMPLETE Column stats: COMPLETE
                   Reduce Output Operator
                     key expressions: _col0 (type: int)
@@ -2470,7 +2470,7 @@ STAGE PLANS:
                         keyColumns: 0:int
                         native: true
                         nativeConditionsMet: 
hive.vectorized.execution.reducesink.new.enabled IS true, hive.execution.engine 
tez IN [tez, spark] IS true, No PTF TopN IS true, No DISTINCT columns IS true, 
BinarySortableSerDe for keys IS true, LazyBinarySerDe for values IS true
-                        valueColumns: 4:decimal(38,18), 6:decimal(38,28), 
1:decimal(30,10)
+                        valueColumns: 4:decimal(38,18), 7:decimal(38,28), 
1:decimal(30,10)
                     Statistics: Num rows: 17 Data size: 5780 Basic stats: 
COMPLETE Column stats: COMPLETE
                     value expressions: _col1 (type: decimal(38,18)), _col2 
(type: decimal(38,28)), _col3 (type: decimal(30,10))
         Reducer 3 
@@ -3432,8 +3432,8 @@ STAGE PLANS:
                   Select Vectorization:
                       className: VectorSelectOperator
                       native: true
-                      projectedOutputColumnNums: [0, 4, 6]
-                      selectExpressions: FuncPowerDoubleToDouble(col 
5:double)(children: DoubleColDivideLongColumn(col 4:double, col 
3:bigint)(children: DoubleColSubtractDoubleColumn(col 1:double, col 
5:double)(children: DoubleColDivideLongColumn(col 4:double, col 
3:bigint)(children: DoubleColMultiplyDoubleColumn(col 2:double, col 2:double) 
-> 4:double) -> 5:double) -> 4:double) -> 5:double) -> 4:double, 
DoubleColDivideLongColumn(col 5:double, col 3:bigint)(children: 
DoubleColSubtractDoubleColumn(col 1:double, col 6:double)(children: 
DoubleColDivideLongColumn(col 5:double, col 3:bigint)(children: 
DoubleColMultiplyDoubleColumn(col 2:double, col 2:double) -> 5:double) -> 
6:double) -> 5:double) -> 6:double
+                      projectedOutputColumnNums: [0, 8, 12]
+                      selectExpressions: FuncPowerDoubleToDouble(col 
7:double)(children: DoubleColDivideLongColumn(col 6:double, col 
3:bigint)(children: DoubleColSubtractDoubleColumn(col 1:double, col 
5:double)(children: DoubleColDivideLongColumn(col 4:double, col 
3:bigint)(children: DoubleColMultiplyDoubleColumn(col 2:double, col 2:double) 
-> 4:double) -> 5:double) -> 6:double) -> 7:double) -> 8:double, 
DoubleColDivideLongColumn(col 11:double, col 3:bigint)(children: 
DoubleColSubtractDoubleColumn(col 1:double, col 10:double)(children: 
DoubleColDivideLongColumn(col 9:double, col 3:bigint)(children: 
DoubleColMultiplyDoubleColumn(col 2:double, col 2:double) -> 9:double) -> 
10:double) -> 11:double) -> 12:double
                   Statistics: Num rows: 17 Data size: 340 Basic stats: 
COMPLETE Column stats: COMPLETE
                   File Output Operator
                     compressed: false
@@ -3600,8 +3600,8 @@ STAGE PLANS:
                   Select Vectorization:
                       className: VectorSelectOperator
                       native: true
-                      projectedOutputColumnNums: [0, 4, 9]
-                      selectExpressions: FuncPowerDoubleToDouble(col 
5:double)(children: DoubleColDivideLongColumn(col 4:double, col 
8:bigint)(children: DoubleColSubtractDoubleColumn(col 1:double, col 
5:double)(children: DoubleColDivideLongColumn(col 4:double, col 
3:bigint)(children: DoubleColMultiplyDoubleColumn(col 2:double, col 2:double) 
-> 4:double) -> 5:double) -> 4:double, IfExprNullCondExpr(col 6:boolean, null, 
col 7:bigint)(children: LongColEqualLongScalar(col 3:bigint, val 1) -> 
6:boolean, LongColSubtractLongScalar(col 3:bigint, val 1) -> 7:bigint) -> 
8:bigint) -> 5:double) -> 4:double, DoubleColDivideLongColumn(col 5:double, col 
11:bigint)(children: DoubleColSubtractDoubleColumn(col 1:double, col 
9:double)(children: DoubleColDivideLongColumn(col 5:double, col 
3:bigint)(children: DoubleColMultiplyDoubleColumn(col 2:double, col 2:double) 
-> 5:double) -> 9:double) -> 5:double, IfExprNullCondExpr(col 8:boolean, null, 
col 10:bigint)(children: LongColEqualLongScalar(col 3:bigint
 , val 1) -> 8:boolean, LongColSubtractLongScalar(col 3:bigint, val 1) -> 
10:bigint) -> 11:bigint) -> 9:double
+                      projectedOutputColumnNums: [0, 11, 18]
+                      selectExpressions: FuncPowerDoubleToDouble(col 
10:double)(children: DoubleColDivideLongColumn(col 6:double, col 
9:bigint)(children: DoubleColSubtractDoubleColumn(col 1:double, col 
5:double)(children: DoubleColDivideLongColumn(col 4:double, col 
3:bigint)(children: DoubleColMultiplyDoubleColumn(col 2:double, col 2:double) 
-> 4:double) -> 5:double) -> 6:double, IfExprNullCondExpr(col 7:boolean, null, 
col 8:bigint)(children: LongColEqualLongScalar(col 3:bigint, val 1) -> 
7:boolean, LongColSubtractLongScalar(col 3:bigint, val 1) -> 8:bigint) -> 
9:bigint) -> 10:double) -> 11:double, DoubleColDivideLongColumn(col 14:double, 
col 17:bigint)(children: DoubleColSubtractDoubleColumn(col 1:double, col 
13:double)(children: DoubleColDivideLongColumn(col 12:double, col 
3:bigint)(children: DoubleColMultiplyDoubleColumn(col 2:double, col 2:double) 
-> 12:double) -> 13:double) -> 14:double, IfExprNullCondExpr(col 15:boolean, 
null, col 16:bigint)(children: LongColEqualLongScalar(co
 l 3:bigint, val 1) -> 15:boolean, LongColSubtractLongScalar(col 3:bigint, val 
1) -> 16:bigint) -> 17:bigint) -> 18:double
                   Statistics: Num rows: 17 Data size: 340 Basic stats: 
COMPLETE Column stats: COMPLETE
                   File Output Operator
                     compressed: false
@@ -4447,8 +4447,8 @@ STAGE PLANS:
                     Select Vectorization:
                         className: VectorSelectOperator
                         native: true
-                        projectedOutputColumnNums: [5]
-                        selectExpressions: DoubleColAddDoubleColumn(col 
4:double, col 6:double)(children: CastDecimalToDouble(col 
3:decimal(15,3))(children: ConvertDecimal64ToDecimal(col 
0:decimal(15,3)/DECIMAL_64) -> 3:decimal(15,3)) -> 4:double, 
DoubleColDivideDoubleScalar(col 5:double, val 2.0)(children: 
CastLongToDouble(col 1:int) -> 5:double) -> 6:double) -> 5:double
+                        projectedOutputColumnNums: [7]
+                        selectExpressions: DoubleColAddDoubleColumn(col 
4:double, col 6:double)(children: CastDecimalToDouble(col 
3:decimal(15,3))(children: ConvertDecimal64ToDecimal(col 
0:decimal(15,3)/DECIMAL_64) -> 3:decimal(15,3)) -> 4:double, 
DoubleColDivideDoubleScalar(col 5:double, val 2.0)(children: 
CastLongToDouble(col 1:int) -> 5:double) -> 6:double) -> 7:double
                     Statistics: Num rows: 1 Data size: 116 Basic stats: 
COMPLETE Column stats: NONE
                     File Output Operator
                       compressed: false
@@ -4476,7 +4476,7 @@ STAGE PLANS:
                     includeColumns: [0, 1]
                     dataColumns: key:decimal(15,3)/DECIMAL_64, value:int
                     partitionColumnCount: 0
-                    scratchColumnTypeNames: [decimal(15,3), double, double, 
double]
+                    scratchColumnTypeNames: [decimal(15,3), double, double, 
double, double]
 
   Stage: Stage-0
     Fetch Operator
@@ -4931,8 +4931,8 @@ STAGE PLANS:
                     Select Vectorization:
                         className: VectorSelectOperator
                         native: true
-                        projectedOutputColumnNums: [5]
-                        selectExpressions: DoubleColSubtractDoubleColumn(col 
4:double, col 6:double)(children: CastDecimalToDouble(col 
3:decimal(15,3))(children: ConvertDecimal64ToDecimal(col 
0:decimal(15,3)/DECIMAL_64) -> 3:decimal(15,3)) -> 4:double, 
DoubleColDivideDoubleScalar(col 5:double, val 2.0)(children: 
CastLongToDouble(col 1:int) -> 5:double) -> 6:double) -> 5:double
+                        projectedOutputColumnNums: [7]
+                        selectExpressions: DoubleColSubtractDoubleColumn(col 
4:double, col 6:double)(children: CastDecimalToDouble(col 
3:decimal(15,3))(children: ConvertDecimal64ToDecimal(col 
0:decimal(15,3)/DECIMAL_64) -> 3:decimal(15,3)) -> 4:double, 
DoubleColDivideDoubleScalar(col 5:double, val 2.0)(children: 
CastLongToDouble(col 1:int) -> 5:double) -> 6:double) -> 7:double
                     Statistics: Num rows: 1 Data size: 116 Basic stats: 
COMPLETE Column stats: NONE
                     File Output Operator
                       compressed: false
@@ -4960,7 +4960,7 @@ STAGE PLANS:
                     includeColumns: [0, 1]
                     dataColumns: key:decimal(15,3)/DECIMAL_64, value:int
                     partitionColumnCount: 0
-                    scratchColumnTypeNames: [decimal(15,3), double, double, 
double]
+                    scratchColumnTypeNames: [decimal(15,3), double, double, 
double, double]
 
   Stage: Stage-0
     Fetch Operator
@@ -5527,8 +5527,8 @@ STAGE PLANS:
                     Select Vectorization:
                         className: VectorSelectOperator
                         native: true
-                        projectedOutputColumnNums: [5]
-                        selectExpressions: DoubleColMultiplyDoubleColumn(col 
4:double, col 6:double)(children: CastDecimalToDouble(col 
3:decimal(15,3))(children: ConvertDecimal64ToDecimal(col 
0:decimal(15,3)/DECIMAL_64) -> 3:decimal(15,3)) -> 4:double, 
DoubleColDivideDoubleScalar(col 5:double, val 2.0)(children: 
CastLongToDouble(col 1:int) -> 5:double) -> 6:double) -> 5:double
+                        projectedOutputColumnNums: [7]
+                        selectExpressions: DoubleColMultiplyDoubleColumn(col 
4:double, col 6:double)(children: CastDecimalToDouble(col 
3:decimal(15,3))(children: ConvertDecimal64ToDecimal(col 
0:decimal(15,3)/DECIMAL_64) -> 3:decimal(15,3)) -> 4:double, 
DoubleColDivideDoubleScalar(col 5:double, val 2.0)(children: 
CastLongToDouble(col 1:int) -> 5:double) -> 6:double) -> 7:double
                     Statistics: Num rows: 1 Data size: 116 Basic stats: 
COMPLETE Column stats: NONE
                     File Output Operator
                       compressed: false
@@ -5556,7 +5556,7 @@ STAGE PLANS:
                     includeColumns: [0, 1]
                     dataColumns: key:decimal(15,3)/DECIMAL_64, value:int
                     partitionColumnCount: 0
-                    scratchColumnTypeNames: [decimal(15,3), double, double, 
double]
+                    scratchColumnTypeNames: [decimal(15,3), double, double, 
double, double]
 
   Stage: Stage-0
     Fetch Operator
@@ -6136,8 +6136,8 @@ STAGE PLANS:
                       Select Vectorization:
                           className: VectorSelectOperator
                           native: true
-                          projectedOutputColumnNums: [5]
-                          selectExpressions: DoubleColDivideDoubleColumn(col 
4:double, col 6:double)(children: CastDecimalToDouble(col 
3:decimal(15,3))(children: ConvertDecimal64ToDecimal(col 
0:decimal(15,3)/DECIMAL_64) -> 3:decimal(15,3)) -> 4:double, 
DoubleColDivideDoubleScalar(col 5:double, val 2.0)(children: 
CastLongToDouble(col 1:int) -> 5:double) -> 6:double) -> 5:double
+                          projectedOutputColumnNums: [7]
+                          selectExpressions: DoubleColDivideDoubleColumn(col 
4:double, col 6:double)(children: CastDecimalToDouble(col 
3:decimal(15,3))(children: ConvertDecimal64ToDecimal(col 
0:decimal(15,3)/DECIMAL_64) -> 3:decimal(15,3)) -> 4:double, 
DoubleColDivideDoubleScalar(col 5:double, val 2.0)(children: 
CastLongToDouble(col 1:int) -> 5:double) -> 6:double) -> 7:double
                       Statistics: Num rows: 1 Data size: 116 Basic stats: 
COMPLETE Column stats: NONE
                       File Output Operator
                         compressed: false
@@ -6165,7 +6165,7 @@ STAGE PLANS:
                     includeColumns: [0, 1]
                     dataColumns: key:decimal(15,3)/DECIMAL_64, value:int
                     partitionColumnCount: 0
-                    scratchColumnTypeNames: [decimal(15,3), double, double, 
double]
+                    scratchColumnTypeNames: [decimal(15,3), double, double, 
double, double]
 
   Stage: Stage-0
     Fetch Operator
@@ -6242,8 +6242,8 @@ STAGE PLANS:
                     Select Vectorization:
                         className: VectorSelectOperator
                         native: true
-                        projectedOutputColumnNums: [4]
-                        selectExpressions: DoubleScalarAddDoubleColumn(val 
1.0, col 5:double)(children: DoubleColDivideDoubleScalar(col 4:double, val 
2.0)(children: CastDecimalToDouble(col 3:decimal(15,3))(children: 
ConvertDecimal64ToDecimal(col 0:decimal(15,3)/DECIMAL_64) -> 3:decimal(15,3)) 
-> 4:double) -> 5:double) -> 4:double
+                        projectedOutputColumnNums: [6]
+                        selectExpressions: DoubleScalarAddDoubleColumn(val 
1.0, col 5:double)(children: DoubleColDivideDoubleScalar(col 4:double, val 
2.0)(children: CastDecimalToDouble(col 3:decimal(15,3))(children: 
ConvertDecimal64ToDecimal(col 0:decimal(15,3)/DECIMAL_64) -> 3:decimal(15,3)) 
-> 4:double) -> 5:double) -> 6:double
                     Statistics: Num rows: 1 Data size: 112 Basic stats: 
COMPLETE Column stats: NONE
                     File Output Operator
                       compressed: false
@@ -6271,7 +6271,7 @@ STAGE PLANS:
                     includeColumns: [0]
                     dataColumns: key:decimal(15,3)/DECIMAL_64, value:int
                     partitionColumnCount: 0
-                    scratchColumnTypeNames: [decimal(15,3), double, double]
+                    scratchColumnTypeNames: [decimal(15,3), double, double, 
double]
 
   Stage: Stage-0
     Fetch Operator
@@ -6569,8 +6569,8 @@ STAGE PLANS:
                   Select Vectorization:
                       className: VectorSelectOperator
                       native: true
-                      projectedOutputColumnNums: [0, 4, 6, 1]
-                      selectExpressions: DecimalColDivideDecimalColumn(col 
1:decimal(25,3), col 3:decimal(19,0))(children: CastLongToDecimal(col 2:bigint) 
-> 3:decimal(19,0)) -> 4:decimal(38,16), DecimalColDivideDecimalColumn(col 
5:decimal(19,7), col 3:decimal(19,0))(children: CastDecimalToDecimal(col 
1:decimal(25,3)) -> 5:decimal(19,7), CastLongToDecimal(col 2:bigint) -> 
3:decimal(19,0)) -> 6:decimal(38,26)
+                      projectedOutputColumnNums: [0, 4, 7, 1]
+                      selectExpressions: DecimalColDivideDecimalColumn(col 
1:decimal(25,3), col 3:decimal(19,0))(children: CastLongToDecimal(col 2:bigint) 
-> 3:decimal(19,0)) -> 4:decimal(38,16), DecimalColDivideDecimalColumn(col 
5:decimal(19,7), col 6:decimal(19,0))(children: CastDecimalToDecimal(col 
1:decimal(25,3)) -> 5:decimal(19,7), CastLongToDecimal(col 2:bigint) -> 
6:decimal(19,0)) -> 7:decimal(38,26)
                   Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE 
Column stats: NONE
                   Reduce Output Operator
                     key expressions: _col0 (type: int)
@@ -6580,7 +6580,7 @@ STAGE PLANS:
                         keyColumns: 0:int
                         native: true
                         nativeConditionsMet: 
hive.vectorized.execution.reducesink.new.enabled IS true, hive.execution.engine 
tez IN [tez, spark] IS true, No PTF TopN IS true, No DISTINCT columns IS true, 
BinarySortableSerDe for keys IS true, LazyBinarySerDe for values IS true
-                        valueColumns: 4:decimal(38,16), 6:decimal(38,26), 
1:decimal(25,3)
+                        valueColumns: 4:decimal(38,16), 7:decimal(38,26), 
1:decimal(25,3)
                     Statistics: Num rows: 1 Data size: 116 Basic stats: 
COMPLETE Column stats: NONE
                     value expressions: _col1 (type: decimal(38,16)), _col2 
(type: decimal(38,26)), _col3 (type: decimal(25,3))
         Reducer 3 
@@ -7460,13 +7460,13 @@ STAGE PLANS:
                     Select Vectorization:
                         className: VectorSelectOperator
                         native: true
-                        projectedOutputColumnNums: [1, 0, 4, 7]
-                        selectExpressions: CastDecimalToDouble(col 
3:decimal(15,3))(children: ConvertDecimal64ToDecimal(col 
0:decimal(15,3)/DECIMAL_64) -> 3:decimal(15,3)) -> 4:double, 
DoubleColMultiplyDoubleColumn(col 5:double, col 6:double)(children: 
CastDecimalToDouble(col 3:decimal(15,3))(children: 
ConvertDecimal64ToDecimal(col 0:decimal(15,3)/DECIMAL_64) -> 3:decimal(15,3)) 
-> 5:double, CastDecimalToDouble(col 3:decimal(15,3))(children: 
ConvertDecimal64ToDecimal(col 0:decimal(15,3)/DECIMAL_64) -> 3:decimal(15,3)) 
-> 6:double) -> 7:double
+                        projectedOutputColumnNums: [1, 0, 4, 9]
+                        selectExpressions: CastDecimalToDouble(col 
3:decimal(15,3))(children: ConvertDecimal64ToDecimal(col 
0:decimal(15,3)/DECIMAL_64) -> 3:decimal(15,3)) -> 4:double, 
DoubleColMultiplyDoubleColumn(col 6:double, col 8:double)(children: 
CastDecimalToDouble(col 5:decimal(15,3))(children: 
ConvertDecimal64ToDecimal(col 0:decimal(15,3)/DECIMAL_64) -> 5:decimal(15,3)) 
-> 6:double, CastDecimalToDouble(col 7:decimal(15,3))(children: 
ConvertDecimal64ToDecimal(col 0:decimal(15,3)/DECIMAL_64) -> 7:decimal(15,3)) 
-> 8:double) -> 9:double
                     Statistics: Num rows: 1 Data size: 116 Basic stats: 
COMPLETE Column stats: NONE
                     Group By Operator
                       aggregations: sum(_col3), sum(_col2), count(_col1)
                       Group By Vectorization:
-                          aggregators: VectorUDAFSumDouble(col 7:double) -> 
double, VectorUDAFSumDouble(col 4:double) -> double, VectorUDAFCount(col 
0:decimal(15,3)/DECIMAL_64) -> bigint
+                          aggregators: VectorUDAFSumDouble(col 9:double) -> 
double, VectorUDAFSumDouble(col 4:double) -> double, VectorUDAFCount(col 
0:decimal(15,3)/DECIMAL_64) -> bigint
                           className: VectorGroupByOperator
                           groupByMode: HASH
                           keyExpressions: col 1:int
@@ -7505,7 +7505,7 @@ STAGE PLANS:
                     includeColumns: [0, 1]
                     dataColumns: key:decimal(15,3)/DECIMAL_64, value:int
                     partitionColumnCount: 0
-                    scratchColumnTypeNames: [decimal(15,3), double, double, 
double, double]
+                    scratchColumnTypeNames: [decimal(15,3), double, 
decimal(15,3), double, decimal(15,3), double, double]
         Reducer 2 
             Execution mode: vectorized, llap
             Reduce Vectorization:
@@ -7542,8 +7542,8 @@ STAGE PLANS:
                   Select Vectorization:
                       className: VectorSelectOperator
                       native: true
-                      projectedOutputColumnNums: [0, 4, 6]
-                      selectExpressions: FuncPowerDoubleToDouble(col 
5:double)(children: DoubleColDivideLongColumn(col 4:double, col 
3:bigint)(children: DoubleColSubtractDoubleColumn(col 1:double, col 
5:double)(children: DoubleColDivideLongColumn(col 4:double, col 
3:bigint)(children: DoubleColMultiplyDoubleColumn(col 2:double, col 2:double) 
-> 4:double) -> 5:double) -> 4:double) -> 5:double) -> 4:double, 
DoubleColDivideLongColumn(col 5:double, col 3:bigint)(children: 
DoubleColSubtractDoubleColumn(col 1:double, col 6:double)(children: 
DoubleColDivideLongColumn(col 5:double, col 3:bigint)(children: 
DoubleColMultiplyDoubleColumn(col 2:double, col 2:double) -> 5:double) -> 
6:double) -> 5:double) -> 6:double
+                      projectedOutputColumnNums: [0, 8, 12]
+                      selectExpressions: FuncPowerDoubleToDouble(col 
7:double)(children: DoubleColDivideLongColumn(col 6:double, col 
3:bigint)(children: DoubleColSubtractDoubleColumn(col 1:double, col 
5:double)(children: DoubleColDivideLongColumn(col 4:double, col 
3:bigint)(children: DoubleColMultiplyDoubleColumn(col 2:double, col 2:double) 
-> 4:double) -> 5:double) -> 6:double) -> 7:double) -> 8:double, 
DoubleColDivideLongColumn(col 11:double, col 3:bigint)(children: 
DoubleColSubtractDoubleColumn(col 1:double, col 10:double)(children: 
DoubleColDivideLongColumn(col 9:double, col 3:bigint)(children: 
DoubleColMultiplyDoubleColumn(col 2:double, col 2:double) -> 9:double) -> 
10:double) -> 11:double) -> 12:double
                   Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE 
Column stats: NONE
                   File Output Operator
                     compressed: false
@@ -7628,13 +7628,13 @@ STAGE PLANS:
                     Select Vectorization:
                         className: VectorSelectOperator
                         native: true
-                        projectedOutputColumnNums: [1, 0, 4, 7]
-                        selectExpressions: CastDecimalToDouble(col 
3:decimal(15,3))(children: ConvertDecimal64ToDecimal(col 
0:decimal(15,3)/DECIMAL_64) -> 3:decimal(15,3)) -> 4:double, 
DoubleColMultiplyDoubleColumn(col 5:double, col 6:double)(children: 
CastDecimalToDouble(col 3:decimal(15,3))(children: 
ConvertDecimal64ToDecimal(col 0:decimal(15,3)/DECIMAL_64) -> 3:decimal(15,3)) 
-> 5:double, CastDecimalToDouble(col 3:decimal(15,3))(children: 
ConvertDecimal64ToDecimal(col 0:decimal(15,3)/DECIMAL_64) -> 3:decimal(15,3)) 
-> 6:double) -> 7:double
+                        projectedOutputColumnNums: [1, 0, 4, 9]
+                        selectExpressions: CastDecimalToDouble(col 
3:decimal(15,3))(children: ConvertDecimal64ToDecimal(col 
0:decimal(15,3)/DECIMAL_64) -> 3:decimal(15,3)) -> 4:double, 
DoubleColMultiplyDoubleColumn(col 6:double, col 8:double)(children: 
CastDecimalToDouble(col 5:decimal(15,3))(children: 
ConvertDecimal64ToDecimal(col 0:decimal(15,3)/DECIMAL_64) -> 5:decimal(15,3)) 
-> 6:double, CastDecimalToDouble(col 7:decimal(15,3))(children: 
ConvertDecimal64ToDecimal(col 0:decimal(15,3)/DECIMAL_64) -> 7:decimal(15,3)) 
-> 8:double) -> 9:double
                     Statistics: Num rows: 1 Data size: 116 Basic stats: 
COMPLETE Column stats: NONE
                     Group By Operator
                       aggregations: sum(_col3), sum(_col2), count(_col1)
                       Group By Vectorization:
-                          aggregators: VectorUDAFSumDouble(col 7:double) -> 
double, VectorUDAFSumDouble(col 4:double) -> double, VectorUDAFCount(col 
0:decimal(15,3)/DECIMAL_64) -> bigint
+                          aggregators: VectorUDAFSumDouble(col 9:double) -> 
double, VectorUDAFSumDouble(col 4:double) -> double, VectorUDAFCount(col 
0:decimal(15,3)/DECIMAL_64) -> bigint
                           className: VectorGroupByOperator
                           groupByMode: HASH
                           keyExpressions: col 1:int
@@ -7673,7 +7673,7 @@ STAGE PLANS:
                     includeColumns: [0, 1]
                     dataColumns: key:decimal(15,3)/DECIMAL_64, value:int
                     partitionColumnCount: 0
-                    scratchColumnTypeNames: [decimal(15,3), double, double, 
double, double]
+                    scratchColumnTypeNames: [decimal(15,3), double, 
decimal(15,3), double, decimal(15,3), double, double]
         Reducer 2 
             Execution mode: vectorized, llap
             Reduce Vectorization:
@@ -7710,8 +7710,8 @@ STAGE PLANS:
                   Select Vectorization:
                       className: VectorSelectOperator
                       native: true
-                      projectedOutputColumnNums: [0, 4, 9]
-                      selectExpressions: FuncPowerDoubleToDouble(col 
5:double)(children: DoubleColDivideLongColumn(col 4:double, col 
8:bigint)(children: DoubleColSubtractDoubleColumn(col 1:double, col 
5:double)(children: DoubleColDivideLongColumn(col 4:double, col 
3:bigint)(children: DoubleColMultiplyDoubleColumn(col 2:double, col 2:double) 
-> 4:double) -> 5:double) -> 4:double, IfExprNullCondExpr(col 6:boolean, null, 
col 7:bigint)(children: LongColEqualLongScalar(col 3:bigint, val 1) -> 
6:boolean, LongColSubtractLongScalar(col 3:bigint, val 1) -> 7:bigint) -> 
8:bigint) -> 5:double) -> 4:double, DoubleColDivideLongColumn(col 5:double, col 
11:bigint)(children: DoubleColSubtractDoubleColumn(col 1:double, col 
9:double)(children: DoubleColDivideLongColumn(col 5:double, col 
3:bigint)(children: DoubleColMultiplyDoubleColumn(col 2:double, col 2:double) 
-> 5:double) -> 9:double) -> 5:double, IfExprNullCondExpr(col 8:boolean, null, 
col 10:bigint)(children: LongColEqualLongScalar(col 3:bigint
 , val 1) -> 8:boolean, LongColSubtractLongScalar(col 3:bigint, val 1) -> 
10:bigint) -> 11:bigint) -> 9:double
+                      projectedOutputColumnNums: [0, 11, 18]
+                      selectExpressions: FuncPowerDoubleToDouble(col 
10:double)(children: DoubleColDivideLongColumn(col 6:double, col 
9:bigint)(children: DoubleColSubtractDoubleColumn(col 1:double, col 
5:double)(children: DoubleColDivideLongColumn(col 4:double, col 
3:bigint)(children: DoubleColMultiplyDoubleColumn(col 2:double, col 2:double) 
-> 4:double) -> 5:double) -> 6:double, IfExprNullCondExpr(col 7:boolean, null, 
col 8:bigint)(children: LongColEqualLongScalar(col 3:bigint, val 1) -> 
7:boolean, LongColSubtractLongScalar(col 3:bigint, val 1) -> 8:bigint) -> 
9:bigint) -> 10:double) -> 11:double, DoubleColDivideLongColumn(col 14:double, 
col 17:bigint)(children: DoubleColSubtractDoubleColumn(col 1:double, col 
13:double)(children: DoubleColDivideLongColumn(col 12:double, col 
3:bigint)(children: DoubleColMultiplyDoubleColumn(col 2:double, col 2:double) 
-> 12:double) -> 13:double) -> 14:double, IfExprNullCondExpr(col 15:boolean, 
null, col 16:bigint)(children: LongColEqualLongScalar(co
 l 3:bigint, val 1) -> 15:boolean, LongColSubtractLongScalar(col 3:bigint, val 
1) -> 16:bigint) -> 17:bigint) -> 18:double
                   Statistics: Num rows: 1 Data size: 116 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/llap/vector_elt.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/llap/vector_elt.q.out 
b/ql/src/test/results/clientpositive/llap/vector_elt.q.out
index 7f92815..9da99a6 100644
--- a/ql/src/test/results/clientpositive/llap/vector_elt.q.out
+++ b/ql/src/test/results/clientpositive/llap/vector_elt.q.out
@@ -44,8 +44,8 @@ STAGE PLANS:
                       Select Vectorization:
                           className: VectorSelectOperator
                           native: true
-                          projectedOutputColumnNums: [14, 6, 2, 17]
-                          selectExpressions: LongColAddLongScalar(col 13:int, 
val 1)(children: LongColModuloLongScalar(col 0:int, val 2)(children: col 
0:tinyint) -> 13:int) -> 14:int, VectorElt(columns [15, 6, 16])(children: 
LongColAddLongScalar(col 13:int, val 1)(children: LongColModuloLongScalar(col 
0:int, val 2)(children: col 0:tinyint) -> 13:int) -> 15:int, col 6:string, 
CastLongToString(col 2:int) -> 16:string) -> 17:string
+                          projectedOutputColumnNums: [14, 6, 2, 18]
+                          selectExpressions: LongColAddLongScalar(col 13:int, 
val 1)(children: LongColModuloLongScalar(col 0:int, val 2)(children: col 
0:tinyint) -> 13:int) -> 14:int, VectorElt(columns [16, 6, 17])(children: 
LongColAddLongScalar(col 15:int, val 1)(children: LongColModuloLongScalar(col 
0:int, val 2)(children: col 0:tinyint) -> 15:int) -> 16:int, col 6:string, 
CastLongToString(col 2:int) -> 17:string) -> 18:string
                       Statistics: Num rows: 4096 Data size: 1069830 Basic 
stats: COMPLETE Column stats: COMPLETE
                       Limit
                         Number of rows: 10

http://git-wip-us.apache.org/repos/asf/hive/blob/8b968c7e/ql/src/test/results/clientpositive/llap/vector_groupby_grouping_sets_grouping.q.out
----------------------------------------------------------------------
diff --git 
a/ql/src/test/results/clientpositive/llap/vector_groupby_grouping_sets_grouping.q.out
 
b/ql/src/test/results/clientpositive/llap/vector_groupby_grouping_sets_grouping.q.out
index ab860c3..ab33222 100644
--- 
a/ql/src/test/results/clientpositive/llap/vector_groupby_grouping_sets_grouping.q.out
+++ 
b/ql/src/test/results/clientpositive/llap/vector_groupby_grouping_sets_grouping.q.out
@@ -652,7 +652,7 @@ STAGE PLANS:
                   Filter Vectorization:
                       className: VectorFilterOperator
                       native: true
-                      predicateExpression: FilterExprOrExpr(children: 
FilterLongColEqualLongScalar(col 3:bigint, val 1)(children: GroupingColumn(col 
2, mask 2) -> 3:bigint), FilterLongColEqualLongScalar(col 3:bigint, val 
1)(children: GroupingColumn(col 2, mask 1) -> 3:bigint))
+                      predicateExpression: FilterExprOrExpr(children: 
FilterLongColEqualLongScalar(col 3:bigint, val 1)(children: GroupingColumn(col 
2, mask 2) -> 3:bigint), FilterLongColEqualLongScalar(col 4:bigint, val 
1)(children: GroupingColumn(col 2, mask 1) -> 4:bigint))
                   predicate: ((grouping(_col2, 0) = 1) or (grouping(_col2, 1) 
= 1)) (type: boolean)
                   Statistics: Num rows: 12 Data size: 96 Basic stats: COMPLETE 
Column stats: NONE
                   Select Operator
@@ -661,15 +661,15 @@ STAGE PLANS:
                     Select Vectorization:
                         className: VectorSelectOperator
                         native: true
-                        projectedOutputColumnNums: [0, 1, 5, 4]
-                        selectExpressions: LongColAddLongColumn(col 3:bigint, 
col 4:bigint)(children: GroupingColumn(col 2, mask 2) -> 3:bigint, 
GroupingColumn(col 2, mask 1) -> 4:bigint) -> 5:bigint, IfExprColumnNull(col 
3:boolean, col 0:int, null)(children: LongColEqualLongScalar(col 6:bigint, val 
1)(children: LongColAddLongColumn(col 3:bigint, col 4:bigint)(children: 
GroupingColumn(col 2, mask 2) -> 3:bigint, GroupingColumn(col 2, mask 1) -> 
4:bigint) -> 6:bigint) -> 3:boolean, col 0:int) -> 4:int
+                        projectedOutputColumnNums: [0, 1, 7, 12]
+                        selectExpressions: LongColAddLongColumn(col 5:bigint, 
col 6:bigint)(children: GroupingColumn(col 2, mask 2) -> 5:bigint, 
GroupingColumn(col 2, mask 1) -> 6:bigint) -> 7:bigint, IfExprColumnNull(col 
11:boolean, col 0:int, null)(children: LongColEqualLongScalar(col 10:bigint, 
val 1)(children: LongColAddLongColumn(col 8:bigint, col 9:bigint)(children: 
GroupingColumn(col 2, mask 2) -> 8:bigint, GroupingColumn(col 2, mask 1) -> 
9:bigint) -> 10:bigint) -> 11:boolean, col 0:int) -> 12:int
                     Statistics: Num rows: 12 Data size: 96 Basic stats: 
COMPLETE Column stats: NONE
                     Reduce Output Operator
                       key expressions: _col2 (type: bigint), _col3 (type: int)
                       sort order: -+
                       Reduce Sink Vectorization:
                           className: VectorReduceSinkObjectHashOperator
-                          keyColumns: 5:bigint, 4:int
+                          keyColumns: 7:bigint, 12:int
                           native: true
                           nativeConditionsMet: 
hive.vectorized.execution.reducesink.new.enabled IS true, hive.execution.engine 
tez IN [tez, spark] IS true, No PTF TopN IS true, No DISTINCT columns IS true, 
BinarySortableSerDe for keys IS true, LazyBinarySerDe for values IS true
                           valueColumns: 0:int, 1:int
@@ -1306,7 +1306,7 @@ STAGE PLANS:
                         Filter Vectorization:
                             className: VectorFilterOperator
                             native: true
-                            predicateExpression: FilterExprOrExpr(children: 
FilterLongColEqualLongScalar(col 3:bigint, val 1)(children: GroupingColumn(col 
2, mask 2) -> 3:bigint), FilterLongColEqualLongScalar(col 3:bigint, val 
1)(children: GroupingColumn(col 2, mask 1) -> 3:bigint))
+                            predicateExpression: FilterExprOrExpr(children: 
FilterLongColEqualLongScalar(col 3:bigint, val 1)(children: GroupingColumn(col 
2, mask 2) -> 3:bigint), FilterLongColEqualLongScalar(col 4:bigint, val 
1)(children: GroupingColumn(col 2, mask 1) -> 4:bigint))
                         predicate: ((grouping(_col2, 0L) = 1) or 
(grouping(_col2, 1L) = 1)) (type: boolean)
                         Statistics: Num rows: 24 Data size: 192 Basic stats: 
COMPLETE Column stats: NONE
                         Reduce Output Operator
@@ -1378,8 +1378,8 @@ STAGE PLANS:
                     sort order: -+
                     Reduce Sink Vectorization:
                         className: VectorReduceSinkObjectHashOperator
-                        keyColumns: 5:bigint, 4:int
-                        keyExpressions: IfExprColumnNull(col 3:boolean, col 
0:int, null)(children: LongColEqualLongScalar(col 5:bigint, val 1) -> 
3:boolean, col 0:int) -> 4:int
+                        keyColumns: 5:bigint, 7:int
+                        keyExpressions: IfExprColumnNull(col 6:boolean, col 
0:int, null)(children: LongColEqualLongScalar(col 5:bigint, val 1) -> 
6:boolean, col 0:int) -> 7:int
                         native: true
                         nativeConditionsMet: 
hive.vectorized.execution.reducesink.new.enabled IS true, hive.execution.engine 
tez IN [tez, spark] IS true, No PTF TopN IS true, No DISTINCT columns IS true, 
BinarySortableSerDe for keys IS true, LazyBinarySerDe for values IS true
                         valueColumns: 0:int, 1:int

http://git-wip-us.apache.org/repos/asf/hive/blob/8b968c7e/ql/src/test/results/clientpositive/llap/vector_groupby_reduce.q.out
----------------------------------------------------------------------
diff --git 
a/ql/src/test/results/clientpositive/llap/vector_groupby_reduce.q.out 
b/ql/src/test/results/clientpositive/llap/vector_groupby_reduce.q.out
index 3696cad..2c4ab14 100644
--- a/ql/src/test/results/clientpositive/llap/vector_groupby_reduce.q.out
+++ b/ql/src/test/results/clientpositive/llap/vector_groupby_reduce.q.out
@@ -896,8 +896,8 @@ STAGE PLANS:
                   Select Vectorization:
                       className: VectorSelectOperator
                       native: true
-                      projectedOutputColumnNums: [8, 1, 2, 10, 4, 9, 6, 12]
-                      selectExpressions: ConstantVectorExpression(val 1) -> 
8:int, DoubleColDivideLongColumn(col 9:double, col 3:bigint)(children: 
CastLongToDouble(col 2:bigint) -> 9:double) -> 10:double, 
DoubleColDivideLongColumn(col 4:double, col 5:bigint) -> 9:double, 
DecimalColDivideDecimalColumn(col 6:decimal(38,18), col 
11:decimal(19,0))(children: CastLongToDecimal(col 7:bigint) -> 
11:decimal(19,0)) -> 12:decimal(38,18)
+                      projectedOutputColumnNums: [8, 1, 2, 10, 4, 11, 6, 13]
+                      selectExpressions: ConstantVectorExpression(val 1) -> 
8:int, DoubleColDivideLongColumn(col 9:double, col 3:bigint)(children: 
CastLongToDouble(col 2:bigint) -> 9:double) -> 10:double, 
DoubleColDivideLongColumn(col 4:double, col 5:bigint) -> 11:double, 
DecimalColDivideDecimalColumn(col 6:decimal(38,18), col 
12:decimal(19,0))(children: CastLongToDecimal(col 7:bigint) -> 
12:decimal(19,0)) -> 13:decimal(38,18)
                   Statistics: Num rows: 1 Data size: 268 Basic stats: COMPLETE 
Column stats: COMPLETE
                   File Output Operator
                     compressed: false
@@ -1091,8 +1091,8 @@ STAGE PLANS:
                       Select Vectorization:
                           className: VectorSelectOperator
                           native: true
-                          projectedOutputColumnNums: [0, 1, 2, 9, 4, 8, 6, 11]
-                          selectExpressions: DoubleColDivideLongColumn(col 
8:double, col 3:bigint)(children: CastLongToDouble(col 2:bigint) -> 8:double) 
-> 9:double, DoubleColDivideLongColumn(col 4:double, col 5:bigint) -> 8:double, 
DecimalColDivideDecimalColumn(col 6:decimal(38,18), col 
10:decimal(19,0))(children: CastLongToDecimal(col 7:bigint) -> 
10:decimal(19,0)) -> 11:decimal(38,18)
+                          projectedOutputColumnNums: [0, 1, 2, 9, 4, 10, 6, 12]
+                          selectExpressions: DoubleColDivideLongColumn(col 
8:double, col 3:bigint)(children: CastLongToDouble(col 2:bigint) -> 8:double) 
-> 9:double, DoubleColDivideLongColumn(col 4:double, col 5:bigint) -> 
10:double, DecimalColDivideDecimalColumn(col 6:decimal(38,18), col 
11:decimal(19,0))(children: CastLongToDecimal(col 7:bigint) -> 
11:decimal(19,0)) -> 12:decimal(38,18)
                       Statistics: Num rows: 500 Data size: 132000 Basic stats: 
COMPLETE Column stats: COMPLETE
                       Reduce Output Operator
                         key expressions: _col0 (type: int), _col1 (type: int)

http://git-wip-us.apache.org/repos/asf/hive/blob/8b968c7e/ql/src/test/results/clientpositive/llap/vector_interval_1.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/llap/vector_interval_1.q.out 
b/ql/src/test/results/clientpositive/llap/vector_interval_1.q.out
index 9f429d5..e83ed5d 100644
--- a/ql/src/test/results/clientpositive/llap/vector_interval_1.q.out
+++ b/ql/src/test/results/clientpositive/llap/vector_interval_1.q.out
@@ -232,8 +232,8 @@ STAGE PLANS:
                     Select Vectorization:
                         className: VectorSelectOperator
                         native: true
-                        projectedOutputColumnNums: [1, 7, 6, 9, 8]
-                        selectExpressions: 
IntervalYearMonthColAddIntervalYearMonthColumn(col 5:interval_year_month, col 
6:interval_year_month)(children: CastStringToIntervalYearMonth(col 2:string) -> 
5:interval_year_month, CastStringToIntervalYearMonth(col 2:string) -> 
6:interval_year_month) -> 7:interval_year_month, 
IntervalYearMonthScalarAddIntervalYearMonthColumn(val 14, col 
5:interval_year_month)(children: CastStringToIntervalYearMonth(col 2:string) -> 
5:interval_year_month) -> 6:interval_year_month, 
IntervalYearMonthColSubtractIntervalYearMonthColumn(col 5:interval_year_month, 
col 8:interval_year_month)(children: CastStringToIntervalYearMonth(col 
2:string) -> 5:interval_year_month, CastStringToIntervalYearMonth(col 2:string) 
-> 8:interval_year_month) -> 9:interval_year_month, 
IntervalYearMonthScalarSubtractIntervalYearMonthColumn(val 14, col 
5:interval_year_month)(children: CastStringToIntervalYearMonth(col 2:string) -> 
5:interval_year_month) -> 8:interval_year_month
+                        projectedOutputColumnNums: [1, 7, 9, 12, 14]
+                        selectExpressions: 
IntervalYearMonthColAddIntervalYearMonthColumn(col 5:interval_year_month, col 
6:interval_year_month)(children: CastStringToIntervalYearMonth(col 2:string) -> 
5:interval_year_month, CastStringToIntervalYearMonth(col 2:string) -> 
6:interval_year_month) -> 7:interval_year_month, 
IntervalYearMonthScalarAddIntervalYearMonthColumn(val 14, col 
8:interval_year_month)(children: CastStringToIntervalYearMonth(col 2:string) -> 
8:interval_year_month) -> 9:interval_year_month, 
IntervalYearMonthColSubtractIntervalYearMonthColumn(col 10:interval_year_month, 
col 11:interval_year_month)(children: CastStringToIntervalYearMonth(col 
2:string) -> 10:interval_year_month, CastStringToIntervalYearMonth(col 
2:string) -> 11:interval_year_month) -> 12:interval_year_month, 
IntervalYearMonthScalarSubtractIntervalYearMonthColumn(val 14, col 
13:interval_year_month)(children: CastStringToIntervalYearMonth(col 2:string) 
-> 13:interval_year_month) -> 14:interval_year_month
                     Statistics: Num rows: 2 Data size: 176 Basic stats: 
COMPLETE Column stats: COMPLETE
                     Reduce Output Operator
                       key expressions: _col0 (type: date)
@@ -373,8 +373,8 @@ STAGE PLANS:
                     Select Vectorization:
                         className: VectorSelectOperator
                         native: true
-                        projectedOutputColumnNums: [1, 7, 6, 9, 8]
-                        selectExpressions: 
IntervalDayTimeColAddIntervalDayTimeColumn(col 5:interval_day_time, col 
6:interval_day_time)(children: CastStringToIntervalDayTime(col 3:string) -> 
5:interval_day_time, CastStringToIntervalDayTime(col 3:string) -> 
6:interval_day_time) -> 7:interval_day_time, 
IntervalDayTimeScalarAddIntervalDayTimeColumn(val 1 02:03:04.000000000, col 
5:interval_day_time)(children: CastStringToIntervalDayTime(col 3:string) -> 
5:interval_day_time) -> 6:interval_day_time, 
IntervalDayTimeColSubtractIntervalDayTimeColumn(col 5:interval_day_time, col 
8:interval_day_time)(children: CastStringToIntervalDayTime(col 3:string) -> 
5:interval_day_time, CastStringToIntervalDayTime(col 3:string) -> 
8:interval_day_time) -> 9:interval_day_time, 
IntervalDayTimeScalarSubtractIntervalDayTimeColumn(val 1 02:03:04.000000000, 
col 5:interval_day_time)(children: CastStringToIntervalDayTime(col 3:string) -> 
5:interval_day_time) -> 8:interval_day_time
+                        projectedOutputColumnNums: [1, 7, 9, 12, 14]
+                        selectExpressions: 
IntervalDayTimeColAddIntervalDayTimeColumn(col 5:interval_day_time, col 
6:interval_day_time)(children: CastStringToIntervalDayTime(col 3:string) -> 
5:interval_day_time, CastStringToIntervalDayTime(col 3:string) -> 
6:interval_day_time) -> 7:interval_day_time, 
IntervalDayTimeScalarAddIntervalDayTimeColumn(val 1 02:03:04.000000000, col 
8:interval_day_time)(children: CastStringToIntervalDayTime(col 3:string) -> 
8:interval_day_time) -> 9:interval_day_time, 
IntervalDayTimeColSubtractIntervalDayTimeColumn(col 10:interval_day_time, col 
11:interval_day_time)(children: CastStringToIntervalDayTime(col 3:string) -> 
10:interval_day_time, CastStringToIntervalDayTime(col 3:string) -> 
11:interval_day_time) -> 12:interval_day_time, 
IntervalDayTimeScalarSubtractIntervalDayTimeColumn(val 1 02:03:04.000000000, 
col 13:interval_day_time)(children: CastStringToIntervalDayTime(col 3:string) 
-> 13:interval_day_time) -> 14:interval_day_time
                     Statistics: Num rows: 2 Data size: 208 Basic stats: 
COMPLETE Column stats: COMPLETE
                     Reduce Output Operator
                       key expressions: _col0 (type: date)
@@ -526,8 +526,8 @@ STAGE PLANS:
                     Select Vectorization:
                         className: VectorSelectOperator
                         native: true
-                        projectedOutputColumnNums: [1, 5, 7, 6, 9, 8, 11, 12, 
14, 15, 16, 17, 18]
-                        selectExpressions: 
DateColAddIntervalYearMonthScalar(col 1:date, val 1-2) -> 5:date, 
DateColAddIntervalYearMonthColumn(col 1:date, col 
6:interval_year_month)(children: CastStringToIntervalYearMonth(col 2:string) -> 
6:interval_year_month) -> 7:date, IntervalYearMonthScalarAddDateColumn(val 1-2, 
col 1:interval_year_month) -> 6:date, IntervalYearMonthColAddDateColumn(col 
8:interval_year_month, col 1:date)(children: CastStringToIntervalYearMonth(col 
2:string) -> 8:interval_year_month) -> 9:date, 
DateColSubtractIntervalYearMonthScalar(col 1:date, val 1-2) -> 8:date, 
DateColSubtractIntervalYearMonthColumn(col 1:date, col 
10:interval_year_month)(children: CastStringToIntervalYearMonth(col 2:string) 
-> 10:interval_year_month) -> 11:date, DateColAddIntervalDayTimeScalar(col 
1:date, val 1 02:03:04.000000000) -> 12:timestamp, 
DateColAddIntervalDayTimeColumn(col 1:date, col 13:interval_day_time)(children: 
CastStringToIntervalDayTime(col 3:string) -> 13:interval_day_time)
  -> 14:timestamp, IntervalDayTimeScalarAddDateColumn(val 1 02:03:04.000000000, 
col 1:date) -> 15:timestamp, IntervalDayTimeColAddDateColumn(col 
13:interval_day_time, col 1:date)(children: CastStringToIntervalDayTime(col 
3:string) -> 13:interval_day_time) -> 16:timestamp, 
DateColSubtractIntervalDayTimeScalar(col 1:date, val 1 02:03:04.000000000) -> 
17:timestamp, DateColSubtractIntervalDayTimeColumn(col 1:date, col 
13:interval_day_time)(children: CastStringToIntervalDayTime(col 3:string) -> 
13:interval_day_time) -> 18:timestamp
+                        projectedOutputColumnNums: [1, 5, 7, 8, 10, 11, 13, 
14, 16, 17, 19, 20, 22]
+                        selectExpressions: 
DateColAddIntervalYearMonthScalar(col 1:date, val 1-2) -> 5:date, 
DateColAddIntervalYearMonthColumn(col 1:date, col 
6:interval_year_month)(children: CastStringToIntervalYearMonth(col 2:string) -> 
6:interval_year_month) -> 7:date, IntervalYearMonthScalarAddDateColumn(val 1-2, 
col 1:interval_year_month) -> 8:date, IntervalYearMonthColAddDateColumn(col 
9:interval_year_month, col 1:date)(children: CastStringToIntervalYearMonth(col 
2:string) -> 9:interval_year_month) -> 10:date, 
DateColSubtractIntervalYearMonthScalar(col 1:date, val 1-2) -> 11:date, 
DateColSubtractIntervalYearMonthColumn(col 1:date, col 
12:interval_year_month)(children: CastStringToIntervalYearMonth(col 2:string) 
-> 12:interval_year_month) -> 13:date, DateColAddIntervalDayTimeScalar(col 
1:date, val 1 02:03:04.000000000) -> 14:timestamp, 
DateColAddIntervalDayTimeColumn(col 1:date, col 15:interval_day_time)(children: 
CastStringToIntervalDayTime(col 3:string) -> 15:interval_day_tim
 e) -> 16:timestamp, IntervalDayTimeScalarAddDateColumn(val 1 
02:03:04.000000000, col 1:date) -> 17:timestamp, 
IntervalDayTimeColAddDateColumn(col 18:interval_day_time, col 1:date)(children: 
CastStringToIntervalDayTime(col 3:string) -> 18:interval_day_time) -> 
19:timestamp, DateColSubtractIntervalDayTimeScalar(col 1:date, val 1 
02:03:04.000000000) -> 20:timestamp, DateColSubtractIntervalDayTimeColumn(col 
1:date, col 21:interval_day_time)(children: CastStringToIntervalDayTime(col 
3:string) -> 21:interval_day_time) -> 22:timestamp
                     Statistics: Num rows: 2 Data size: 1264 Basic stats: 
COMPLETE Column stats: COMPLETE
                     Reduce Output Operator
                       key expressions: _col0 (type: date)
@@ -690,8 +690,8 @@ STAGE PLANS:
                     Select Vectorization:
                         className: VectorSelectOperator
                         native: true
-                        projectedOutputColumnNums: [0, 5, 7, 8, 9, 10, 11, 12, 
14, 15, 16, 17, 18]
-                        selectExpressions: 
TimestampColAddIntervalYearMonthScalar(col 0:timestamp, val 1-2) -> 
5:timestamp, TimestampColAddIntervalYearMonthColumn(col 0:timestamp, col 
6:interval_year_month)(children: CastStringToIntervalYearMonth(col 2:string) -> 
6:interval_year_month) -> 7:timestamp, 
IntervalYearMonthScalarAddTimestampColumn(val 1-2, col 0:interval_year_month) 
-> 8:timestamp, IntervalYearMonthColAddTimestampColumn(col 
6:interval_year_month, col 0:timestamp)(children: 
CastStringToIntervalYearMonth(col 2:string) -> 6:interval_year_month) -> 
9:timestamp, TimestampColSubtractIntervalYearMonthScalar(col 0:timestamp, val 
1-2) -> 10:timestamp, TimestampColSubtractIntervalYearMonthColumn(col 
0:timestamp, col 6:interval_year_month)(children: 
CastStringToIntervalYearMonth(col 2:string) -> 6:interval_year_month) -> 
11:timestamp, TimestampColAddIntervalDayTimeScalar(col 0:timestamp, val 1 
02:03:04.000000000) -> 12:timestamp, TimestampColAddIntervalDayTimeColumn(col 
0:timestamp
 , col 13:interval_day_time)(children: CastStringToIntervalDayTime(col 
3:string) -> 13:interval_day_time) -> 14:timestamp, 
IntervalDayTimeScalarAddTimestampColumn(val 1 02:03:04.000000000, col 
0:timestamp) -> 15:timestamp, IntervalDayTimeColAddTimestampColumn(col 
13:interval_day_time, col 0:timestamp)(children: 
CastStringToIntervalDayTime(col 3:string) -> 13:interval_day_time) -> 
16:timestamp, TimestampColSubtractIntervalDayTimeScalar(col 0:timestamp, val 1 
02:03:04.000000000) -> 17:timestamp, 
TimestampColSubtractIntervalDayTimeColumn(col 0:timestamp, col 
13:interval_day_time)(children: CastStringToIntervalDayTime(col 3:string) -> 
13:interval_day_time) -> 18:timestamp
+                        projectedOutputColumnNums: [0, 5, 7, 8, 10, 11, 13, 
14, 16, 17, 19, 20, 22]
+                        selectExpressions: 
TimestampColAddIntervalYearMonthScalar(col 0:timestamp, val 1-2) -> 
5:timestamp, TimestampColAddIntervalYearMonthColumn(col 0:timestamp, col 
6:interval_year_month)(children: CastStringToIntervalYearMonth(col 2:string) -> 
6:interval_year_month) -> 7:timestamp, 
IntervalYearMonthScalarAddTimestampColumn(val 1-2, col 0:interval_year_month) 
-> 8:timestamp, IntervalYearMonthColAddTimestampColumn(col 
9:interval_year_month, col 0:timestamp)(children: 
CastStringToIntervalYearMonth(col 2:string) -> 9:interval_year_month) -> 
10:timestamp, TimestampColSubtractIntervalYearMonthScalar(col 0:timestamp, val 
1-2) -> 11:timestamp, TimestampColSubtractIntervalYearMonthColumn(col 
0:timestamp, col 12:interval_year_month)(children: 
CastStringToIntervalYearMonth(col 2:string) -> 12:interval_year_month) -> 
13:timestamp, TimestampColAddIntervalDayTimeScalar(col 0:timestamp, val 1 
02:03:04.000000000) -> 14:timestamp, TimestampColAddIntervalDayTimeColumn(col 
0:timest
 amp, col 15:interval_day_time)(children: CastStringToIntervalDayTime(col 
3:string) -> 15:interval_day_time) -> 16:timestamp, 
IntervalDayTimeScalarAddTimestampColumn(val 1 02:03:04.000000000, col 
0:timestamp) -> 17:timestamp, IntervalDayTimeColAddTimestampColumn(col 
18:interval_day_time, col 0:timestamp)(children: 
CastStringToIntervalDayTime(col 3:string) -> 18:interval_day_time) -> 
19:timestamp, TimestampColSubtractIntervalDayTimeScalar(col 0:timestamp, val 1 
02:03:04.000000000) -> 20:timestamp, 
TimestampColSubtractIntervalDayTimeColumn(col 0:timestamp, col 
21:interval_day_time)(children: CastStringToIntervalDayTime(col 3:string) -> 
21:interval_day_time) -> 22:timestamp
                     Statistics: Num rows: 2 Data size: 1040 Basic stats: 
COMPLETE Column stats: COMPLETE
                     Reduce Output Operator
                       key expressions: _col0 (type: timestamp)

Reply via email to