You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by jc...@apache.org on 2018/08/16 04:51:09 UTC

[1/8] hive git commit: HIVE-20391: HiveAggregateReduceFunctionsRule may infer wrong return type when decomposing aggregate function (Jesus Camacho Rodriguez, reviewed by Ashutosh Chauhan)

Repository: hive
Updated Branches:
  refs/heads/master 142367d96 -> 649d7c12b


http://git-wip-us.apache.org/repos/asf/hive/blob/649d7c12/ql/src/test/results/clientpositive/spark/vectorized_mapjoin.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/vectorized_mapjoin.q.out b/ql/src/test/results/clientpositive/spark/vectorized_mapjoin.q.out
index 39012a1..131f692 100644
--- a/ql/src/test/results/clientpositive/spark/vectorized_mapjoin.q.out
+++ b/ql/src/test/results/clientpositive/spark/vectorized_mapjoin.q.out
@@ -169,13 +169,13 @@ STAGE PLANS:
                 outputColumnNames: _col0, _col1, _col2, _col3, _col4
                 Statistics: Num rows: 1 Data size: 32 Basic stats: COMPLETE Column stats: NONE
                 Select Operator
-                  expressions: _col0 (type: bigint), _col1 (type: int), _col2 (type: int), (_col3 / _col4) (type: double)
+                  expressions: _col0 (type: bigint), _col1 (type: int), _col2 (type: int), (UDFToDouble(_col3) / _col4) (type: double)
                   outputColumnNames: _col0, _col1, _col2, _col3
                   Select Vectorization:
                       className: VectorSelectOperator
                       native: true
-                      projectedOutputColumnNums: [0, 1, 2, 5]
-                      selectExpressions: LongColDivideLongColumn(col 3:bigint, col 4:bigint) -> 5:double
+                      projectedOutputColumnNums: [0, 1, 2, 6]
+                      selectExpressions: DoubleColDivideLongColumn(col 5:double, col 4:bigint)(children: CastLongToDouble(col 3:bigint) -> 5:double) -> 6:double
                   Statistics: Num rows: 1 Data size: 32 Basic stats: COMPLETE Column stats: NONE
                   File Output Operator
                     compressed: false

http://git-wip-us.apache.org/repos/asf/hive/blob/649d7c12/ql/src/test/results/clientpositive/spark/vectorized_shufflejoin.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/vectorized_shufflejoin.q.out b/ql/src/test/results/clientpositive/spark/vectorized_shufflejoin.q.out
index 82c1e3f..82ef155 100644
--- a/ql/src/test/results/clientpositive/spark/vectorized_shufflejoin.q.out
+++ b/ql/src/test/results/clientpositive/spark/vectorized_shufflejoin.q.out
@@ -157,13 +157,13 @@ STAGE PLANS:
                 outputColumnNames: _col0, _col1, _col2, _col3, _col4
                 Statistics: Num rows: 1 Data size: 32 Basic stats: COMPLETE Column stats: NONE
                 Select Operator
-                  expressions: _col0 (type: bigint), _col1 (type: int), _col2 (type: int), (_col3 / _col4) (type: double)
+                  expressions: _col0 (type: bigint), _col1 (type: int), _col2 (type: int), (UDFToDouble(_col3) / _col4) (type: double)
                   outputColumnNames: _col0, _col1, _col2, _col3
                   Select Vectorization:
                       className: VectorSelectOperator
                       native: true
-                      projectedOutputColumnNums: [0, 1, 2, 5]
-                      selectExpressions: LongColDivideLongColumn(col 3:bigint, col 4:bigint) -> 5:double
+                      projectedOutputColumnNums: [0, 1, 2, 6]
+                      selectExpressions: DoubleColDivideLongColumn(col 5:double, col 4:bigint)(children: CastLongToDouble(col 3:bigint) -> 5:double) -> 6:double
                   Statistics: Num rows: 1 Data size: 32 Basic stats: COMPLETE Column stats: NONE
                   Reduce Output Operator
                     key expressions: _col0 (type: bigint)

http://git-wip-us.apache.org/repos/asf/hive/blob/649d7c12/ql/src/test/results/clientpositive/union_remove_6_subq.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/union_remove_6_subq.q.out b/ql/src/test/results/clientpositive/union_remove_6_subq.q.out
index 6fdc7aa..daf05f2 100644
--- a/ql/src/test/results/clientpositive/union_remove_6_subq.q.out
+++ b/ql/src/test/results/clientpositive/union_remove_6_subq.q.out
@@ -352,7 +352,7 @@ STAGE PLANS:
           outputColumnNames: _col0, _col1
           Statistics: Num rows: 1 Data size: 16 Basic stats: COMPLETE Column stats: COMPLETE
           Select Operator
-            expressions: (_col0 / _col1) (type: double)
+            expressions: (UDFToDouble(_col0) / _col1) (type: double)
             outputColumnNames: _col0
             Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
             File Output Operator

http://git-wip-us.apache.org/repos/asf/hive/blob/649d7c12/ql/src/test/results/clientpositive/vector_cast_constant.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/vector_cast_constant.q.out b/ql/src/test/results/clientpositive/vector_cast_constant.q.out
index 8c596a6..68a1aea 100644
--- a/ql/src/test/results/clientpositive/vector_cast_constant.q.out
+++ b/ql/src/test/results/clientpositive/vector_cast_constant.q.out
@@ -183,7 +183,7 @@ STAGE PLANS:
           outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6
           Statistics: Num rows: 524 Data size: 155436 Basic stats: COMPLETE Column stats: NONE
           Select Operator
-            expressions: _col0 (type: int), (_col1 / _col2) (type: double), (_col3 / _col4) (type: double), CAST( (_col5 / _col6) AS decimal(6,4)) (type: decimal(6,4))
+            expressions: _col0 (type: int), (UDFToDouble(_col1) / _col2) (type: double), (_col3 / _col4) (type: double), CAST( (_col5 / _col6) AS decimal(6,4)) (type: decimal(6,4))
             outputColumnNames: _col0, _col1, _col2, _col3
             Statistics: Num rows: 524 Data size: 155436 Basic stats: COMPLETE Column stats: NONE
             File Output Operator

http://git-wip-us.apache.org/repos/asf/hive/blob/649d7c12/ql/src/test/results/clientpositive/vectorization_2.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/vectorization_2.q.out b/ql/src/test/results/clientpositive/vectorization_2.q.out
index fd5f619..fdf9d3b 100644
--- a/ql/src/test/results/clientpositive/vectorization_2.q.out
+++ b/ql/src/test/results/clientpositive/vectorization_2.q.out
@@ -127,7 +127,7 @@ STAGE PLANS:
           outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9
           Statistics: Num rows: 1 Data size: 76 Basic stats: COMPLETE Column stats: NONE
           Select Operator
-            expressions: (_col0 / _col1) (type: double), ((_col0 / _col1) % -563.0D) (type: double), ((_col0 / _col1) + 762.0D) (type: double), _col2 (type: double), ((_col3 - ((_col4 * _col4) / _col5)) / _col5) (type: double), (- ((_col3 - ((_col4 * _col4) / _col5)) / _col5)) (type: double), (_col2 - (_col0 / _col1)) (type: double), _col6 (type: bigint), (- (_col2 - (_col0 / _col1))) (type: double), (((_col3 - ((_col4 * _col4) / _col5)) / _col5) - 762.0D) (type: double), _col7 (type: tinyint), ((- ((_col3 - ((_col4 * _col4) / _col5)) / _col5)) + UDFToDouble(_col7)) (type: double), (_col8 / _col9) (type: double), (((- ((_col3 - ((_col4 * _col4) / _col5)) / _col5)) + UDFToDouble(_col7)) - _col2) (type: double)
+            expressions: (UDFToDouble(_col0) / _col1) (type: double), ((UDFToDouble(_col0) / _col1) % -563.0D) (type: double), ((UDFToDouble(_col0) / _col1) + 762.0D) (type: double), _col2 (type: double), ((_col3 - ((_col4 * _col4) / _col5)) / _col5) (type: double), (- ((_col3 - ((_col4 * _col4) / _col5)) / _col5)) (type: double), (_col2 - (UDFToDouble(_col0) / _col1)) (type: double), _col6 (type: bigint), (- (_col2 - (UDFToDouble(_col0) / _col1))) (type: double), (((_col3 - ((_col4 * _col4) / _col5)) / _col5) - 762.0D) (type: double), _col7 (type: tinyint), ((- ((_col3 - ((_col4 * _col4) / _col5)) / _col5)) + UDFToDouble(_col7)) (type: double), (_col8 / _col9) (type: double), (((- ((_col3 - ((_col4 * _col4) / _col5)) / _col5)) + UDFToDouble(_col7)) - _col2) (type: double)
             outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13
             Statistics: Num rows: 1 Data size: 76 Basic stats: COMPLETE Column stats: NONE
             File Output Operator

http://git-wip-us.apache.org/repos/asf/hive/blob/649d7c12/ql/src/test/results/clientpositive/vectorization_3.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/vectorization_3.q.out b/ql/src/test/results/clientpositive/vectorization_3.q.out
index 60ab282..db7d7ba 100644
--- a/ql/src/test/results/clientpositive/vectorization_3.q.out
+++ b/ql/src/test/results/clientpositive/vectorization_3.q.out
@@ -132,7 +132,7 @@ STAGE PLANS:
           outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13
           Statistics: Num rows: 1 Data size: 112 Basic stats: COMPLETE Column stats: NONE
           Select Operator
-            expressions: power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) (type: double), (power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) - 10.175D) (type: double), power(((_col3 - ((_col4 * _col4) / _col5)) / _col5), 0.5) (type: double), (power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) * (power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) - 10.175D)) (type: double), (- power(((_col3 - ((_col4 * _col4) / _col5)) / _col5), 0.5)) (type: double), (power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) % 79.553D) (type: double), (- (power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) * (power(((_col0 - ((_col1 * _col1) / _c
 ol2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) - 10.175D))) (type: double), power(((_col6 - ((_col7 * _col7) / _col8)) / CASE WHEN ((_col8 = 1L)) THEN (null) ELSE ((_col8 - 1)) END), 0.5) (type: double), (- power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5)) (type: double), _col9 (type: double), ((- (power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) * (power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) - 10.175D))) / (power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) - 10.175D)) (type: double), (- (power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) - 10.175D)) (type: double), (_col10 / _col11) (type: double), (-3728.0D - power(((_col0 - ((_col1 * _col1) 
 / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5)) (type: double), power(((_col12 - ((_col13 * _col13) / _col11)) / _col11), 0.5) (type: double), ((_col10 / _col11) / power(((_col6 - ((_col7 * _col7) / _col8)) / CASE WHEN ((_col8 = 1L)) THEN (null) ELSE ((_col8 - 1)) END), 0.5)) (type: double)
+            expressions: power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) (type: double), (power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) - 10.175D) (type: double), power(((_col3 - ((_col4 * _col4) / _col5)) / _col5), 0.5) (type: double), (power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) * (power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) - 10.175D)) (type: double), (- power(((_col3 - ((_col4 * _col4) / _col5)) / _col5), 0.5)) (type: double), (power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) % 79.553D) (type: double), (- (power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) * (power(((_col0 - ((_col1 * _col1) / _c
 ol2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) - 10.175D))) (type: double), power(((_col6 - ((_col7 * _col7) / _col8)) / CASE WHEN ((_col8 = 1L)) THEN (null) ELSE ((_col8 - 1)) END), 0.5) (type: double), (- power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5)) (type: double), _col9 (type: double), ((- (power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) * (power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) - 10.175D))) / (power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) - 10.175D)) (type: double), (- (power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) - 10.175D)) (type: double), (UDFToDouble(_col10) / _col11) (type: double), (-3728.0D - power(((_col0 - ((_c
 ol1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5)) (type: double), power(((_col12 - ((_col13 * _col13) / _col11)) / _col11), 0.5) (type: double), ((UDFToDouble(_col10) / _col11) / power(((_col6 - ((_col7 * _col7) / _col8)) / CASE WHEN ((_col8 = 1L)) THEN (null) ELSE ((_col8 - 1)) END), 0.5)) (type: double)
             outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13, _col14, _col15
             Statistics: Num rows: 1 Data size: 112 Basic stats: COMPLETE Column stats: NONE
             File Output Operator

http://git-wip-us.apache.org/repos/asf/hive/blob/649d7c12/ql/src/test/results/clientpositive/vectorization_pushdown.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/vectorization_pushdown.q.out b/ql/src/test/results/clientpositive/vectorization_pushdown.q.out
index e962362..9e85a26 100644
--- a/ql/src/test/results/clientpositive/vectorization_pushdown.q.out
+++ b/ql/src/test/results/clientpositive/vectorization_pushdown.q.out
@@ -56,7 +56,7 @@ STAGE PLANS:
           outputColumnNames: _col0, _col1
           Statistics: Num rows: 1 Data size: 16 Basic stats: COMPLETE Column stats: NONE
           Select Operator
-            expressions: (_col0 / _col1) (type: double)
+            expressions: (UDFToDouble(_col0) / _col1) (type: double)
             outputColumnNames: _col0
             Statistics: Num rows: 1 Data size: 16 Basic stats: COMPLETE Column stats: NONE
             File Output Operator

http://git-wip-us.apache.org/repos/asf/hive/blob/649d7c12/ql/src/test/results/clientpositive/vectorized_mapjoin.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/vectorized_mapjoin.q.out b/ql/src/test/results/clientpositive/vectorized_mapjoin.q.out
index 8ecc8c3..e9429a8 100644
--- a/ql/src/test/results/clientpositive/vectorized_mapjoin.q.out
+++ b/ql/src/test/results/clientpositive/vectorized_mapjoin.q.out
@@ -132,7 +132,7 @@ STAGE PLANS:
           outputColumnNames: _col0, _col1, _col2, _col3, _col4
           Statistics: Num rows: 1 Data size: 32 Basic stats: COMPLETE Column stats: NONE
           Select Operator
-            expressions: _col0 (type: bigint), _col1 (type: int), _col2 (type: int), (_col3 / _col4) (type: double)
+            expressions: _col0 (type: bigint), _col1 (type: int), _col2 (type: int), (UDFToDouble(_col3) / _col4) (type: double)
             outputColumnNames: _col0, _col1, _col2, _col3
             Statistics: Num rows: 1 Data size: 32 Basic stats: COMPLETE Column stats: NONE
             File Output Operator

http://git-wip-us.apache.org/repos/asf/hive/blob/649d7c12/ql/src/test/results/clientpositive/vectorized_shufflejoin.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/vectorized_shufflejoin.q.out b/ql/src/test/results/clientpositive/vectorized_shufflejoin.q.out
index 887f6b0..59aed71 100644
--- a/ql/src/test/results/clientpositive/vectorized_shufflejoin.q.out
+++ b/ql/src/test/results/clientpositive/vectorized_shufflejoin.q.out
@@ -120,7 +120,7 @@ STAGE PLANS:
           outputColumnNames: _col0, _col1, _col2, _col3, _col4
           Statistics: Num rows: 1 Data size: 32 Basic stats: COMPLETE Column stats: NONE
           Select Operator
-            expressions: _col0 (type: bigint), _col1 (type: int), _col2 (type: int), (_col3 / _col4) (type: double)
+            expressions: _col0 (type: bigint), _col1 (type: int), _col2 (type: int), (UDFToDouble(_col3) / _col4) (type: double)
             outputColumnNames: _col0, _col1, _col2, _col3
             Statistics: Num rows: 1 Data size: 32 Basic stats: COMPLETE Column stats: NONE
             File Output Operator


[6/8] hive git commit: HIVE-20391: HiveAggregateReduceFunctionsRule may infer wrong return type when decomposing aggregate function (Jesus Camacho Rodriguez, reviewed by Ashutosh Chauhan)

Posted by jc...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/649d7c12/ql/src/test/results/clientpositive/llap/vectorization_short_regress.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/llap/vectorization_short_regress.q.out b/ql/src/test/results/clientpositive/llap/vectorization_short_regress.q.out
index f5bf886..2c54b1d 100644
--- a/ql/src/test/results/clientpositive/llap/vectorization_short_regress.q.out
+++ b/ql/src/test/results/clientpositive/llap/vectorization_short_regress.q.out
@@ -165,13 +165,13 @@ STAGE PLANS:
                 outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10
                 Statistics: Num rows: 1 Data size: 84 Basic stats: COMPLETE Column stats: COMPLETE
                 Select Operator
-                  expressions: (_col0 / _col1) (type: double), ((_col0 / _col1) + -3728.0D) (type: double), (- ((_col0 / _col1) + -3728.0D)) (type: double), (- (- ((_col0 / _col1) + -3728.0D))) (type: double), ((- (- ((_col0 / _col1) + -3728.0D))) * ((_col0 / _col1) + -3728.0D)) (type: double), _col2 (type: double), (- (_col0 / _col1)) (type: double), power(((_col3 - ((_col4 * _col4) / _col1)) / _col1), 0.5) (type: double), (((- (- ((_col0 / _col1) + -3728.0D))) * ((_col0 / _col1) + -3728.0D)) * (- (- ((_col0 / _col1) + -3728.0D)))) (type: double), power(((_col5 - ((_col6 * _col6) / _col7)) / CASE WHEN ((_col7 = 1L)) THEN (null) ELSE ((_col7 - 1)) END), 0.5) (type: double), (- power(((_col3 - ((_col4 * _col4) / _col1)) / _col1), 0.5)) (type: double), (power(((_col3 - ((_col4 * _col4) / _col1)) / _col1), 0.5) - (- (- ((_col0 / _col1) + -3728.0D)))) (type: double), ((power(((_col3 - ((_col4 * _col4) / _col1)) / _col1), 0.5) - (- (- ((_col0 / _col1) + -3728.0D)))) * power(((_col3 - ((_
 col4 * _col4) / _col1)) / _col1), 0.5)) (type: double), ((_col3 - ((_col4 * _col4) / _col1)) / CASE WHEN ((_col1 = 1L)) THEN (null) ELSE ((_col1 - 1)) END) (type: double), (_col8 / _col9) (type: double), (10.175D - ((_col3 - ((_col4 * _col4) / _col1)) / CASE WHEN ((_col1 = 1L)) THEN (null) ELSE ((_col1 - 1)) END)) (type: double), (- (10.175D - ((_col3 - ((_col4 * _col4) / _col1)) / CASE WHEN ((_col1 = 1L)) THEN (null) ELSE ((_col1 - 1)) END))) (type: double), ((- power(((_col3 - ((_col4 * _col4) / _col1)) / _col1), 0.5)) / -563.0D) (type: double), power(((_col3 - ((_col4 * _col4) / _col1)) / CASE WHEN ((_col1 = 1L)) THEN (null) ELSE ((_col1 - 1)) END), 0.5) (type: double), (- ((- power(((_col3 - ((_col4 * _col4) / _col1)) / _col1), 0.5)) / -563.0D)) (type: double), ((_col0 / _col1) / _col2) (type: double), _col10 (type: tinyint), _col7 (type: bigint), (UDFToDouble(_col10) / ((- power(((_col3 - ((_col4 * _col4) / _col1)) / _col1), 0.5)) / -563.0D)) (type: double), (- ((_col0 / _col1)
  / _col2)) (type: double)
+                  expressions: (UDFToDouble(_col0) / _col1) (type: double), ((UDFToDouble(_col0) / _col1) + -3728.0D) (type: double), (- ((UDFToDouble(_col0) / _col1) + -3728.0D)) (type: double), (- (- ((UDFToDouble(_col0) / _col1) + -3728.0D))) (type: double), ((- (- ((UDFToDouble(_col0) / _col1) + -3728.0D))) * ((UDFToDouble(_col0) / _col1) + -3728.0D)) (type: double), _col2 (type: double), (- (UDFToDouble(_col0) / _col1)) (type: double), power(((_col3 - ((_col4 * _col4) / _col1)) / _col1), 0.5) (type: double), (((- (- ((UDFToDouble(_col0) / _col1) + -3728.0D))) * ((UDFToDouble(_col0) / _col1) + -3728.0D)) * (- (- ((UDFToDouble(_col0) / _col1) + -3728.0D)))) (type: double), power(((_col5 - ((_col6 * _col6) / _col7)) / CASE WHEN ((_col7 = 1L)) THEN (null) ELSE ((_col7 - 1)) END), 0.5) (type: double), (- power(((_col3 - ((_col4 * _col4) / _col1)) / _col1), 0.5)) (type: double), (power(((_col3 - ((_col4 * _col4) / _col1)) / _col1), 0.5) - (- (- ((UDFToDouble(_col0) / _col1) + -3728.0
 D)))) (type: double), ((power(((_col3 - ((_col4 * _col4) / _col1)) / _col1), 0.5) - (- (- ((UDFToDouble(_col0) / _col1) + -3728.0D)))) * power(((_col3 - ((_col4 * _col4) / _col1)) / _col1), 0.5)) (type: double), ((_col3 - ((_col4 * _col4) / _col1)) / CASE WHEN ((_col1 = 1L)) THEN (null) ELSE ((_col1 - 1)) END) (type: double), (_col8 / _col9) (type: double), (10.175D - ((_col3 - ((_col4 * _col4) / _col1)) / CASE WHEN ((_col1 = 1L)) THEN (null) ELSE ((_col1 - 1)) END)) (type: double), (- (10.175D - ((_col3 - ((_col4 * _col4) / _col1)) / CASE WHEN ((_col1 = 1L)) THEN (null) ELSE ((_col1 - 1)) END))) (type: double), ((- power(((_col3 - ((_col4 * _col4) / _col1)) / _col1), 0.5)) / -563.0D) (type: double), power(((_col3 - ((_col4 * _col4) / _col1)) / CASE WHEN ((_col1 = 1L)) THEN (null) ELSE ((_col1 - 1)) END), 0.5) (type: double), (- ((- power(((_col3 - ((_col4 * _col4) / _col1)) / _col1), 0.5)) / -563.0D)) (type: double), ((UDFToDouble(_col0) / _col1) / _col2) (type: double), _col10 (ty
 pe: tinyint), _col7 (type: bigint), (UDFToDouble(_col10) / ((- power(((_col3 - ((_col4 * _col4) / _col1)) / _col1), 0.5)) / -563.0D)) (type: double), (- ((UDFToDouble(_col0) / _col1) / _col2)) (type: double)
                   outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13, _col14, _col15, _col16, _col17, _col18, _col19, _col20, _col21, _col22, _col23, _col24
                   Select Vectorization:
                       className: VectorSelectOperator
                       native: true
-                      projectedOutputColumnNums: [11, 13, 12, 15, 14, 2, 17, 16, 19, 18, 24, 25, 27, 26, 20, 30, 34, 31, 37, 41, 42, 10, 7, 44, 38]
-                      selectExpressions: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 11:double, DoubleColAddDoubleScalar(col 12:double, val -3728.0)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 12:double) -> 13:double, DoubleColUnaryMinus(col 14:double)(children: DoubleColAddDoubleScalar(col 12:double, val -3728.0)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 12:double) -> 14:double) -> 12:double, DoubleColUnaryMinus(col 14:double)(children: DoubleColUnaryMinus(col 15:double)(children: DoubleColAddDoubleScalar(col 14:double, val -3728.0)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 14:double) -> 15:double) -> 14:double) -> 15:double, DoubleColMultiplyDoubleColumn(col 16:double, col 17:double)(children: DoubleColUnaryMinus(col 14:double)(children: DoubleColUnaryMinus(col 16:double)(children: DoubleColAddDoubleScalar(col 14:double, val -3728.0)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 14:dou
 ble) -> 16:double) -> 14:double) -> 16:double, DoubleColAddDoubleScalar(col 14:double, val -3728.0)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 14:double) -> 17:double) -> 14:double, DoubleColUnaryMinus(col 16:double)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 16:double) -> 17:double, FuncPowerDoubleToDouble(col 18:double)(children: DoubleColDivideLongColumn(col 16:double, col 1:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 18:double)(children: DoubleColDivideLongColumn(col 16:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 16:double) -> 18:double) -> 16:double) -> 18:double) -> 16:double, DoubleColMultiplyDoubleColumn(col 18:double, col 20:double)(children: DoubleColMultiplyDoubleColumn(col 19:double, col 20:double)(children: DoubleColUnaryMinus(col 18:double)(children: DoubleColUnaryMinus(col 19:double)(children: DoubleColAddDoubleScalar(col 18:double, val -3728.0)(children:
  LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 18:double) -> 19:double) -> 18:double) -> 19:double, DoubleColAddDoubleScalar(col 18:double, val -3728.0)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 18:double) -> 20:double) -> 18:double, DoubleColUnaryMinus(col 19:double)(children: DoubleColUnaryMinus(col 20:double)(children: DoubleColAddDoubleScalar(col 19:double, val -3728.0)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 19:double) -> 20:double) -> 19:double) -> 20:double) -> 19:double, FuncPowerDoubleToDouble(col 20:double)(children: DoubleColDivideLongColumn(col 18:double, col 23:bigint)(children: DoubleColSubtractDoubleColumn(col 5:double, col 20:double)(children: DoubleColDivideLongColumn(col 18:double, col 7:bigint)(children: DoubleColMultiplyDoubleColumn(col 6:double, col 6:double) -> 18:double) -> 20:double) -> 18:double, IfExprNullCondExpr(col 21:boolean, null, col 22:bigint)(children: LongColEqualLongScalar(col 7:bigint, val 
 1) -> 21:boolean, LongColSubtractLongScalar(col 7:bigint, val 1) -> 22:bigint) -> 23:bigint) -> 20:double) -> 18:double, DoubleColUnaryMinus(col 20:double)(children: FuncPowerDoubleToDouble(col 24:double)(children: DoubleColDivideLongColumn(col 20:double, col 1:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 24:double)(children: DoubleColDivideLongColumn(col 20:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 20:double) -> 24:double) -> 20:double) -> 24:double) -> 20:double) -> 24:double, DoubleColSubtractDoubleColumn(col 20:double, col 26:double)(children: FuncPowerDoubleToDouble(col 25:double)(children: DoubleColDivideLongColumn(col 20:double, col 1:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 25:double)(children: DoubleColDivideLongColumn(col 20:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 20:double) -> 25:double) -> 20:double) -> 25:double) -> 20:dou
 ble, DoubleColUnaryMinus(col 25:double)(children: DoubleColUnaryMinus(col 26:double)(children: DoubleColAddDoubleScalar(col 25:double, val -3728.0)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 25:double) -> 26:double) -> 25:double) -> 26:double) -> 25:double, DoubleColMultiplyDoubleColumn(col 26:double, col 20:double)(children: DoubleColSubtractDoubleColumn(col 20:double, col 27:double)(children: FuncPowerDoubleToDouble(col 26:double)(children: DoubleColDivideLongColumn(col 20:double, col 1:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 26:double)(children: DoubleColDivideLongColumn(col 20:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 20:double) -> 26:double) -> 20:double) -> 26:double) -> 20:double, DoubleColUnaryMinus(col 26:double)(children: DoubleColUnaryMinus(col 27:double)(children: DoubleColAddDoubleScalar(col 26:double, val -3728.0)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigi
 nt) -> 26:double) -> 27:double) -> 26:double) -> 27:double) -> 26:double, FuncPowerDoubleToDouble(col 27:double)(children: DoubleColDivideLongColumn(col 20:double, col 1:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 27:double)(children: DoubleColDivideLongColumn(col 20:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 20:double) -> 27:double) -> 20:double) -> 27:double) -> 20:double) -> 27:double, DoubleColDivideLongColumn(col 20:double, col 29:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 26:double)(children: DoubleColDivideLongColumn(col 20:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 20:double) -> 26:double) -> 20:double, IfExprNullCondExpr(col 23:boolean, null, col 28:bigint)(children: LongColEqualLongScalar(col 1:bigint, val 1) -> 23:boolean, LongColSubtractLongScalar(col 1:bigint, val 1) -> 28:bigint) -> 29:bigint) -> 26:double, DoubleColDivideLong
 Column(col 8:double, col 9:bigint) -> 20:double, DoubleScalarSubtractDoubleColumn(val 10.175, col 31:double)(children: DoubleColDivideLongColumn(col 30:double, col 33:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 31:double)(children: DoubleColDivideLongColumn(col 30:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 30:double) -> 31:double) -> 30:double, IfExprNullCondExpr(col 29:boolean, null, col 32:bigint)(children: LongColEqualLongScalar(col 1:bigint, val 1) -> 29:boolean, LongColSubtractLongScalar(col 1:bigint, val 1) -> 32:bigint) -> 33:bigint) -> 31:double) -> 30:double, DoubleColUnaryMinus(col 31:double)(children: DoubleScalarSubtractDoubleColumn(val 10.175, col 34:double)(children: DoubleColDivideLongColumn(col 31:double, col 36:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 34:double)(children: DoubleColDivideLongColumn(col 31:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 4
 :double, col 4:double) -> 31:double) -> 34:double) -> 31:double, IfExprNullCondExpr(col 33:boolean, null, col 35:bigint)(children: LongColEqualLongScalar(col 1:bigint, val 1) -> 33:boolean, LongColSubtractLongScalar(col 1:bigint, val 1) -> 35:bigint) -> 36:bigint) -> 34:double) -> 31:double) -> 34:double, DoubleColDivideDoubleScalar(col 37:double, val -563.0)(children: DoubleColUnaryMinus(col 31:double)(children: FuncPowerDoubleToDouble(col 37:double)(children: DoubleColDivideLongColumn(col 31:double, col 1:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 37:double)(children: DoubleColDivideLongColumn(col 31:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 31:double) -> 37:double) -> 31:double) -> 37:double) -> 31:double) -> 37:double) -> 31:double, FuncPowerDoubleToDouble(col 38:double)(children: DoubleColDivideLongColumn(col 37:double, col 40:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 38:double)(ch
 ildren: DoubleColDivideLongColumn(col 37:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 37:double) -> 38:double) -> 37:double, IfExprNullCondExpr(col 36:boolean, null, col 39:bigint)(children: LongColEqualLongScalar(col 1:bigint, val 1) -> 36:boolean, LongColSubtractLongScalar(col 1:bigint, val 1) -> 39:bigint) -> 40:bigint) -> 38:double) -> 37:double, DoubleColUnaryMinus(col 38:double)(children: DoubleColDivideDoubleScalar(col 41:double, val -563.0)(children: DoubleColUnaryMinus(col 38:double)(children: FuncPowerDoubleToDouble(col 41:double)(children: DoubleColDivideLongColumn(col 38:double, col 1:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 41:double)(children: DoubleColDivideLongColumn(col 38:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 38:double) -> 41:double) -> 38:double) -> 41:double) -> 38:double) -> 41:double) -> 38:double) -> 41:double, DoubleColDivideDoubleCo
 lumn(col 38:double, col 2:double)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 38:double) -> 42:double, DoubleColDivideDoubleColumn(col 38:double, col 43:double)(children: CastLongToDouble(col 10:tinyint) -> 38:double, DoubleColDivideDoubleScalar(col 44:double, val -563.0)(children: DoubleColUnaryMinus(col 43:double)(children: FuncPowerDoubleToDouble(col 44:double)(children: DoubleColDivideLongColumn(col 43:double, col 1:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 44:double)(children: DoubleColDivideLongColumn(col 43:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 43:double) -> 44:double) -> 43:double) -> 44:double) -> 43:double) -> 44:double) -> 43:double) -> 44:double, DoubleColUnaryMinus(col 43:double)(children: DoubleColDivideDoubleColumn(col 38:double, col 2:double)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 38:double) -> 43:double) -> 38:double
+                      projectedOutputColumnNums: [12, 11, 14, 13, 17, 2, 15, 16, 19, 18, 24, 26, 25, 27, 20, 30, 34, 31, 37, 41, 38, 10, 7, 44, 43]
+                      selectExpressions: DoubleColDivideLongColumn(col 11:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 11:double) -> 12:double, DoubleColAddDoubleScalar(col 13:double, val -3728.0)(children: DoubleColDivideLongColumn(col 11:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 11:double) -> 13:double) -> 11:double, DoubleColUnaryMinus(col 13:double)(children: DoubleColAddDoubleScalar(col 14:double, val -3728.0)(children: DoubleColDivideLongColumn(col 13:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 13:double) -> 14:double) -> 13:double) -> 14:double, DoubleColUnaryMinus(col 15:double)(children: DoubleColUnaryMinus(col 13:double)(children: DoubleColAddDoubleScalar(col 15:double, val -3728.0)(children: DoubleColDivideLongColumn(col 13:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 13:double) -> 15:double) -> 13:double) -> 15:double) -> 13:double, DoubleColMultiplyDoubleColumn(col 15:double, col 16:
 double)(children: DoubleColUnaryMinus(col 16:double)(children: DoubleColUnaryMinus(col 15:double)(children: DoubleColAddDoubleScalar(col 16:double, val -3728.0)(children: DoubleColDivideLongColumn(col 15:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 15:double) -> 16:double) -> 15:double) -> 16:double) -> 15:double, DoubleColAddDoubleScalar(col 17:double, val -3728.0)(children: DoubleColDivideLongColumn(col 16:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 16:double) -> 17:double) -> 16:double) -> 17:double, DoubleColUnaryMinus(col 16:double)(children: DoubleColDivideLongColumn(col 15:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 15:double) -> 16:double) -> 15:double, FuncPowerDoubleToDouble(col 18:double)(children: DoubleColDivideLongColumn(col 16:double, col 1:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 18:double)(children: DoubleColDivideLongColumn(col 16:double, col 1:bigint)(children: DoubleColMulti
 plyDoubleColumn(col 4:double, col 4:double) -> 16:double) -> 18:double) -> 16:double) -> 18:double) -> 16:double, DoubleColMultiplyDoubleColumn(col 20:double, col 18:double)(children: DoubleColMultiplyDoubleColumn(col 18:double, col 19:double)(children: DoubleColUnaryMinus(col 19:double)(children: DoubleColUnaryMinus(col 18:double)(children: DoubleColAddDoubleScalar(col 19:double, val -3728.0)(children: DoubleColDivideLongColumn(col 18:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 18:double) -> 19:double) -> 18:double) -> 19:double) -> 18:double, DoubleColAddDoubleScalar(col 20:double, val -3728.0)(children: DoubleColDivideLongColumn(col 19:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 19:double) -> 20:double) -> 19:double) -> 20:double, DoubleColUnaryMinus(col 19:double)(children: DoubleColUnaryMinus(col 18:double)(children: DoubleColAddDoubleScalar(col 19:double, val -3728.0)(children: DoubleColDivideLongColumn(col 18:double, col 1:bigint)(c
 hildren: CastLongToDouble(col 0:bigint) -> 18:double) -> 19:double) -> 18:double) -> 19:double) -> 18:double) -> 19:double, FuncPowerDoubleToDouble(col 20:double)(children: DoubleColDivideLongColumn(col 18:double, col 23:bigint)(children: DoubleColSubtractDoubleColumn(col 5:double, col 20:double)(children: DoubleColDivideLongColumn(col 18:double, col 7:bigint)(children: DoubleColMultiplyDoubleColumn(col 6:double, col 6:double) -> 18:double) -> 20:double) -> 18:double, IfExprNullCondExpr(col 21:boolean, null, col 22:bigint)(children: LongColEqualLongScalar(col 7:bigint, val 1) -> 21:boolean, LongColSubtractLongScalar(col 7:bigint, val 1) -> 22:bigint) -> 23:bigint) -> 20:double) -> 18:double, DoubleColUnaryMinus(col 20:double)(children: FuncPowerDoubleToDouble(col 24:double)(children: DoubleColDivideLongColumn(col 20:double, col 1:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 24:double)(children: DoubleColDivideLongColumn(col 20:double, col 1:bigint)(children: Dou
 bleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 20:double) -> 24:double) -> 20:double) -> 24:double) -> 20:double) -> 24:double, DoubleColSubtractDoubleColumn(col 20:double, col 25:double)(children: FuncPowerDoubleToDouble(col 25:double)(children: DoubleColDivideLongColumn(col 20:double, col 1:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 25:double)(children: DoubleColDivideLongColumn(col 20:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 20:double) -> 25:double) -> 20:double) -> 25:double) -> 20:double, DoubleColUnaryMinus(col 26:double)(children: DoubleColUnaryMinus(col 25:double)(children: DoubleColAddDoubleScalar(col 26:double, val -3728.0)(children: DoubleColDivideLongColumn(col 25:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 25:double) -> 26:double) -> 25:double) -> 26:double) -> 25:double) -> 26:double, DoubleColMultiplyDoubleColumn(col 27:double, col 20:double)(children: DoubleCol
 SubtractDoubleColumn(col 20:double, col 25:double)(children: FuncPowerDoubleToDouble(col 25:double)(children: DoubleColDivideLongColumn(col 20:double, col 1:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 25:double)(children: DoubleColDivideLongColumn(col 20:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 20:double) -> 25:double) -> 20:double) -> 25:double) -> 20:double, DoubleColUnaryMinus(col 27:double)(children: DoubleColUnaryMinus(col 25:double)(children: DoubleColAddDoubleScalar(col 27:double, val -3728.0)(children: DoubleColDivideLongColumn(col 25:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 25:double) -> 27:double) -> 25:double) -> 27:double) -> 25:double) -> 27:double, FuncPowerDoubleToDouble(col 25:double)(children: DoubleColDivideLongColumn(col 20:double, col 1:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 25:double)(children: DoubleColDivideLongColumn(col 20:double, col
  1:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 20:double) -> 25:double) -> 20:double) -> 25:double) -> 20:double) -> 25:double, DoubleColDivideLongColumn(col 20:double, col 29:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 27:double)(children: DoubleColDivideLongColumn(col 20:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 20:double) -> 27:double) -> 20:double, IfExprNullCondExpr(col 23:boolean, null, col 28:bigint)(children: LongColEqualLongScalar(col 1:bigint, val 1) -> 23:boolean, LongColSubtractLongScalar(col 1:bigint, val 1) -> 28:bigint) -> 29:bigint) -> 27:double, DoubleColDivideLongColumn(col 8:double, col 9:bigint) -> 20:double, DoubleScalarSubtractDoubleColumn(val 10.175, col 31:double)(children: DoubleColDivideLongColumn(col 30:double, col 33:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 31:double)(children: DoubleColDivideLongColumn(col 30:double, col 1:
 bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 30:double) -> 31:double) -> 30:double, IfExprNullCondExpr(col 29:boolean, null, col 32:bigint)(children: LongColEqualLongScalar(col 1:bigint, val 1) -> 29:boolean, LongColSubtractLongScalar(col 1:bigint, val 1) -> 32:bigint) -> 33:bigint) -> 31:double) -> 30:double, DoubleColUnaryMinus(col 31:double)(children: DoubleScalarSubtractDoubleColumn(val 10.175, col 34:double)(children: DoubleColDivideLongColumn(col 31:double, col 36:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 34:double)(children: DoubleColDivideLongColumn(col 31:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 31:double) -> 34:double) -> 31:double, IfExprNullCondExpr(col 33:boolean, null, col 35:bigint)(children: LongColEqualLongScalar(col 1:bigint, val 1) -> 33:boolean, LongColSubtractLongScalar(col 1:bigint, val 1) -> 35:bigint) -> 36:bigint) -> 34:double) -> 31:double) -> 34:do
 uble, DoubleColDivideDoubleScalar(col 37:double, val -563.0)(children: DoubleColUnaryMinus(col 31:double)(children: FuncPowerDoubleToDouble(col 37:double)(children: DoubleColDivideLongColumn(col 31:double, col 1:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 37:double)(children: DoubleColDivideLongColumn(col 31:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 31:double) -> 37:double) -> 31:double) -> 37:double) -> 31:double) -> 37:double) -> 31:double, FuncPowerDoubleToDouble(col 38:double)(children: DoubleColDivideLongColumn(col 37:double, col 40:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 38:double)(children: DoubleColDivideLongColumn(col 37:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 37:double) -> 38:double) -> 37:double, IfExprNullCondExpr(col 36:boolean, null, col 39:bigint)(children: LongColEqualLongScalar(col 1:bigint, val 1) -> 36:boolean, Lon
 gColSubtractLongScalar(col 1:bigint, val 1) -> 39:bigint) -> 40:bigint) -> 38:double) -> 37:double, DoubleColUnaryMinus(col 38:double)(children: DoubleColDivideDoubleScalar(col 41:double, val -563.0)(children: DoubleColUnaryMinus(col 38:double)(children: FuncPowerDoubleToDouble(col 41:double)(children: DoubleColDivideLongColumn(col 38:double, col 1:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 41:double)(children: DoubleColDivideLongColumn(col 38:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 38:double) -> 41:double) -> 38:double) -> 41:double) -> 38:double) -> 41:double) -> 38:double) -> 41:double, DoubleColDivideDoubleColumn(col 42:double, col 2:double)(children: DoubleColDivideLongColumn(col 38:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 38:double) -> 42:double) -> 38:double, DoubleColDivideDoubleColumn(col 42:double, col 43:double)(children: CastLongToDouble(col 10:tinyint) -> 42:double, Doub
 leColDivideDoubleScalar(col 44:double, val -563.0)(children: DoubleColUnaryMinus(col 43:double)(children: FuncPowerDoubleToDouble(col 44:double)(children: DoubleColDivideLongColumn(col 43:double, col 1:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 44:double)(children: DoubleColDivideLongColumn(col 43:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 43:double) -> 44:double) -> 43:double) -> 44:double) -> 43:double) -> 44:double) -> 43:double) -> 44:double, DoubleColUnaryMinus(col 42:double)(children: DoubleColDivideDoubleColumn(col 43:double, col 2:double)(children: DoubleColDivideLongColumn(col 42:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 42:double) -> 43:double) -> 42:double) -> 43:double
                   Statistics: Num rows: 1 Data size: 196 Basic stats: COMPLETE Column stats: COMPLETE
                   File Output Operator
                     compressed: false
@@ -428,13 +428,13 @@ STAGE PLANS:
                 outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13, _col14
                 Statistics: Num rows: 1 Data size: 112 Basic stats: COMPLETE Column stats: COMPLETE
                 Select Operator
-                  expressions: _col0 (type: int), (UDFToDouble(_col0) / -3728.0D) (type: double), (_col0 * -3728) (type: int), ((_col1 - ((_col2 * _col2) / _col3)) / _col3) (type: double), (- (_col0 * -3728)) (type: int), power(((_col4 - ((_col5 * _col5) / _col6)) / _col6), 0.5) (type: double), (-563 % (_col0 * -3728)) (type: int), (((_col1 - ((_col2 * _col2) / _col3)) / _col3) / power(((_col4 - ((_col5 * _col5) / _col6)) / _col6), 0.5)) (type: double), (- power(((_col4 - ((_col5 * _col5) / _col6)) / _col6), 0.5)) (type: double), _col7 (type: double), (_col8 / _col9) (type: double), (power(((_col4 - ((_col5 * _col5) / _col6)) / _col6), 0.5) - 10.175D) (type: double), _col10 (type: int), (UDFToDouble((_col0 * -3728)) % (power(((_col4 - ((_col5 * _col5) / _col6)) / _col6), 0.5) - 10.175D)) (type: double), (- _col7) (type: double), _col11 (type: double), (_col7 % -26.28D) (type: double), power(((_col4 - ((_col5 * _col5) / _col6)) / CASE WHEN ((_col6 = 1L)) THEN (null) ELSE ((_col6 - 1)
 ) END), 0.5) (type: double), (- (UDFToDouble(_col0) / -3728.0D)) (type: double), ((- (_col0 * -3728)) % (-563 % (_col0 * -3728))) (type: int), ((UDFToDouble(_col0) / -3728.0D) - (_col8 / _col9)) (type: double), (- (_col0 * -3728)) (type: int), ((_col12 - ((_col13 * _col13) / _col14)) / CASE WHEN ((_col14 = 1L)) THEN (null) ELSE ((_col14 - 1)) END) (type: double)
+                  expressions: _col0 (type: int), (UDFToDouble(_col0) / -3728.0D) (type: double), (_col0 * -3728) (type: int), ((_col1 - ((_col2 * _col2) / _col3)) / _col3) (type: double), (- (_col0 * -3728)) (type: int), power(((_col4 - ((_col5 * _col5) / _col6)) / _col6), 0.5) (type: double), (-563 % (_col0 * -3728)) (type: int), (((_col1 - ((_col2 * _col2) / _col3)) / _col3) / power(((_col4 - ((_col5 * _col5) / _col6)) / _col6), 0.5)) (type: double), (- power(((_col4 - ((_col5 * _col5) / _col6)) / _col6), 0.5)) (type: double), _col7 (type: double), (UDFToDouble(_col8) / _col9) (type: double), (power(((_col4 - ((_col5 * _col5) / _col6)) / _col6), 0.5) - 10.175D) (type: double), _col10 (type: int), (UDFToDouble((_col0 * -3728)) % (power(((_col4 - ((_col5 * _col5) / _col6)) / _col6), 0.5) - 10.175D)) (type: double), (- _col7) (type: double), _col11 (type: double), (_col7 % -26.28D) (type: double), power(((_col4 - ((_col5 * _col5) / _col6)) / CASE WHEN ((_col6 = 1L)) THEN (null) ELSE
  ((_col6 - 1)) END), 0.5) (type: double), (- (UDFToDouble(_col0) / -3728.0D)) (type: double), ((- (_col0 * -3728)) % (-563 % (_col0 * -3728))) (type: int), ((UDFToDouble(_col0) / -3728.0D) - (UDFToDouble(_col8) / _col9)) (type: double), (- (_col0 * -3728)) (type: int), ((_col12 - ((_col13 * _col13) / _col14)) / CASE WHEN ((_col14 = 1L)) THEN (null) ELSE ((_col14 - 1)) END) (type: double)
                   outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13, _col14, _col15, _col16, _col17, _col18, _col19, _col20, _col21, _col22
                   Select Vectorization:
                       className: VectorSelectOperator
                       native: true
-                      projectedOutputColumnNums: [0, 16, 17, 18, 20, 15, 22, 24, 23, 7, 21, 26, 10, 27, 25, 11, 28, 29, 30, 32, 37, 35, 36]
-                      selectExpressions: DoubleColDivideDoubleScalar(col 15:double, val -3728.0)(children: CastLongToDouble(col 0:int) -> 15:double) -> 16:double, LongColMultiplyLongScalar(col 0:int, val -3728) -> 17:int, DoubleColDivideLongColumn(col 15:double, col 3:bigint)(children: DoubleColSubtractDoubleColumn(col 1:double, col 18:double)(children: DoubleColDivideLongColumn(col 15:double, col 3:bigint)(children: DoubleColMultiplyDoubleColumn(col 2:double, col 2:double) -> 15:double) -> 18:double) -> 15:double) -> 18:double, LongColUnaryMinus(col 19:int)(children: LongColMultiplyLongScalar(col 0:int, val -3728) -> 19:int) -> 20:int, FuncPowerDoubleToDouble(col 21:double)(children: DoubleColDivideLongColumn(col 15:double, col 6:bigint)(children: DoubleColSubtractDoubleColumn(col 4:double, col 21:double)(children: DoubleColDivideLongColumn(col 15:double, col 6:bigint)(children: DoubleColMultiplyDoubleColumn(col 5:double, col 5:double) -> 15:double) -> 21:double) -> 15:double) -> 2
 1:double) -> 15:double, LongScalarModuloLongColumn(val -563, col 19:int)(children: LongColMultiplyLongScalar(col 0:int, val -3728) -> 19:int) -> 22:int, DoubleColDivideDoubleColumn(col 23:double, col 21:double)(children: DoubleColDivideLongColumn(col 21:double, col 3:bigint)(children: DoubleColSubtractDoubleColumn(col 1:double, col 23:double)(children: DoubleColDivideLongColumn(col 21:double, col 3:bigint)(children: DoubleColMultiplyDoubleColumn(col 2:double, col 2:double) -> 21:double) -> 23:double) -> 21:double) -> 23:double, FuncPowerDoubleToDouble(col 24:double)(children: DoubleColDivideLongColumn(col 21:double, col 6:bigint)(children: DoubleColSubtractDoubleColumn(col 4:double, col 24:double)(children: DoubleColDivideLongColumn(col 21:double, col 6:bigint)(children: DoubleColMultiplyDoubleColumn(col 5:double, col 5:double) -> 21:double) -> 24:double) -> 21:double) -> 24:double) -> 21:double) -> 24:double, DoubleColUnaryMinus(col 21:double)(children: FuncPowerDoubleToDouble(col 
 23:double)(children: DoubleColDivideLongColumn(col 21:double, col 6:bigint)(children: DoubleColSubtractDoubleColumn(col 4:double, col 23:double)(children: DoubleColDivideLongColumn(col 21:double, col 6:bigint)(children: DoubleColMultiplyDoubleColumn(col 5:double, col 5:double) -> 21:double) -> 23:double) -> 21:double) -> 23:double) -> 21:double) -> 23:double, LongColDivideLongColumn(col 8:bigint, col 9:bigint) -> 21:double, DoubleColSubtractDoubleScalar(col 25:double, val 10.175)(children: FuncPowerDoubleToDouble(col 26:double)(children: DoubleColDivideLongColumn(col 25:double, col 6:bigint)(children: DoubleColSubtractDoubleColumn(col 4:double, col 26:double)(children: DoubleColDivideLongColumn(col 25:double, col 6:bigint)(children: DoubleColMultiplyDoubleColumn(col 5:double, col 5:double) -> 25:double) -> 26:double) -> 25:double) -> 26:double) -> 25:double) -> 26:double, DoubleColModuloDoubleColumn(col 25:double, col 28:double)(children: CastLongToDouble(col 19:int)(children: LongC
 olMultiplyLongScalar(col 0:int, val -3728) -> 19:int) -> 25:double, DoubleColSubtractDoubleScalar(col 27:double, val 10.175)(children: FuncPowerDoubleToDouble(col 28:double)(children: DoubleColDivideLongColumn(col 27:double, col 6:bigint)(children: DoubleColSubtractDoubleColumn(col 4:double, col 28:double)(children: DoubleColDivideLongColumn(col 27:double, col 6:bigint)(children: DoubleColMultiplyDoubleColumn(col 5:double, col 5:double) -> 27:double) -> 28:double) -> 27:double) -> 28:double) -> 27:double) -> 28:double) -> 27:double, DoubleColUnaryMinus(col 7:double) -> 25:double, DoubleColModuloDoubleScalar(col 7:double, val -26.28) -> 28:double, FuncPowerDoubleToDouble(col 30:double)(children: DoubleColDivideLongColumn(col 29:double, col 32:bigint)(children: DoubleColSubtractDoubleColumn(col 4:double, col 30:double)(children: DoubleColDivideLongColumn(col 29:double, col 6:bigint)(children: DoubleColMultiplyDoubleColumn(col 5:double, col 5:double) -> 29:double) -> 30:double) -> 29:d
 ouble, IfExprNullCondExpr(col 19:boolean, null, col 31:bigint)(children: LongColEqualLongScalar(col 6:bigint, val 1) -> 19:boolean, LongColSubtractLongScalar(col 6:bigint, val 1) -> 31:bigint) -> 32:bigint) -> 30:double) -> 29:double, DoubleColUnaryMinus(col 33:double)(children: DoubleColDivideDoubleScalar(col 30:double, val -3728.0)(children: CastLongToDouble(col 0:int) -> 30:double) -> 33:double) -> 30:double, LongColModuloLongColumn(col 34:int, col 35:int)(children: LongColUnaryMinus(col 32:int)(children: LongColMultiplyLongScalar(col 0:int, val -3728) -> 32:int) -> 34:int, LongScalarModuloLongColumn(val -563, col 32:int)(children: LongColMultiplyLongScalar(col 0:int, val -3728) -> 32:int) -> 35:int) -> 32:int, DoubleColSubtractDoubleColumn(col 36:double, col 33:double)(children: DoubleColDivideDoubleScalar(col 33:double, val -3728.0)(children: CastLongToDouble(col 0:int) -> 33:double) -> 36:double, LongColDivideLongColumn(col 8:bigint, col 9:bigint) -> 33:double) -> 37:double, L
 ongColUnaryMinus(col 34:int)(children: LongColMultiplyLongScalar(col 0:int, val -3728) -> 34:int) -> 35:int, DoubleColDivideLongColumn(col 33:double, col 39:bigint)(children: DoubleColSubtractDoubleColumn(col 12:double, col 36:double)(children: DoubleColDivideLongColumn(col 33:double, col 14:bigint)(children: DoubleColMultiplyDoubleColumn(col 13:double, col 13:double) -> 33:double) -> 36:double) -> 33:double, IfExprNullCondExpr(col 34:boolean, null, col 38:bigint)(children: LongColEqualLongScalar(col 14:bigint, val 1) -> 34:boolean, LongColSubtractLongScalar(col 14:bigint, val 1) -> 38:bigint) -> 39:bigint) -> 36:double
+                      projectedOutputColumnNums: [0, 16, 17, 18, 20, 15, 22, 24, 23, 7, 25, 26, 10, 27, 21, 11, 28, 29, 30, 32, 33, 35, 37]
+                      selectExpressions: DoubleColDivideDoubleScalar(col 15:double, val -3728.0)(children: CastLongToDouble(col 0:int) -> 15:double) -> 16:double, LongColMultiplyLongScalar(col 0:int, val -3728) -> 17:int, DoubleColDivideLongColumn(col 15:double, col 3:bigint)(children: DoubleColSubtractDoubleColumn(col 1:double, col 18:double)(children: DoubleColDivideLongColumn(col 15:double, col 3:bigint)(children: DoubleColMultiplyDoubleColumn(col 2:double, col 2:double) -> 15:double) -> 18:double) -> 15:double) -> 18:double, LongColUnaryMinus(col 19:int)(children: LongColMultiplyLongScalar(col 0:int, val -3728) -> 19:int) -> 20:int, FuncPowerDoubleToDouble(col 21:double)(children: DoubleColDivideLongColumn(col 15:double, col 6:bigint)(children: DoubleColSubtractDoubleColumn(col 4:double, col 21:double)(children: DoubleColDivideLongColumn(col 15:double, col 6:bigint)(children: DoubleColMultiplyDoubleColumn(col 5:double, col 5:double) -> 15:double) -> 21:double) -> 15:double) -> 2
 1:double) -> 15:double, LongScalarModuloLongColumn(val -563, col 19:int)(children: LongColMultiplyLongScalar(col 0:int, val -3728) -> 19:int) -> 22:int, DoubleColDivideDoubleColumn(col 23:double, col 21:double)(children: DoubleColDivideLongColumn(col 21:double, col 3:bigint)(children: DoubleColSubtractDoubleColumn(col 1:double, col 23:double)(children: DoubleColDivideLongColumn(col 21:double, col 3:bigint)(children: DoubleColMultiplyDoubleColumn(col 2:double, col 2:double) -> 21:double) -> 23:double) -> 21:double) -> 23:double, FuncPowerDoubleToDouble(col 24:double)(children: DoubleColDivideLongColumn(col 21:double, col 6:bigint)(children: DoubleColSubtractDoubleColumn(col 4:double, col 24:double)(children: DoubleColDivideLongColumn(col 21:double, col 6:bigint)(children: DoubleColMultiplyDoubleColumn(col 5:double, col 5:double) -> 21:double) -> 24:double) -> 21:double) -> 24:double) -> 21:double) -> 24:double, DoubleColUnaryMinus(col 21:double)(children: FuncPowerDoubleToDouble(col 
 23:double)(children: DoubleColDivideLongColumn(col 21:double, col 6:bigint)(children: DoubleColSubtractDoubleColumn(col 4:double, col 23:double)(children: DoubleColDivideLongColumn(col 21:double, col 6:bigint)(children: DoubleColMultiplyDoubleColumn(col 5:double, col 5:double) -> 21:double) -> 23:double) -> 21:double) -> 23:double) -> 21:double) -> 23:double, DoubleColDivideLongColumn(col 21:double, col 9:bigint)(children: CastLongToDouble(col 8:bigint) -> 21:double) -> 25:double, DoubleColSubtractDoubleScalar(col 21:double, val 10.175)(children: FuncPowerDoubleToDouble(col 26:double)(children: DoubleColDivideLongColumn(col 21:double, col 6:bigint)(children: DoubleColSubtractDoubleColumn(col 4:double, col 26:double)(children: DoubleColDivideLongColumn(col 21:double, col 6:bigint)(children: DoubleColMultiplyDoubleColumn(col 5:double, col 5:double) -> 21:double) -> 26:double) -> 21:double) -> 26:double) -> 21:double) -> 26:double, DoubleColModuloDoubleColumn(col 21:double, col 28:doub
 le)(children: CastLongToDouble(col 19:int)(children: LongColMultiplyLongScalar(col 0:int, val -3728) -> 19:int) -> 21:double, DoubleColSubtractDoubleScalar(col 27:double, val 10.175)(children: FuncPowerDoubleToDouble(col 28:double)(children: DoubleColDivideLongColumn(col 27:double, col 6:bigint)(children: DoubleColSubtractDoubleColumn(col 4:double, col 28:double)(children: DoubleColDivideLongColumn(col 27:double, col 6:bigint)(children: DoubleColMultiplyDoubleColumn(col 5:double, col 5:double) -> 27:double) -> 28:double) -> 27:double) -> 28:double) -> 27:double) -> 28:double) -> 27:double, DoubleColUnaryMinus(col 7:double) -> 21:double, DoubleColModuloDoubleScalar(col 7:double, val -26.28) -> 28:double, FuncPowerDoubleToDouble(col 30:double)(children: DoubleColDivideLongColumn(col 29:double, col 32:bigint)(children: DoubleColSubtractDoubleColumn(col 4:double, col 30:double)(children: DoubleColDivideLongColumn(col 29:double, col 6:bigint)(children: DoubleColMultiplyDoubleColumn(col 5
 :double, col 5:double) -> 29:double) -> 30:double) -> 29:double, IfExprNullCondExpr(col 19:boolean, null, col 31:bigint)(children: LongColEqualLongScalar(col 6:bigint, val 1) -> 19:boolean, LongColSubtractLongScalar(col 6:bigint, val 1) -> 31:bigint) -> 32:bigint) -> 30:double) -> 29:double, DoubleColUnaryMinus(col 33:double)(children: DoubleColDivideDoubleScalar(col 30:double, val -3728.0)(children: CastLongToDouble(col 0:int) -> 30:double) -> 33:double) -> 30:double, LongColModuloLongColumn(col 34:int, col 35:int)(children: LongColUnaryMinus(col 32:int)(children: LongColMultiplyLongScalar(col 0:int, val -3728) -> 32:int) -> 34:int, LongScalarModuloLongColumn(val -563, col 32:int)(children: LongColMultiplyLongScalar(col 0:int, val -3728) -> 32:int) -> 35:int) -> 32:int, DoubleColSubtractDoubleColumn(col 36:double, col 37:double)(children: DoubleColDivideDoubleScalar(col 33:double, val -3728.0)(children: CastLongToDouble(col 0:int) -> 33:double) -> 36:double, DoubleColDivideLongColu
 mn(col 33:double, col 9:bigint)(children: CastLongToDouble(col 8:bigint) -> 33:double) -> 37:double) -> 33:double, LongColUnaryMinus(col 34:int)(children: LongColMultiplyLongScalar(col 0:int, val -3728) -> 34:int) -> 35:int, DoubleColDivideLongColumn(col 36:double, col 39:bigint)(children: DoubleColSubtractDoubleColumn(col 12:double, col 37:double)(children: DoubleColDivideLongColumn(col 36:double, col 14:bigint)(children: DoubleColMultiplyDoubleColumn(col 13:double, col 13:double) -> 36:double) -> 37:double) -> 36:double, IfExprNullCondExpr(col 34:boolean, null, col 38:bigint)(children: LongColEqualLongScalar(col 14:bigint, val 1) -> 34:boolean, LongColSubtractLongScalar(col 14:bigint, val 1) -> 38:bigint) -> 39:bigint) -> 37:double
                   Statistics: Num rows: 1 Data size: 156 Basic stats: COMPLETE Column stats: COMPLETE
                   File Output Operator
                     compressed: false
@@ -683,13 +683,13 @@ STAGE PLANS:
                 outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13
                 Statistics: Num rows: 1 Data size: 104 Basic stats: COMPLETE Column stats: COMPLETE
                 Select Operator
-                  expressions: ((_col0 - ((_col1 * _col1) / _col2)) / _col2) (type: double), (- ((_col0 - ((_col1 * _col1) / _col2)) / _col2)) (type: double), (((_col0 - ((_col1 * _col1) / _col2)) / _col2) - (- ((_col0 - ((_col1 * _col1) / _col2)) / _col2))) (type: double), _col3 (type: bigint), (CAST( _col3 AS decimal(19,0)) % 79.553) (type: decimal(5,3)), _col4 (type: tinyint), (UDFToDouble(_col3) - (- ((_col0 - ((_col1 * _col1) / _col2)) / _col2))) (type: double), (- (- ((_col0 - ((_col1 * _col1) / _col2)) / _col2))) (type: double), (-1.0D % (- ((_col0 - ((_col1 * _col1) / _col2)) / _col2))) (type: double), _col3 (type: bigint), (- _col3) (type: bigint), power(((_col5 - ((_col6 * _col6) / _col7)) / _col7), 0.5) (type: double), (- (- (- ((_col0 - ((_col1 * _col1) / _col2)) / _col2)))) (type: double), (762L * (- _col3)) (type: bigint), _col8 (type: int), (UDFToLong(_col4) + (762L * (- _col3))) (type: bigint), ((- ((_col0 - ((_col1 * _col1) / _col2)) / _col2)) + UDFToDouble(_col8)) 
 (type: double), power(((_col9 - ((_col10 * _col10) / _col11)) / CASE WHEN ((_col11 = 1L)) THEN (null) ELSE ((_col11 - 1)) END), 0.5) (type: double), ((- _col3) % _col3) (type: bigint), _col12 (type: bigint), (_col13 / _col12) (type: double), (-3728L % (UDFToLong(_col4) + (762L * (- _col3)))) (type: bigint)
+                  expressions: ((_col0 - ((_col1 * _col1) / _col2)) / _col2) (type: double), (- ((_col0 - ((_col1 * _col1) / _col2)) / _col2)) (type: double), (((_col0 - ((_col1 * _col1) / _col2)) / _col2) - (- ((_col0 - ((_col1 * _col1) / _col2)) / _col2))) (type: double), _col3 (type: bigint), (CAST( _col3 AS decimal(19,0)) % 79.553) (type: decimal(5,3)), _col4 (type: tinyint), (UDFToDouble(_col3) - (- ((_col0 - ((_col1 * _col1) / _col2)) / _col2))) (type: double), (- (- ((_col0 - ((_col1 * _col1) / _col2)) / _col2))) (type: double), (-1.0D % (- ((_col0 - ((_col1 * _col1) / _col2)) / _col2))) (type: double), _col3 (type: bigint), (- _col3) (type: bigint), power(((_col5 - ((_col6 * _col6) / _col7)) / _col7), 0.5) (type: double), (- (- (- ((_col0 - ((_col1 * _col1) / _col2)) / _col2)))) (type: double), (762L * (- _col3)) (type: bigint), _col8 (type: int), (UDFToLong(_col4) + (762L * (- _col3))) (type: bigint), ((- ((_col0 - ((_col1 * _col1) / _col2)) / _col2)) + UDFToDouble(_col8)) 
 (type: double), power(((_col9 - ((_col10 * _col10) / _col11)) / CASE WHEN ((_col11 = 1L)) THEN (null) ELSE ((_col11 - 1)) END), 0.5) (type: double), ((- _col3) % _col3) (type: bigint), _col12 (type: bigint), (UDFToDouble(_col13) / _col12) (type: double), (-3728L % (UDFToLong(_col4) + (762L * (- _col3)))) (type: bigint)
                   outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13, _col14, _col15, _col16, _col17, _col18, _col19, _col20, _col21
                   Select Vectorization:
                       className: VectorSelectOperator
                       native: true
-                      projectedOutputColumnNums: [15, 14, 18, 3, 20, 4, 21, 17, 22, 3, 23, 16, 24, 27, 8, 26, 30, 25, 33, 12, 29, 34]
-                      selectExpressions: DoubleColDivideLongColumn(col 14:double, col 2:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 15:double)(children: DoubleColDivideLongColumn(col 14:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 14:double) -> 15:double) -> 14:double) -> 15:double, DoubleColUnaryMinus(col 16:double)(children: DoubleColDivideLongColumn(col 14:double, col 2:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 16:double)(children: DoubleColDivideLongColumn(col 14:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 14:double) -> 16:double) -> 14:double) -> 16:double) -> 14:double, DoubleColSubtractDoubleColumn(col 17:double, col 16:double)(children: DoubleColDivideLongColumn(col 16:double, col 2:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 17:double)(children: DoubleColDivideLongColumn(col 16:double, col 2:bigint)(children: Do
 ubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 16:double) -> 17:double) -> 16:double) -> 17:double, DoubleColUnaryMinus(col 18:double)(children: DoubleColDivideLongColumn(col 16:double, col 2:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 18:double)(children: DoubleColDivideLongColumn(col 16:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 16:double) -> 18:double) -> 16:double) -> 18:double) -> 16:double) -> 18:double, DecimalColModuloDecimalScalar(col 19:decimal(19,0), val 79.553)(children: CastLongToDecimal(col 3:bigint) -> 19:decimal(19,0)) -> 20:decimal(5,3), DoubleColSubtractDoubleColumn(col 16:double, col 17:double)(children: CastLongToDouble(col 3:bigint) -> 16:double, DoubleColUnaryMinus(col 21:double)(children: DoubleColDivideLongColumn(col 17:double, col 2:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 21:double)(children: DoubleColDivideLongColumn(col 17:double, col 2:bigint)(chi
 ldren: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 17:double) -> 21:double) -> 17:double) -> 21:double) -> 17:double) -> 21:double, DoubleColUnaryMinus(col 16:double)(children: DoubleColUnaryMinus(col 17:double)(children: DoubleColDivideLongColumn(col 16:double, col 2:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 17:double)(children: DoubleColDivideLongColumn(col 16:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 16:double) -> 17:double) -> 16:double) -> 17:double) -> 16:double) -> 17:double, DoubleScalarModuloDoubleColumn(val -1.0, col 16:double)(children: DoubleColUnaryMinus(col 22:double)(children: DoubleColDivideLongColumn(col 16:double, col 2:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 22:double)(children: DoubleColDivideLongColumn(col 16:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 16:double) -> 22:double) -> 16:double) -> 22:d
 ouble) -> 16:double) -> 22:double, LongColUnaryMinus(col 3:bigint) -> 23:bigint, FuncPowerDoubleToDouble(col 24:double)(children: DoubleColDivideLongColumn(col 16:double, col 7:bigint)(children: DoubleColSubtractDoubleColumn(col 5:double, col 24:double)(children: DoubleColDivideLongColumn(col 16:double, col 7:bigint)(children: DoubleColMultiplyDoubleColumn(col 6:double, col 6:double) -> 16:double) -> 24:double) -> 16:double) -> 24:double) -> 16:double, DoubleColUnaryMinus(col 25:double)(children: DoubleColUnaryMinus(col 24:double)(children: DoubleColUnaryMinus(col 25:double)(children: DoubleColDivideLongColumn(col 24:double, col 2:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 25:double)(children: DoubleColDivideLongColumn(col 24:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 24:double) -> 25:double) -> 24:double) -> 25:double) -> 24:double) -> 25:double) -> 24:double, LongScalarMultiplyLongColumn(val 762, col 26:bigin
 t)(children: LongColUnaryMinus(col 3:bigint) -> 26:bigint) -> 27:bigint, LongColAddLongColumn(col 4:bigint, col 28:bigint)(children: col 4:tinyint, LongScalarMultiplyLongColumn(val 762, col 26:bigint)(children: LongColUnaryMinus(col 3:bigint) -> 26:bigint) -> 28:bigint) -> 26:bigint, DoubleColAddDoubleColumn(col 25:double, col 29:double)(children: DoubleColUnaryMinus(col 29:double)(children: DoubleColDivideLongColumn(col 25:double, col 2:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 29:double)(children: DoubleColDivideLongColumn(col 25:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 25:double) -> 29:double) -> 25:double) -> 29:double) -> 25:double, CastLongToDouble(col 8:int) -> 29:double) -> 30:double, FuncPowerDoubleToDouble(col 29:double)(children: DoubleColDivideLongColumn(col 25:double, col 32:bigint)(children: DoubleColSubtractDoubleColumn(col 9:double, col 29:double)(children: DoubleColDivideLongColumn(col 25:do
 uble, col 11:bigint)(children: DoubleColMultiplyDoubleColumn(col 10:double, col 10:double) -> 25:double) -> 29:double) -> 25:double, IfExprNullCondExpr(col 28:boolean, null, col 31:bigint)(children: LongColEqualLongScalar(col 11:bigint, val 1) -> 28:boolean, LongColSubtractLongScalar(col 11:bigint, val 1) -> 31:bigint) -> 32:bigint) -> 29:double) -> 25:double, LongColModuloLongColumn(col 32:bigint, col 3:bigint)(children: LongColUnaryMinus(col 3:bigint) -> 32:bigint) -> 33:bigint, LongColDivideLongColumn(col 13:bigint, col 12:bigint) -> 29:double, LongScalarModuloLongColumn(val -3728, col 32:bigint)(children: LongColAddLongColumn(col 4:bigint, col 34:bigint)(children: col 4:tinyint, LongScalarMultiplyLongColumn(val 762, col 32:bigint)(children: LongColUnaryMinus(col 3:bigint) -> 32:bigint) -> 34:bigint) -> 32:bigint) -> 34:bigint
+                      projectedOutputColumnNums: [15, 14, 18, 3, 20, 4, 21, 17, 22, 3, 23, 16, 24, 27, 8, 26, 30, 25, 33, 12, 34, 35]
+                      selectExpressions: DoubleColDivideLongColumn(col 14:double, col 2:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 15:double)(children: DoubleColDivideLongColumn(col 14:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 14:double) -> 15:double) -> 14:double) -> 15:double, DoubleColUnaryMinus(col 16:double)(children: DoubleColDivideLongColumn(col 14:double, col 2:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 16:double)(children: DoubleColDivideLongColumn(col 14:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 14:double) -> 16:double) -> 14:double) -> 16:double) -> 14:double, DoubleColSubtractDoubleColumn(col 17:double, col 16:double)(children: DoubleColDivideLongColumn(col 16:double, col 2:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 17:double)(children: DoubleColDivideLongColumn(col 16:double, col 2:bigint)(children: Do
 ubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 16:double) -> 17:double) -> 16:double) -> 17:double, DoubleColUnaryMinus(col 18:double)(children: DoubleColDivideLongColumn(col 16:double, col 2:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 18:double)(children: DoubleColDivideLongColumn(col 16:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 16:double) -> 18:double) -> 16:double) -> 18:double) -> 16:double) -> 18:double, DecimalColModuloDecimalScalar(col 19:decimal(19,0), val 79.553)(children: CastLongToDecimal(col 3:bigint) -> 19:decimal(19,0)) -> 20:decimal(5,3), DoubleColSubtractDoubleColumn(col 16:double, col 17:double)(children: CastLongToDouble(col 3:bigint) -> 16:double, DoubleColUnaryMinus(col 21:double)(children: DoubleColDivideLongColumn(col 17:double, col 2:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 21:double)(children: DoubleColDivideLongColumn(col 17:double, col 2:bigint)(chi
 ldren: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 17:double) -> 21:double) -> 17:double) -> 21:double) -> 17:double) -> 21:double, DoubleColUnaryMinus(col 16:double)(children: DoubleColUnaryMinus(col 17:double)(children: DoubleColDivideLongColumn(col 16:double, col 2:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 17:double)(children: DoubleColDivideLongColumn(col 16:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 16:double) -> 17:double) -> 16:double) -> 17:double) -> 16:double) -> 17:double, DoubleScalarModuloDoubleColumn(val -1.0, col 16:double)(children: DoubleColUnaryMinus(col 22:double)(children: DoubleColDivideLongColumn(col 16:double, col 2:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 22:double)(children: DoubleColDivideLongColumn(col 16:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 16:double) -> 22:double) -> 16:double) -> 22:d
 ouble) -> 16:double) -> 22:double, LongColUnaryMinus(col 3:bigint) -> 23:bigint, FuncPowerDoubleToDouble(col 24:double)(children: DoubleColDivideLongColumn(col 16:double, col 7:bigint)(children: DoubleColSubtractDoubleColumn(col 5:double, col 24:double)(children: DoubleColDivideLongColumn(col 16:double, col 7:bigint)(children: DoubleColMultiplyDoubleColumn(col 6:double, col 6:double) -> 16:double) -> 24:double) -> 16:double) -> 24:double) -> 16:double, DoubleColUnaryMinus(col 25:double)(children: DoubleColUnaryMinus(col 24:double)(children: DoubleColUnaryMinus(col 25:double)(children: DoubleColDivideLongColumn(col 24:double, col 2:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 25:double)(children: DoubleColDivideLongColumn(col 24:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 24:double) -> 25:double) -> 24:double) -> 25:double) -> 24:double) -> 25:double) -> 24:double, LongScalarMultiplyLongColumn(val 762, col 26:bigin
 t)(children: LongColUnaryMinus(col 3:bigint) -> 26:bigint) -> 27:bigint, LongColAddLongColumn(col 4:bigint, col 28:bigint)(children: col 4:tinyint, LongScalarMultiplyLongColumn(val 762, col 26:bigint)(children: LongColUnaryMinus(col 3:bigint) -> 26:bigint) -> 28:bigint) -> 26:bigint, DoubleColAddDoubleColumn(col 25:double, col 29:double)(children: DoubleColUnaryMinus(col 29:double)(children: DoubleColDivideLongColumn(col 25:double, col 2:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 29:double)(children: DoubleColDivideLongColumn(col 25:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 25:double) -> 29:double) -> 25:double) -> 29:double) -> 25:double, CastLongToDouble(col 8:int) -> 29:double) -> 30:double, FuncPowerDoubleToDouble(col 29:double)(children: DoubleColDivideLongColumn(col 25:double, col 32:bigint)(children: DoubleColSubtractDoubleColumn(col 9:double, col 29:double)(children: DoubleColDivideLongColumn(col 25:do
 uble, col 11:bigint)(children: DoubleColMultiplyDoubleColumn(col 10:double, col 10:double) -> 25:double) -> 29:double) -> 25:double, IfExprNullCondExpr(col 28:boolean, null, col 31:bigint)(children: LongColEqualLongScalar(col 11:bigint, val 1) -> 28:boolean, LongColSubtractLongScalar(col 11:bigint, val 1) -> 31:bigint) -> 32:bigint) -> 29:double) -> 25:double, LongColModuloLongColumn(col 32:bigint, col 3:bigint)(children: LongColUnaryMinus(col 3:bigint) -> 32:bigint) -> 33:bigint, DoubleColDivideLongColumn(col 29:double, col 12:bigint)(children: CastLongToDouble(col 13:bigint) -> 29:double) -> 34:double, LongScalarModuloLongColumn(val -3728, col 32:bigint)(children: LongColAddLongColumn(col 4:bigint, col 35:bigint)(children: col 4:tinyint, LongScalarMultiplyLongColumn(val 762, col 32:bigint)(children: LongColUnaryMinus(col 3:bigint) -> 32:bigint) -> 35:bigint) -> 32:bigint) -> 35:bigint
                   Statistics: Num rows: 1 Data size: 272 Basic stats: COMPLETE Column stats: COMPLETE
                   File Output Operator
                     compressed: false
@@ -917,13 +917,13 @@ STAGE PLANS:
                 outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9
                 Statistics: Num rows: 1 Data size: 76 Basic stats: COMPLETE Column stats: COMPLETE
                 Select Operator
-                  expressions: (_col0 / _col1) (type: double), ((_col0 / _col1) + 6981.0D) (type: double), (((_col0 / _col1) + 6981.0D) + (_col0 / _col1)) (type: double), _col2 (type: bigint), ((((_col0 / _col1) + 6981.0D) + (_col0 / _col1)) / (_col0 / _col1)) (type: double), (- ((_col0 / _col1) + 6981.0D)) (type: double), power(((_col3 - ((_col4 * _col4) / _col5)) / CASE WHEN ((_col5 = 1L)) THEN (null) ELSE ((_col5 - 1)) END), 0.5) (type: double), ((_col0 / _col1) % (- ((_col0 / _col1) + 6981.0D))) (type: double), ((_col3 - ((_col4 * _col4) / _col5)) / _col5) (type: double), ((_col6 - ((_col7 * _col7) / _col8)) / _col8) (type: double), (- _col2) (type: bigint), (UDFToDouble((- _col2)) / power(((_col3 - ((_col4 * _col4) / _col5)) / CASE WHEN ((_col5 = 1L)) THEN (null) ELSE ((_col5 - 1)) END), 0.5)) (type: double), _col9 (type: float), (((_col6 - ((_col7 * _col7) / _col8)) / _col8) * -26.28D) (type: double)
+                  expressions: (UDFToDouble(_col0) / _col1) (type: double), ((UDFToDouble(_col0) / _col1) + 6981.0D) (type: double), (((UDFToDouble(_col0) / _col1) + 6981.0D) + (UDFToDouble(_col0) / _col1)) (type: double), _col2 (type: bigint), ((((UDFToDouble(_col0) / _col1) + 6981.0D) + (UDFToDouble(_col0) / _col1)) / (UDFToDouble(_col0) / _col1)) (type: double), (- ((UDFToDouble(_col0) / _col1) + 6981.0D)) (type: double), power(((_col3 - ((_col4 * _col4) / _col5)) / CASE WHEN ((_col5 = 1L)) THEN (null) ELSE ((_col5 - 1)) END), 0.5) (type: double), ((UDFToDouble(_col0) / _col1) % (- ((UDFToDouble(_col0) / _col1) + 6981.0D))) (type: double), ((_col3 - ((_col4 * _col4) / _col5)) / _col5) (type: double), ((_col6 - ((_col7 * _col7) / _col8)) / _col8) (type: double), (- _col2) (type: bigint), (UDFToDouble((- _col2)) / power(((_col3 - ((_col4 * _col4) / _col5)) / CASE WHEN ((_col5 = 1L)) THEN (null) ELSE ((_col5 - 1)) END), 0.5)) (type: double), _col9 (type: float), (((_col6 - ((_col7 *
  _col7) / _col8)) / _col8) * -26.28D) (type: double)
                   outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13
                   Select Vectorization:
                       className: VectorSelectOperator
                       native: true
-                      projectedOutputColumnNums: [10, 12, 14, 2, 13, 11, 15, 21, 20, 22, 19, 25, 9, 16]
-                      selectExpressions: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 10:double, DoubleColAddDoubleScalar(col 11:double, val 6981.0)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 11:double) -> 12:double, DoubleColAddDoubleColumn(col 13:double, col 11:double)(children: DoubleColAddDoubleScalar(col 11:double, val 6981.0)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 11:double) -> 13:double, LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 11:double) -> 14:double, DoubleColDivideDoubleColumn(col 15:double, col 11:double)(children: DoubleColAddDoubleColumn(col 13:double, col 11:double)(children: DoubleColAddDoubleScalar(col 11:double, val 6981.0)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 11:double) -> 13:double, LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 11:double) -> 15:double, LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 11:double) -> 13:double, DoubleColUnaryMinus(col 15
 :double)(children: DoubleColAddDoubleScalar(col 11:double, val 6981.0)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 11:double) -> 15:double) -> 11:double, FuncPowerDoubleToDouble(col 16:double)(children: DoubleColDivideLongColumn(col 15:double, col 19:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 16:double)(children: DoubleColDivideLongColumn(col 15:double, col 5:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 15:double) -> 16:double) -> 15:double, IfExprNullCondExpr(col 17:boolean, null, col 18:bigint)(children: LongColEqualLongScalar(col 5:bigint, val 1) -> 17:boolean, LongColSubtractLongScalar(col 5:bigint, val 1) -> 18:bigint) -> 19:bigint) -> 16:double) -> 15:double, DoubleColModuloDoubleColumn(col 16:double, col 20:double)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 16:double, DoubleColUnaryMinus(col 21:double)(children: DoubleColAddDoubleScalar(col 20:double, val 6981.0)(children: Long
 ColDivideLongColumn(col 0:bigint, col 1:bigint) -> 20:double) -> 21:double) -> 20:double) -> 21:double, DoubleColDivideLongColumn(col 16:double, col 5:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 20:double)(children: DoubleColDivideLongColumn(col 16:double, col 5:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 16:double) -> 20:double) -> 16:double) -> 20:double, DoubleColDivideLongColumn(col 16:double, col 8:bigint)(children: DoubleColSubtractDoubleColumn(col 6:double, col 22:double)(children: DoubleColDivideLongColumn(col 16:double, col 8:bigint)(children: DoubleColMultiplyDoubleColumn(col 7:double, col 7:double) -> 16:double) -> 22:double) -> 16:double) -> 22:double, LongColUnaryMinus(col 2:bigint) -> 19:bigint, DoubleColDivideDoubleColumn(col 16:double, col 24:double)(children: CastLongToDouble(col 23:bigint)(children: LongColUnaryMinus(col 2:bigint) -> 23:bigint) -> 16:double, FuncPowerDoubleToDouble(col 25:double)(children: Do
 ubleColDivideLongColumn(col 24:double, col 27:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 25:double)(children: DoubleColDivideLongColumn(col 24:double, col 5:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 24:double) -> 25:double) -> 24:double, IfExprNullCondExpr(col 23:boolean, null, col 26:bigint)(children: LongColEqualLongScalar(col 5:bigint, val 1) -> 23:boolean, LongColSubtractLongScalar(col 5:bigint, val 1) -> 26:bigint) -> 27:bigint) -> 25:double) -> 24:double) -> 25:double, DoubleColMultiplyDoubleScalar(col 24:double, val -26.28)(children: DoubleColDivideLongColumn(col 16:double, col 8:bigint)(children: DoubleColSubtractDoubleColumn(col 6:double, col 24:double)(children: DoubleColDivideLongColumn(col 16:double, col 8:bigint)(children: DoubleColMultiplyDoubleColumn(col 7:double, col 7:double) -> 16:double) -> 24:double) -> 16:double) -> 24:double) -> 16:double
+                      projectedOutputColumnNums: [11, 10, 13, 2, 12, 15, 14, 16, 21, 22, 19, 25, 9, 20]
+                      selectExpressions: DoubleColDivideLongColumn(col 10:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 10:double) -> 11:double, DoubleColAddDoubleScalar(col 12:double, val 6981.0)(children: DoubleColDivideLongColumn(col 10:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 10:double) -> 12:double) -> 10:double, DoubleColAddDoubleColumn(col 12:double, col 14:double)(children: DoubleColAddDoubleScalar(col 13:double, val 6981.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 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 13:double) -> 14:double) -> 13:double, DoubleColDivideDoubleColumn(col 14:double, col 15:double)(children: DoubleColAddDoubleColumn(col 12:double, col 15:double)(children: DoubleColAddDoubleScalar(col 14:double, val 6981.0)(children: DoubleColDivideLongColumn(col 12:d
 ouble, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 12:double) -> 14:double) -> 12:double, DoubleColDivideLongColumn(col 14:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 14:double) -> 15:double) -> 14:double, DoubleColDivideLongColumn(col 12:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 12:double) -> 15:double) -> 12:double, DoubleColUnaryMinus(col 14:double)(children: DoubleColAddDoubleScalar(col 15:double, val 6981.0)(children: DoubleColDivideLongColumn(col 14:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 14:double) -> 15:double) -> 14:double) -> 15:double, FuncPowerDoubleToDouble(col 16:double)(children: DoubleColDivideLongColumn(col 14:double, col 19:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 16:double)(children: DoubleColDivideLongColumn(col 14:double, col 5:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 14:double) -> 16:double) -> 14:double, IfExprNul
 lCondExpr(col 17:boolean, null, col 18:bigint)(children: LongColEqualLongScalar(col 5:bigint, val 1) -> 17:boolean, LongColSubtractLongScalar(col 5:bigint, val 1) -> 18:bigint) -> 19:bigint) -> 16:double) -> 14:double, DoubleColModuloDoubleColumn(col 20:double, col 21:double)(children: DoubleColDivideLongColumn(col 16:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 16:double) -> 20:double, DoubleColUnaryMinus(col 16:double)(children: DoubleColAddDoubleScalar(col 21:double, val 6981.0)(children: DoubleColDivideLongColumn(col 16:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 16:double) -> 21:double) -> 16:double) -> 21:double) -> 16:double, DoubleColDivideLongColumn(col 20:double, col 5:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 21:double)(children: DoubleColDivideLongColumn(col 20:double, col 5:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 20:double) -> 21:double) -> 20:double) -> 21:double, 
 DoubleColDivideLongColumn(col 20:double, col 8:bigint)(children: DoubleColSubtractDoubleColumn(col 6:double, col 22:double)(children: DoubleColDivideLongColumn(col 20:double, col 8:bigint)(children: DoubleColMultiplyDoubleColumn(col 7:double, col 7:double) -> 20:double) -> 22:double) -> 20:double) -> 22:double, LongColUnaryMinus(col 2:bigint) -> 19:bigint, DoubleColDivideDoubleColumn(col 20:double, col 24:double)(children: CastLongToDouble(col 23:bigint)(children: LongColUnaryMinus(col 2:bigint) -> 23:bigint) -> 20:double, FuncPowerDoubleToDouble(col 25:double)(children: DoubleColDivideLongColumn(col 24:double, col 27:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 25:double)(children: DoubleColDivideLongColumn(col 24:double, col 5:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 24:double) -> 25:double) -> 24:double, IfExprNullCondExpr(col 23:boolean, null, col 26:bigint)(children: LongColEqualLongScalar(col 5:bigint, val 1) -> 23:boo
 lean, LongColSubtractLongScalar(col 5:bigint, val 1) -> 26:bigint) -> 27:bigint) -> 25:double) -> 24:double) -> 25:double, DoubleColMultiplyDoubleScalar(col 24:double, val -26.28)(children: DoubleColDivideLongColumn(col 20:double, col 8:bigint)(children: DoubleColSubtractDoubleColumn(col 6:double, col 24:double)(children: DoubleColDivideLongColumn(col 20:double, col 8:bigint)(children: DoubleColMultiplyDoubleColumn(col 7:double, col 7:double) -> 20:double) -> 24:double) -> 20:double) -> 24:double) -> 20:double
                   Statistics: Num rows: 1 Data size: 108 Basic stats: COMPLETE Column stats: COMPLETE
                   File Output Operator
                     compressed: false
@@ -2862,13 +2862,13 @@ STAGE PLANS:
                 outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13, _col14, _col15, _col16, _col17, _col18, _col19
                 Statistics: Num rows: 3072 Data size: 768596 Basic stats: COMPLETE Column stats: COMPLETE
                 Select Operator
-                  expressions: _col0 (type: timestamp), _col1 (type: string), power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5) (type: double), (power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5) * 10.175D) (type: double), (- power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5)) (type: double), (_col5 / _col6) (type: double), (- power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5)) (type: double), (-26.28D - power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5)) (type: double), _col7 (type: bigint), (- _col7) (type: bigint), ((-26.28D - power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5)) * (- power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5))) (type: double), _col8 (type: tinyint), (((-26.28D - power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5)) * (- power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5))) * UDFToDouble((- _col7))) (type: double), (- (power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5) * 10.175D)) (type: do
 uble), ((_col9 - ((_col10 * _col10) / _col6)) / CASE WHEN ((_col6 = 1L)) THEN (null) ELSE ((_col6 - 1)) END) (type: double), (((_col9 - ((_col10 * _col10) / _col6)) / CASE WHEN ((_col6 = 1L)) THEN (null) ELSE ((_col6 - 1)) END) + (((-26.28D - power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5)) * (- power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5))) * UDFToDouble((- _col7)))) (type: double), (- (- power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5))) (type: double), (UDFToDouble((- _col7)) / power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5)) (type: double), ((_col11 - ((_col12 * _col12) / _col13)) / _col13) (type: double), (10.175D / (_col5 / _col6)) (type: double), (_col14 / _col4) (type: double), ((_col11 - ((_col12 * _col12) / _col13)) / CASE WHEN ((_col13 = 1L)) THEN (null) ELSE ((_col13 - 1)) END) (type: double), ((((_col9 - ((_col10 * _col10) / _col6)) / CASE WHEN ((_col6 = 1L)) THEN (null) ELSE ((_col6 - 1)) END) + (((-26.28D - power(((_col2 - ((_
 col3 * _col3) / _col4)) / _col4), 0.5)) * (- power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5))) * UDFToDouble((- _col7)))) - (((-26.28D - power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5)) * (- power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5))) * UDFToDouble((- _col7)))) (type: double), (- (- (power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5) * 10.175D))) (type: double), (_col15 / _col13) (type: double), (((((_col9 - ((_col10 * _col10) / _col6)) / CASE WHEN ((_col6 = 1L)) THEN (null) ELSE ((_col6 - 1)) END) + (((-26.28D - power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5)) * (- power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5))) * UDFToDouble((- _col7)))) - (((-26.28D - power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5)) * (- power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5))) * UDFToDouble((- _col7)))) * 10.175D) (type: double), (10.175D % (10.175D / (_col5 / _col6))) (type: double), (- _col8) (type: tinyint), _col16 (
 type: double), ((_col9 - ((_col10 * _col10) / _col6)) / _col6) (type: double), (- ((-26.28D - power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5)) * (- power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5)))) (type: double), ((- power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5)) % (_col15 / _col13)) (type: double), (-26.28 / CAST( (- _col8) AS decimal(3,0))) (type: decimal(8,6)), power(((_col17 - ((_col18 * _col18) / _col19)) / _col19), 0.5) (type: double), _col14 (type: bigint), ((((_col9 - ((_col10 * _col10) / _col6)) / CASE WHEN ((_col6 = 1L)) THEN (null) ELSE ((_col6 - 1)) END) + (((-26.28D - power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5)) * (- power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5))) * UDFToDouble((- _col7)))) / ((_col11 - ((_col12 * _col12) / _col13)) / _col13)) (type: double), (- (- _col7)) (type: bigint), _col7 (type: bigint), ((((_col9 - ((_col10 * _col10) / _col6)) / CASE WHEN ((_col6 = 1L)) THEN (null) ELSE ((_col6 - 1)) END
 ) + (((-26.28D - power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5)) * (- power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5))) * UDFToDouble((- _col7)))) % -26.28D) (type: double)
+                  expressions: _col0 (type: timestamp), _col1 (type: string), power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5) (type: double), (power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5) * 10.175D) (type: double), (- power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5)) (type: double), (UDFToDouble(_col5) / _col6) (type: double), (- power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5)) (type: double), (-26.28D - power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5)) (type: double), _col7 (type: bigint), (- _col7) (type: bigint), ((-26.28D - power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5)) * (- power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5))) (type: double), _col8 (type: tinyint), (((-26.28D - power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5)) * (- power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5))) * UDFToDouble((- _col7))) (type: double), (- (power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5) * 10.175
 D)) (type: double), ((_col9 - ((_col10 * _col10) / _col6)) / CASE WHEN ((_col6 = 1L)) THEN (null) ELSE ((_col6 - 1)) END) (type: double), (((_col9 - ((_col10 * _col10) / _col6)) / CASE WHEN ((_col6 = 1L)) THEN (null) ELSE ((_col6 - 1)) END) + (((-26.28D - power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5)) * (- power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5))) * UDFToDouble((- _col7)))) (type: double), (- (- power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5))) (type: double), (UDFToDouble((- _col7)) / power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5)) (type: double), ((_col11 - ((_col12 * _col12) / _col13)) / _col13) (type: double), (10.175D / (UDFToDouble(_col5) / _col6)) (type: double), (UDFToDouble(_col14) / _col4) (type: double), ((_col11 - ((_col12 * _col12) / _col13)) / CASE WHEN ((_col13 = 1L)) THEN (null) ELSE ((_col13 - 1)) END) (type: double), ((((_col9 - ((_col10 * _col10) / _col6)) / CASE WHEN ((_col6 = 1L)) THEN (null) ELSE ((_col6 - 1)) 
 END) + (((-26.28D - power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5)) * (- power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5))) * UDFToDouble((- _col7)))) - (((-26.28D - power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5)) * (- power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5))) * UDFToDouble((- _col7)))) (type: double), (- (- (power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5) * 10.175D))) (type: double), (_col15 / _col13) (type: double), (((((_col9 - ((_col10 * _col10) / _col6)) / CASE WHEN ((_col6 = 1L)) THEN (null) ELSE ((_col6 - 1)) END) + (((-26.28D - power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5)) * (- power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5))) * UDFToDouble((- _col7)))) - (((-26.28D - power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5)) * (- power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5))) * UDFToDouble((- _col7)))) * 10.175D) (type: double), (10.175D % (10.175D / (UDFToDouble(_col5) / _col6)))
  (type: double), (- _col8) (type: tinyint), _col16 (type: double), ((_col9 - ((_col10 * _col10) / _col6)) / _col6) (type: double), (- ((-26.28D - power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5)) * (- power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5)))) (type: double), ((- power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5)) % (_col15 / _col13)) (type: double), (-26.28 / CAST( (- _col8) AS decimal(3,0))) (type: decimal(8,6)), power(((_col17 - ((_col18 * _col18) / _col19)) / _col19), 0.5) (type: double), _col14 (type: bigint), ((((_col9 - ((_col10 * _col10) / _col6)) / CASE WHEN ((_col6 = 1L)) THEN (null) ELSE ((_col6 - 1)) END) + (((-26.28D - power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5)) * (- power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5))) * UDFToDouble((- _col7)))) / ((_col11 - ((_col12 * _col12) / _col13)) / _col13)) (type: double), (- (- _col7)) (type: bigint), _col7 (type: bigint), ((((_col9 - ((_col10 * _col10) / _col6)) / CASE WH
 EN ((_col6 = 1L)) THEN (null) ELSE ((_col6 - 1)) END) + (((-26.28D - power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5)) * (- power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5))) * UDFToDouble((- _col7)))) % -26.28D) (type: double)
                   outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13, _col14, _col15, _col16, _col17, _col18, _col19, _col20, _col21, _col22, _col23, _col24, _col25, _col26, _col27, _col28, _col29, _col30, _col31, _col32, _col33, _col34, _col35, _col36, _col37, _col38
                   Select Vectorization:
                       className: VectorSelectOperator
                       native: true
-                      projectedOutputColumnNums: [0, 1, 20, 22, 23, 21, 25, 26, 7, 27, 24, 8, 30, 28, 32, 29, 35, 40, 39, 41, 38, 43, 46, 49, 42, 50, 51, 53, 16, 55, 56, 58, 61, 54, 14, 62, 67, 7, 65]
-                      selectExpressions: FuncPowerDoubleToDouble(col 21:double)(children: DoubleColDivideLongColumn(col 20:double, col 4:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 21:double)(children: DoubleColDivideLongColumn(col 20:double, col 4:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 20:double) -> 21:double) -> 20:double) -> 21:double) -> 20:double, DoubleColMultiplyDoubleScalar(col 21:double, val 10.175)(children: FuncPowerDoubleToDouble(col 22:double)(children: DoubleColDivideLongColumn(col 21:double, col 4:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 22:double)(children: DoubleColDivideLongColumn(col 21:double, col 4:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 21:double) -> 22:double) -> 21:double) -> 22:double) -> 21:double) -> 22:double, DoubleColUnaryMinus(col 21:double)(children: FuncPowerDoubleToDouble(col 23:double)(children: DoubleColDivideLongColumn(col
  21:double, col 4:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 23:double)(children: DoubleColDivideLongColumn(col 21:double, col 4:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 21:double) -> 23:double) -> 21:double) -> 23:double) -> 21:double) -> 23:double, LongColDivideLongColumn(col 5:bigint, col 6:bigint) -> 21:double, DoubleColUnaryMinus(col 24:double)(children: FuncPowerDoubleToDouble(col 25:double)(children: DoubleColDivideLongColumn(col 24:double, col 4:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 25:double)(children: DoubleColDivideLongColumn(col 24:double, col 4:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 24:double) -> 25:double) -> 24:double) -> 25:double) -> 24:double) -> 25:double, DoubleScalarSubtractDoubleColumn(val -26.28, col 24:double)(children: FuncPowerDoubleToDouble(col 26:double)(children: DoubleColDivideLongColumn(col 24:double, col 4:bigint)(children: 
 DoubleColSubtractDoubleColumn(col 2:double, col 26:double)(children: DoubleColDivideLongColumn(col 24:double, col 4:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 24:double) -> 26:double) -> 24:double) -> 26:double) -> 24:double) -> 26:double, LongColUnaryMinus(col 7:bigint) -> 27:bigint, DoubleColMultiplyDoubleColumn(col 28:double, col 29:double)(children: DoubleScalarSubtractDoubleColumn(val -26.28, col 24:double)(children: FuncPowerDoubleToDouble(col 28:double)(children: DoubleColDivideLongColumn(col 24:double, col 4:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 28:double)(children: DoubleColDivideLongColumn(col 24:double, col 4:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 24:double) -> 28:double) -> 24:double) -> 28:double) -> 24:double) -> 28:double, DoubleColUnaryMinus(col 24:double)(children: FuncPowerDoubleToDouble(col 29:double)(children: DoubleColDivideLongColumn(col 24:double, col 4:bigi
 nt)(children: DoubleColSubtractDoubleColumn(col 2:double, col 29:double)(children: DoubleColDivideLongColumn(col 24:double, col 4:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 24:double) -> 29:double) -> 24:double) -> 29:double) -> 24:double) -> 29:double) -> 24:double, DoubleColMultiplyDoubleColumn(col 28:double, col 29:double)(children: DoubleColMultiplyDoubleColumn(col 29:double, col 30:double)(children: DoubleScalarSubtractDoubleColumn(val -26.28, col 28:double)(children: FuncPowerDoubleToDouble(col 29:double)(children: DoubleColDivideLongColumn(col 28:double, col 4:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 29:double)(children: DoubleColDivideLongColumn(col 28:double, col 4:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 28:double) -> 29:double) -> 28:double) -> 29:double) -> 28:double) -> 29:double, DoubleColUnaryMinus(col 28:double)(children: FuncPowerDoubleToDouble(col 30:double)(children:
  DoubleColDivideLongColumn(col 28:double, col 4:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 30:double)(children: DoubleColDivideLongColumn(col 28:double, col 4:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 28:double) -> 30:double) -> 28:double) -> 30:double) -> 28:double) -> 30:double) -> 28:double, CastLongToDouble(col 31:bigint)(children: LongColUnaryMinus(col 7:bigint) -> 31:bigint) -> 29:double) -> 30:double, DoubleColUnaryMinus(col 29:double)(children: DoubleColMultiplyDoubleScalar(col 28:double, val 10.175)(children: FuncPowerDoubleToDouble(col 29:double)(children: DoubleColDivideLongColumn(col 28:double, col 4:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 29:double)(children: DoubleColDivideLongColumn(col 28:double, col 4:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 28:double) -> 29:double) -> 28:double) -> 29:double) -> 28:double) -> 29:double) -> 28:double, DoubleCol
 DivideLongColumn(col 29:double, col 34:bigint)(children: DoubleColSubtractDoubleColumn(col 9:double, col 32:double)(children: DoubleColDivideLongColumn(col 29:double, col 6:bigint)(children: DoubleColMultiplyDoubleColumn(col 10:double, col 10:double) -> 29:double) -> 32:double) -> 29:double, IfExprNullCondExpr(col 31:boolean, null, col 33:bigint)(children: LongColEqualLongScalar(col 6:bigint, val 1) -> 31:boolean, LongColSubtractLongScalar(col 6:bigint, val 1) -> 33:bigint) -> 34:bigint) -> 32:double, DoubleColAddDoubleColumn(col 35:double, col 39:double)(children: DoubleColDivideLongColumn(col 29:double, col 37:bigint)(children: DoubleColSubtractDoubleColumn(col 9:double, col 35:double)(children: DoubleColDivideLongColumn(col 29:double, col 6:bigint)(children: DoubleColMultiplyDoubleColumn(col 10:double, col 10:double) -> 29:double) -> 35:double) -> 29:double, IfExprNullCondExpr(col 34:boolean, null, col 36:bigint)(children: LongColEqualLongScalar(col 6:bigint, val 1) -> 34:boolean
 , LongColSubtractLongScalar(col 6:bigint, val 1) -> 36:bigint) -> 37:bigint) -> 35:double, DoubleColMultiplyDoubleColumn(col 29:double, col 38:double)(children: DoubleColMultiplyDoubleColumn(col 38:double, col 39:double)(children: DoubleScalarSubtractDoubleColumn(val -26.28, col 29:double)(children: FuncPowerDoubleToDouble(col 38:double)(children: DoubleColDivideLongColumn(col 29:double, col 4:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 38:double)(children: DoubleColDivideLongColumn(col 29:double, col 4:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 29:double) -> 38:double) -> 29:double) -> 38:double) -> 29:double) -> 38:double, DoubleColUnaryMinus(col 29:double)(children: FuncPowerDoubleToDouble(col 39:double)(children: DoubleColDivideLongColumn(col 29:double, col 4:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 39:double)(children: DoubleColDivideLongColumn(col 29:double, col 4:bigint)(children: DoubleColMult
 iplyDoubleColumn(col 3:double, col 3:double) -> 29:double) -> 39:double) -> 29:double) -> 39:double) -> 29:double) -> 39:double) -> 29:double, CastLongToDouble(col 37:bigint)(children: LongColUnaryMinus(col 7:bigint) -> 37:bigint) -> 38:double) -> 39:double) -> 29:double, DoubleColUnaryMinus(col 38:double)(children: DoubleColUnaryMinus(col 35:double)(children: FuncPowerDoubleToDouble(col 38:double)(children: DoubleColDivideLongColumn(col 35:double, col 4:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 38:double)(children: DoubleColDivideLongColumn(col 35:double, col 4:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 35:double) -> 38:double) -> 35:double) -> 38:double) -> 35:double) -> 38:double) -> 35:double, DoubleColDivideDoubleColumn(col 38:double, col 39:double)(children: CastLongToDouble(col 37:bigint)(children: LongColUnaryMinus(col 7:bigint) -> 37:bigint) -> 38:double, FuncPowerDoubleToDouble(col 40:double)(children: DoubleColDi
 videLongColumn(col 39:double, col 4:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 40:double)(children: DoubleColDivideLongColumn(col 39:double, col 4:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 39:double) -> 40:double) -> 39:double) -> 40:double) -> 39:double) -> 40:double, DoubleColDivideLongColumn(col 38:double, col 13:bigint)(children: DoubleColSubtractDoubleColumn(col 11:double, col 39:double)(children: DoubleColDivideLongColumn(col 38:double, col 13:bigint)(children: DoubleColMultiplyDoubleColumn(col 12:double, col 12:double) -> 38:double) -> 39:double) -> 38:double) -> 39:double, DoubleScalarDivideDoubleColumn(val 10.175, col 38:double)(children: LongColDivideLongColumn(col 5:bigint, col 6:bigint) -> 38:double) -> 41:double, LongColDivideLongColumn(col 14:bigint, col 4:bigint) -> 38:double, DoubleColDivideLongColumn(col 42:double, col 45:bigint)(children: DoubleColSubtractDoubleColumn(col 11:double, col 43:double)(children
 : DoubleColDivideLongColumn(col 42:double, col 13:bigint)(children: DoubleColMultiplyDoubleColumn(col 12:double, col 12:double) -> 42:double) -> 43:double) -> 42:double, IfExprNullCondExpr(col 37:boolean, null, col 44:bigint)(children: LongColEqualLongScalar(col 13:bigint, val 1) -> 37:boolean, LongColSubtractLongScalar(col 13:bigint, val 1) -> 44:bigint) -> 45:bigint) -> 43:double, DoubleColSubtractDoubleColumn(col 42:double, col 50:double)(children: DoubleColAddDoubleColumn(col 46:double, col 50:double)(children: DoubleColDivideLongColumn(col 42:double, col 48:bigint)(children: DoubleColSubtractDoubleColumn(col 9:double, col 46:double)(children: DoubleColDivideLongColumn(col 42:double, col 6:bigint)(children: DoubleColMultiplyDoubleColumn(col 10:double, col 10:double) -> 42:double) -> 46:double) -> 42:double, IfExprNullCondExpr(col 45:boolean, null, col 47:bigint)(children: LongColEqualLongScalar(col 6:bigint, val 1) -> 45:boolean, LongColSubtractLongScalar(col 6:bigint, val 1) ->
  47:bigint) -> 48:bigint) -> 46:double, DoubleColMultiplyDoubleColumn(col 42:double, col 49:double)(children: DoubleColMultiplyDoubleColumn(col 49:double, col 50:double)(children: DoubleScalarSubtractDoubleColumn(val -26.28, col 42:double)(children: FuncPowerDoubleToDouble(col 49:double)(children: DoubleColDivideLongColumn(col 42:double, col 4:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 49:double)(children: DoubleColDivideLongColumn(col 42:double, col 4:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 42:double) -> 49:double) -> 42:double) -> 49:double) -> 42:double) -> 49:double, DoubleColUnaryMinus(col 42:double)(children: FuncPowerDoubleToDouble(col 50:double)(children: DoubleColDivideLongColumn(col 42:double, col 4:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 50:double)(children: DoubleColDivideLongColumn(col 42:double, col 4:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 42:
 double) -> 50:double) -> 42:double) -> 50:double) -> 42:double) -> 50:double) -> 42:double, CastLongToDouble(col 48:bigint)(children: LongColUnaryMinus(col 7:bigint) -> 48:bigint) -> 49:double) -> 50:double) -> 42:double, DoubleColMultiplyDoubleColumn(col 46:double, col 49:double)(children: DoubleColMultiplyDoubleColumn(col 49:double, col 50:double)(children: DoubleScalarSubtractDoubleColumn(val -26.28, col 46:double)(children: FuncPowerDoubleToDouble(col 49:double)(child

<TRUNCATED>

[2/8] hive git commit: HIVE-20391: HiveAggregateReduceFunctionsRule may infer wrong return type when decomposing aggregate function (Jesus Camacho Rodriguez, reviewed by Ashutosh Chauhan)

Posted by jc...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/649d7c12/ql/src/test/results/clientpositive/spark/vectorization_short_regress.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/vectorization_short_regress.q.out b/ql/src/test/results/clientpositive/spark/vectorization_short_regress.q.out
index d98be43..1b04155 100644
--- a/ql/src/test/results/clientpositive/spark/vectorization_short_regress.q.out
+++ b/ql/src/test/results/clientpositive/spark/vectorization_short_regress.q.out
@@ -163,13 +163,13 @@ STAGE PLANS:
                 outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10
                 Statistics: Num rows: 1 Data size: 84 Basic stats: COMPLETE Column stats: NONE
                 Select Operator
-                  expressions: (_col0 / _col1) (type: double), ((_col0 / _col1) + -3728.0D) (type: double), (- ((_col0 / _col1) + -3728.0D)) (type: double), (- (- ((_col0 / _col1) + -3728.0D))) (type: double), ((- (- ((_col0 / _col1) + -3728.0D))) * ((_col0 / _col1) + -3728.0D)) (type: double), _col2 (type: double), (- (_col0 / _col1)) (type: double), power(((_col3 - ((_col4 * _col4) / _col1)) / _col1), 0.5) (type: double), (((- (- ((_col0 / _col1) + -3728.0D))) * ((_col0 / _col1) + -3728.0D)) * (- (- ((_col0 / _col1) + -3728.0D)))) (type: double), power(((_col5 - ((_col6 * _col6) / _col7)) / CASE WHEN ((_col7 = 1L)) THEN (null) ELSE ((_col7 - 1)) END), 0.5) (type: double), (- power(((_col3 - ((_col4 * _col4) / _col1)) / _col1), 0.5)) (type: double), (power(((_col3 - ((_col4 * _col4) / _col1)) / _col1), 0.5) - (- (- ((_col0 / _col1) + -3728.0D)))) (type: double), ((power(((_col3 - ((_col4 * _col4) / _col1)) / _col1), 0.5) - (- (- ((_col0 / _col1) + -3728.0D)))) * power(((_col3 - ((_
 col4 * _col4) / _col1)) / _col1), 0.5)) (type: double), ((_col3 - ((_col4 * _col4) / _col1)) / CASE WHEN ((_col1 = 1L)) THEN (null) ELSE ((_col1 - 1)) END) (type: double), (_col8 / _col9) (type: double), (10.175D - ((_col3 - ((_col4 * _col4) / _col1)) / CASE WHEN ((_col1 = 1L)) THEN (null) ELSE ((_col1 - 1)) END)) (type: double), (- (10.175D - ((_col3 - ((_col4 * _col4) / _col1)) / CASE WHEN ((_col1 = 1L)) THEN (null) ELSE ((_col1 - 1)) END))) (type: double), ((- power(((_col3 - ((_col4 * _col4) / _col1)) / _col1), 0.5)) / -563.0D) (type: double), power(((_col3 - ((_col4 * _col4) / _col1)) / CASE WHEN ((_col1 = 1L)) THEN (null) ELSE ((_col1 - 1)) END), 0.5) (type: double), (- ((- power(((_col3 - ((_col4 * _col4) / _col1)) / _col1), 0.5)) / -563.0D)) (type: double), ((_col0 / _col1) / _col2) (type: double), _col10 (type: tinyint), _col7 (type: bigint), (UDFToDouble(_col10) / ((- power(((_col3 - ((_col4 * _col4) / _col1)) / _col1), 0.5)) / -563.0D)) (type: double), (- ((_col0 / _col1)
  / _col2)) (type: double)
+                  expressions: (UDFToDouble(_col0) / _col1) (type: double), ((UDFToDouble(_col0) / _col1) + -3728.0D) (type: double), (- ((UDFToDouble(_col0) / _col1) + -3728.0D)) (type: double), (- (- ((UDFToDouble(_col0) / _col1) + -3728.0D))) (type: double), ((- (- ((UDFToDouble(_col0) / _col1) + -3728.0D))) * ((UDFToDouble(_col0) / _col1) + -3728.0D)) (type: double), _col2 (type: double), (- (UDFToDouble(_col0) / _col1)) (type: double), power(((_col3 - ((_col4 * _col4) / _col1)) / _col1), 0.5) (type: double), (((- (- ((UDFToDouble(_col0) / _col1) + -3728.0D))) * ((UDFToDouble(_col0) / _col1) + -3728.0D)) * (- (- ((UDFToDouble(_col0) / _col1) + -3728.0D)))) (type: double), power(((_col5 - ((_col6 * _col6) / _col7)) / CASE WHEN ((_col7 = 1L)) THEN (null) ELSE ((_col7 - 1)) END), 0.5) (type: double), (- power(((_col3 - ((_col4 * _col4) / _col1)) / _col1), 0.5)) (type: double), (power(((_col3 - ((_col4 * _col4) / _col1)) / _col1), 0.5) - (- (- ((UDFToDouble(_col0) / _col1) + -3728.0
 D)))) (type: double), ((power(((_col3 - ((_col4 * _col4) / _col1)) / _col1), 0.5) - (- (- ((UDFToDouble(_col0) / _col1) + -3728.0D)))) * power(((_col3 - ((_col4 * _col4) / _col1)) / _col1), 0.5)) (type: double), ((_col3 - ((_col4 * _col4) / _col1)) / CASE WHEN ((_col1 = 1L)) THEN (null) ELSE ((_col1 - 1)) END) (type: double), (_col8 / _col9) (type: double), (10.175D - ((_col3 - ((_col4 * _col4) / _col1)) / CASE WHEN ((_col1 = 1L)) THEN (null) ELSE ((_col1 - 1)) END)) (type: double), (- (10.175D - ((_col3 - ((_col4 * _col4) / _col1)) / CASE WHEN ((_col1 = 1L)) THEN (null) ELSE ((_col1 - 1)) END))) (type: double), ((- power(((_col3 - ((_col4 * _col4) / _col1)) / _col1), 0.5)) / -563.0D) (type: double), power(((_col3 - ((_col4 * _col4) / _col1)) / CASE WHEN ((_col1 = 1L)) THEN (null) ELSE ((_col1 - 1)) END), 0.5) (type: double), (- ((- power(((_col3 - ((_col4 * _col4) / _col1)) / _col1), 0.5)) / -563.0D)) (type: double), ((UDFToDouble(_col0) / _col1) / _col2) (type: double), _col10 (ty
 pe: tinyint), _col7 (type: bigint), (UDFToDouble(_col10) / ((- power(((_col3 - ((_col4 * _col4) / _col1)) / _col1), 0.5)) / -563.0D)) (type: double), (- ((UDFToDouble(_col0) / _col1) / _col2)) (type: double)
                   outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13, _col14, _col15, _col16, _col17, _col18, _col19, _col20, _col21, _col22, _col23, _col24
                   Select Vectorization:
                       className: VectorSelectOperator
                       native: true
-                      projectedOutputColumnNums: [11, 13, 12, 15, 14, 2, 17, 16, 19, 18, 24, 25, 27, 26, 20, 30, 34, 31, 37, 41, 42, 10, 7, 44, 38]
-                      selectExpressions: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 11:double, DoubleColAddDoubleScalar(col 12:double, val -3728.0)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 12:double) -> 13:double, DoubleColUnaryMinus(col 14:double)(children: DoubleColAddDoubleScalar(col 12:double, val -3728.0)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 12:double) -> 14:double) -> 12:double, DoubleColUnaryMinus(col 14:double)(children: DoubleColUnaryMinus(col 15:double)(children: DoubleColAddDoubleScalar(col 14:double, val -3728.0)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 14:double) -> 15:double) -> 14:double) -> 15:double, DoubleColMultiplyDoubleColumn(col 16:double, col 17:double)(children: DoubleColUnaryMinus(col 14:double)(children: DoubleColUnaryMinus(col 16:double)(children: DoubleColAddDoubleScalar(col 14:double, val -3728.0)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 14:dou
 ble) -> 16:double) -> 14:double) -> 16:double, DoubleColAddDoubleScalar(col 14:double, val -3728.0)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 14:double) -> 17:double) -> 14:double, DoubleColUnaryMinus(col 16:double)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 16:double) -> 17:double, FuncPowerDoubleToDouble(col 18:double)(children: DoubleColDivideLongColumn(col 16:double, col 1:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 18:double)(children: DoubleColDivideLongColumn(col 16:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 16:double) -> 18:double) -> 16:double) -> 18:double) -> 16:double, DoubleColMultiplyDoubleColumn(col 18:double, col 20:double)(children: DoubleColMultiplyDoubleColumn(col 19:double, col 20:double)(children: DoubleColUnaryMinus(col 18:double)(children: DoubleColUnaryMinus(col 19:double)(children: DoubleColAddDoubleScalar(col 18:double, val -3728.0)(children:
  LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 18:double) -> 19:double) -> 18:double) -> 19:double, DoubleColAddDoubleScalar(col 18:double, val -3728.0)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 18:double) -> 20:double) -> 18:double, DoubleColUnaryMinus(col 19:double)(children: DoubleColUnaryMinus(col 20:double)(children: DoubleColAddDoubleScalar(col 19:double, val -3728.0)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 19:double) -> 20:double) -> 19:double) -> 20:double) -> 19:double, FuncPowerDoubleToDouble(col 20:double)(children: DoubleColDivideLongColumn(col 18:double, col 23:bigint)(children: DoubleColSubtractDoubleColumn(col 5:double, col 20:double)(children: DoubleColDivideLongColumn(col 18:double, col 7:bigint)(children: DoubleColMultiplyDoubleColumn(col 6:double, col 6:double) -> 18:double) -> 20:double) -> 18:double, IfExprNullCondExpr(col 21:boolean, null, col 22:bigint)(children: LongColEqualLongScalar(col 7:bigint, val 
 1) -> 21:boolean, LongColSubtractLongScalar(col 7:bigint, val 1) -> 22:bigint) -> 23:bigint) -> 20:double) -> 18:double, DoubleColUnaryMinus(col 20:double)(children: FuncPowerDoubleToDouble(col 24:double)(children: DoubleColDivideLongColumn(col 20:double, col 1:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 24:double)(children: DoubleColDivideLongColumn(col 20:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 20:double) -> 24:double) -> 20:double) -> 24:double) -> 20:double) -> 24:double, DoubleColSubtractDoubleColumn(col 20:double, col 26:double)(children: FuncPowerDoubleToDouble(col 25:double)(children: DoubleColDivideLongColumn(col 20:double, col 1:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 25:double)(children: DoubleColDivideLongColumn(col 20:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 20:double) -> 25:double) -> 20:double) -> 25:double) -> 20:dou
 ble, DoubleColUnaryMinus(col 25:double)(children: DoubleColUnaryMinus(col 26:double)(children: DoubleColAddDoubleScalar(col 25:double, val -3728.0)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 25:double) -> 26:double) -> 25:double) -> 26:double) -> 25:double, DoubleColMultiplyDoubleColumn(col 26:double, col 20:double)(children: DoubleColSubtractDoubleColumn(col 20:double, col 27:double)(children: FuncPowerDoubleToDouble(col 26:double)(children: DoubleColDivideLongColumn(col 20:double, col 1:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 26:double)(children: DoubleColDivideLongColumn(col 20:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 20:double) -> 26:double) -> 20:double) -> 26:double) -> 20:double, DoubleColUnaryMinus(col 26:double)(children: DoubleColUnaryMinus(col 27:double)(children: DoubleColAddDoubleScalar(col 26:double, val -3728.0)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigi
 nt) -> 26:double) -> 27:double) -> 26:double) -> 27:double) -> 26:double, FuncPowerDoubleToDouble(col 27:double)(children: DoubleColDivideLongColumn(col 20:double, col 1:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 27:double)(children: DoubleColDivideLongColumn(col 20:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 20:double) -> 27:double) -> 20:double) -> 27:double) -> 20:double) -> 27:double, DoubleColDivideLongColumn(col 20:double, col 29:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 26:double)(children: DoubleColDivideLongColumn(col 20:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 20:double) -> 26:double) -> 20:double, IfExprNullCondExpr(col 23:boolean, null, col 28:bigint)(children: LongColEqualLongScalar(col 1:bigint, val 1) -> 23:boolean, LongColSubtractLongScalar(col 1:bigint, val 1) -> 28:bigint) -> 29:bigint) -> 26:double, DoubleColDivideLong
 Column(col 8:double, col 9:bigint) -> 20:double, DoubleScalarSubtractDoubleColumn(val 10.175, col 31:double)(children: DoubleColDivideLongColumn(col 30:double, col 33:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 31:double)(children: DoubleColDivideLongColumn(col 30:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 30:double) -> 31:double) -> 30:double, IfExprNullCondExpr(col 29:boolean, null, col 32:bigint)(children: LongColEqualLongScalar(col 1:bigint, val 1) -> 29:boolean, LongColSubtractLongScalar(col 1:bigint, val 1) -> 32:bigint) -> 33:bigint) -> 31:double) -> 30:double, DoubleColUnaryMinus(col 31:double)(children: DoubleScalarSubtractDoubleColumn(val 10.175, col 34:double)(children: DoubleColDivideLongColumn(col 31:double, col 36:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 34:double)(children: DoubleColDivideLongColumn(col 31:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 4
 :double, col 4:double) -> 31:double) -> 34:double) -> 31:double, IfExprNullCondExpr(col 33:boolean, null, col 35:bigint)(children: LongColEqualLongScalar(col 1:bigint, val 1) -> 33:boolean, LongColSubtractLongScalar(col 1:bigint, val 1) -> 35:bigint) -> 36:bigint) -> 34:double) -> 31:double) -> 34:double, DoubleColDivideDoubleScalar(col 37:double, val -563.0)(children: DoubleColUnaryMinus(col 31:double)(children: FuncPowerDoubleToDouble(col 37:double)(children: DoubleColDivideLongColumn(col 31:double, col 1:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 37:double)(children: DoubleColDivideLongColumn(col 31:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 31:double) -> 37:double) -> 31:double) -> 37:double) -> 31:double) -> 37:double) -> 31:double, FuncPowerDoubleToDouble(col 38:double)(children: DoubleColDivideLongColumn(col 37:double, col 40:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 38:double)(ch
 ildren: DoubleColDivideLongColumn(col 37:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 37:double) -> 38:double) -> 37:double, IfExprNullCondExpr(col 36:boolean, null, col 39:bigint)(children: LongColEqualLongScalar(col 1:bigint, val 1) -> 36:boolean, LongColSubtractLongScalar(col 1:bigint, val 1) -> 39:bigint) -> 40:bigint) -> 38:double) -> 37:double, DoubleColUnaryMinus(col 38:double)(children: DoubleColDivideDoubleScalar(col 41:double, val -563.0)(children: DoubleColUnaryMinus(col 38:double)(children: FuncPowerDoubleToDouble(col 41:double)(children: DoubleColDivideLongColumn(col 38:double, col 1:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 41:double)(children: DoubleColDivideLongColumn(col 38:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 38:double) -> 41:double) -> 38:double) -> 41:double) -> 38:double) -> 41:double) -> 38:double) -> 41:double, DoubleColDivideDoubleCo
 lumn(col 38:double, col 2:double)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 38:double) -> 42:double, DoubleColDivideDoubleColumn(col 38:double, col 43:double)(children: CastLongToDouble(col 10:tinyint) -> 38:double, DoubleColDivideDoubleScalar(col 44:double, val -563.0)(children: DoubleColUnaryMinus(col 43:double)(children: FuncPowerDoubleToDouble(col 44:double)(children: DoubleColDivideLongColumn(col 43:double, col 1:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 44:double)(children: DoubleColDivideLongColumn(col 43:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 43:double) -> 44:double) -> 43:double) -> 44:double) -> 43:double) -> 44:double) -> 43:double) -> 44:double, DoubleColUnaryMinus(col 43:double)(children: DoubleColDivideDoubleColumn(col 38:double, col 2:double)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 38:double) -> 43:double) -> 38:double
+                      projectedOutputColumnNums: [12, 11, 14, 13, 17, 2, 15, 16, 19, 18, 24, 26, 25, 27, 20, 30, 34, 31, 37, 41, 38, 10, 7, 44, 43]
+                      selectExpressions: DoubleColDivideLongColumn(col 11:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 11:double) -> 12:double, DoubleColAddDoubleScalar(col 13:double, val -3728.0)(children: DoubleColDivideLongColumn(col 11:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 11:double) -> 13:double) -> 11:double, DoubleColUnaryMinus(col 13:double)(children: DoubleColAddDoubleScalar(col 14:double, val -3728.0)(children: DoubleColDivideLongColumn(col 13:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 13:double) -> 14:double) -> 13:double) -> 14:double, DoubleColUnaryMinus(col 15:double)(children: DoubleColUnaryMinus(col 13:double)(children: DoubleColAddDoubleScalar(col 15:double, val -3728.0)(children: DoubleColDivideLongColumn(col 13:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 13:double) -> 15:double) -> 13:double) -> 15:double) -> 13:double, DoubleColMultiplyDoubleColumn(col 15:double, col 16:
 double)(children: DoubleColUnaryMinus(col 16:double)(children: DoubleColUnaryMinus(col 15:double)(children: DoubleColAddDoubleScalar(col 16:double, val -3728.0)(children: DoubleColDivideLongColumn(col 15:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 15:double) -> 16:double) -> 15:double) -> 16:double) -> 15:double, DoubleColAddDoubleScalar(col 17:double, val -3728.0)(children: DoubleColDivideLongColumn(col 16:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 16:double) -> 17:double) -> 16:double) -> 17:double, DoubleColUnaryMinus(col 16:double)(children: DoubleColDivideLongColumn(col 15:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 15:double) -> 16:double) -> 15:double, FuncPowerDoubleToDouble(col 18:double)(children: DoubleColDivideLongColumn(col 16:double, col 1:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 18:double)(children: DoubleColDivideLongColumn(col 16:double, col 1:bigint)(children: DoubleColMulti
 plyDoubleColumn(col 4:double, col 4:double) -> 16:double) -> 18:double) -> 16:double) -> 18:double) -> 16:double, DoubleColMultiplyDoubleColumn(col 20:double, col 18:double)(children: DoubleColMultiplyDoubleColumn(col 18:double, col 19:double)(children: DoubleColUnaryMinus(col 19:double)(children: DoubleColUnaryMinus(col 18:double)(children: DoubleColAddDoubleScalar(col 19:double, val -3728.0)(children: DoubleColDivideLongColumn(col 18:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 18:double) -> 19:double) -> 18:double) -> 19:double) -> 18:double, DoubleColAddDoubleScalar(col 20:double, val -3728.0)(children: DoubleColDivideLongColumn(col 19:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 19:double) -> 20:double) -> 19:double) -> 20:double, DoubleColUnaryMinus(col 19:double)(children: DoubleColUnaryMinus(col 18:double)(children: DoubleColAddDoubleScalar(col 19:double, val -3728.0)(children: DoubleColDivideLongColumn(col 18:double, col 1:bigint)(c
 hildren: CastLongToDouble(col 0:bigint) -> 18:double) -> 19:double) -> 18:double) -> 19:double) -> 18:double) -> 19:double, FuncPowerDoubleToDouble(col 20:double)(children: DoubleColDivideLongColumn(col 18:double, col 23:bigint)(children: DoubleColSubtractDoubleColumn(col 5:double, col 20:double)(children: DoubleColDivideLongColumn(col 18:double, col 7:bigint)(children: DoubleColMultiplyDoubleColumn(col 6:double, col 6:double) -> 18:double) -> 20:double) -> 18:double, IfExprNullCondExpr(col 21:boolean, null, col 22:bigint)(children: LongColEqualLongScalar(col 7:bigint, val 1) -> 21:boolean, LongColSubtractLongScalar(col 7:bigint, val 1) -> 22:bigint) -> 23:bigint) -> 20:double) -> 18:double, DoubleColUnaryMinus(col 20:double)(children: FuncPowerDoubleToDouble(col 24:double)(children: DoubleColDivideLongColumn(col 20:double, col 1:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 24:double)(children: DoubleColDivideLongColumn(col 20:double, col 1:bigint)(children: Dou
 bleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 20:double) -> 24:double) -> 20:double) -> 24:double) -> 20:double) -> 24:double, DoubleColSubtractDoubleColumn(col 20:double, col 25:double)(children: FuncPowerDoubleToDouble(col 25:double)(children: DoubleColDivideLongColumn(col 20:double, col 1:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 25:double)(children: DoubleColDivideLongColumn(col 20:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 20:double) -> 25:double) -> 20:double) -> 25:double) -> 20:double, DoubleColUnaryMinus(col 26:double)(children: DoubleColUnaryMinus(col 25:double)(children: DoubleColAddDoubleScalar(col 26:double, val -3728.0)(children: DoubleColDivideLongColumn(col 25:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 25:double) -> 26:double) -> 25:double) -> 26:double) -> 25:double) -> 26:double, DoubleColMultiplyDoubleColumn(col 27:double, col 20:double)(children: DoubleCol
 SubtractDoubleColumn(col 20:double, col 25:double)(children: FuncPowerDoubleToDouble(col 25:double)(children: DoubleColDivideLongColumn(col 20:double, col 1:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 25:double)(children: DoubleColDivideLongColumn(col 20:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 20:double) -> 25:double) -> 20:double) -> 25:double) -> 20:double, DoubleColUnaryMinus(col 27:double)(children: DoubleColUnaryMinus(col 25:double)(children: DoubleColAddDoubleScalar(col 27:double, val -3728.0)(children: DoubleColDivideLongColumn(col 25:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 25:double) -> 27:double) -> 25:double) -> 27:double) -> 25:double) -> 27:double, FuncPowerDoubleToDouble(col 25:double)(children: DoubleColDivideLongColumn(col 20:double, col 1:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 25:double)(children: DoubleColDivideLongColumn(col 20:double, col
  1:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 20:double) -> 25:double) -> 20:double) -> 25:double) -> 20:double) -> 25:double, DoubleColDivideLongColumn(col 20:double, col 29:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 27:double)(children: DoubleColDivideLongColumn(col 20:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 20:double) -> 27:double) -> 20:double, IfExprNullCondExpr(col 23:boolean, null, col 28:bigint)(children: LongColEqualLongScalar(col 1:bigint, val 1) -> 23:boolean, LongColSubtractLongScalar(col 1:bigint, val 1) -> 28:bigint) -> 29:bigint) -> 27:double, DoubleColDivideLongColumn(col 8:double, col 9:bigint) -> 20:double, DoubleScalarSubtractDoubleColumn(val 10.175, col 31:double)(children: DoubleColDivideLongColumn(col 30:double, col 33:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 31:double)(children: DoubleColDivideLongColumn(col 30:double, col 1:
 bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 30:double) -> 31:double) -> 30:double, IfExprNullCondExpr(col 29:boolean, null, col 32:bigint)(children: LongColEqualLongScalar(col 1:bigint, val 1) -> 29:boolean, LongColSubtractLongScalar(col 1:bigint, val 1) -> 32:bigint) -> 33:bigint) -> 31:double) -> 30:double, DoubleColUnaryMinus(col 31:double)(children: DoubleScalarSubtractDoubleColumn(val 10.175, col 34:double)(children: DoubleColDivideLongColumn(col 31:double, col 36:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 34:double)(children: DoubleColDivideLongColumn(col 31:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 31:double) -> 34:double) -> 31:double, IfExprNullCondExpr(col 33:boolean, null, col 35:bigint)(children: LongColEqualLongScalar(col 1:bigint, val 1) -> 33:boolean, LongColSubtractLongScalar(col 1:bigint, val 1) -> 35:bigint) -> 36:bigint) -> 34:double) -> 31:double) -> 34:do
 uble, DoubleColDivideDoubleScalar(col 37:double, val -563.0)(children: DoubleColUnaryMinus(col 31:double)(children: FuncPowerDoubleToDouble(col 37:double)(children: DoubleColDivideLongColumn(col 31:double, col 1:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 37:double)(children: DoubleColDivideLongColumn(col 31:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 31:double) -> 37:double) -> 31:double) -> 37:double) -> 31:double) -> 37:double) -> 31:double, FuncPowerDoubleToDouble(col 38:double)(children: DoubleColDivideLongColumn(col 37:double, col 40:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 38:double)(children: DoubleColDivideLongColumn(col 37:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 37:double) -> 38:double) -> 37:double, IfExprNullCondExpr(col 36:boolean, null, col 39:bigint)(children: LongColEqualLongScalar(col 1:bigint, val 1) -> 36:boolean, Lon
 gColSubtractLongScalar(col 1:bigint, val 1) -> 39:bigint) -> 40:bigint) -> 38:double) -> 37:double, DoubleColUnaryMinus(col 38:double)(children: DoubleColDivideDoubleScalar(col 41:double, val -563.0)(children: DoubleColUnaryMinus(col 38:double)(children: FuncPowerDoubleToDouble(col 41:double)(children: DoubleColDivideLongColumn(col 38:double, col 1:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 41:double)(children: DoubleColDivideLongColumn(col 38:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 38:double) -> 41:double) -> 38:double) -> 41:double) -> 38:double) -> 41:double) -> 38:double) -> 41:double, DoubleColDivideDoubleColumn(col 42:double, col 2:double)(children: DoubleColDivideLongColumn(col 38:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 38:double) -> 42:double) -> 38:double, DoubleColDivideDoubleColumn(col 42:double, col 43:double)(children: CastLongToDouble(col 10:tinyint) -> 42:double, Doub
 leColDivideDoubleScalar(col 44:double, val -563.0)(children: DoubleColUnaryMinus(col 43:double)(children: FuncPowerDoubleToDouble(col 44:double)(children: DoubleColDivideLongColumn(col 43:double, col 1:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 44:double)(children: DoubleColDivideLongColumn(col 43:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 43:double) -> 44:double) -> 43:double) -> 44:double) -> 43:double) -> 44:double) -> 43:double) -> 44:double, DoubleColUnaryMinus(col 42:double)(children: DoubleColDivideDoubleColumn(col 43:double, col 2:double)(children: DoubleColDivideLongColumn(col 42:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 42:double) -> 43:double) -> 42:double) -> 43:double
                   Statistics: Num rows: 1 Data size: 84 Basic stats: COMPLETE Column stats: NONE
                   File Output Operator
                     compressed: false
@@ -424,13 +424,13 @@ STAGE PLANS:
                 outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13, _col14
                 Statistics: Num rows: 1 Data size: 112 Basic stats: COMPLETE Column stats: NONE
                 Select Operator
-                  expressions: _col0 (type: int), (UDFToDouble(_col0) / -3728.0D) (type: double), (_col0 * -3728) (type: int), ((_col1 - ((_col2 * _col2) / _col3)) / _col3) (type: double), (- (_col0 * -3728)) (type: int), power(((_col4 - ((_col5 * _col5) / _col6)) / _col6), 0.5) (type: double), (-563 % (_col0 * -3728)) (type: int), (((_col1 - ((_col2 * _col2) / _col3)) / _col3) / power(((_col4 - ((_col5 * _col5) / _col6)) / _col6), 0.5)) (type: double), (- power(((_col4 - ((_col5 * _col5) / _col6)) / _col6), 0.5)) (type: double), _col7 (type: double), (_col8 / _col9) (type: double), (power(((_col4 - ((_col5 * _col5) / _col6)) / _col6), 0.5) - 10.175D) (type: double), _col10 (type: int), (UDFToDouble((_col0 * -3728)) % (power(((_col4 - ((_col5 * _col5) / _col6)) / _col6), 0.5) - 10.175D)) (type: double), (- _col7) (type: double), _col11 (type: double), (_col7 % -26.28D) (type: double), power(((_col4 - ((_col5 * _col5) / _col6)) / CASE WHEN ((_col6 = 1L)) THEN (null) ELSE ((_col6 - 1)
 ) END), 0.5) (type: double), (- (UDFToDouble(_col0) / -3728.0D)) (type: double), ((- (_col0 * -3728)) % (-563 % (_col0 * -3728))) (type: int), ((UDFToDouble(_col0) / -3728.0D) - (_col8 / _col9)) (type: double), (- (_col0 * -3728)) (type: int), ((_col12 - ((_col13 * _col13) / _col14)) / CASE WHEN ((_col14 = 1L)) THEN (null) ELSE ((_col14 - 1)) END) (type: double)
+                  expressions: _col0 (type: int), (UDFToDouble(_col0) / -3728.0D) (type: double), (_col0 * -3728) (type: int), ((_col1 - ((_col2 * _col2) / _col3)) / _col3) (type: double), (- (_col0 * -3728)) (type: int), power(((_col4 - ((_col5 * _col5) / _col6)) / _col6), 0.5) (type: double), (-563 % (_col0 * -3728)) (type: int), (((_col1 - ((_col2 * _col2) / _col3)) / _col3) / power(((_col4 - ((_col5 * _col5) / _col6)) / _col6), 0.5)) (type: double), (- power(((_col4 - ((_col5 * _col5) / _col6)) / _col6), 0.5)) (type: double), _col7 (type: double), (UDFToDouble(_col8) / _col9) (type: double), (power(((_col4 - ((_col5 * _col5) / _col6)) / _col6), 0.5) - 10.175D) (type: double), _col10 (type: int), (UDFToDouble((_col0 * -3728)) % (power(((_col4 - ((_col5 * _col5) / _col6)) / _col6), 0.5) - 10.175D)) (type: double), (- _col7) (type: double), _col11 (type: double), (_col7 % -26.28D) (type: double), power(((_col4 - ((_col5 * _col5) / _col6)) / CASE WHEN ((_col6 = 1L)) THEN (null) ELSE
  ((_col6 - 1)) END), 0.5) (type: double), (- (UDFToDouble(_col0) / -3728.0D)) (type: double), ((- (_col0 * -3728)) % (-563 % (_col0 * -3728))) (type: int), ((UDFToDouble(_col0) / -3728.0D) - (UDFToDouble(_col8) / _col9)) (type: double), (- (_col0 * -3728)) (type: int), ((_col12 - ((_col13 * _col13) / _col14)) / CASE WHEN ((_col14 = 1L)) THEN (null) ELSE ((_col14 - 1)) END) (type: double)
                   outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13, _col14, _col15, _col16, _col17, _col18, _col19, _col20, _col21, _col22
                   Select Vectorization:
                       className: VectorSelectOperator
                       native: true
-                      projectedOutputColumnNums: [0, 16, 17, 18, 20, 15, 22, 24, 23, 7, 21, 26, 10, 27, 25, 11, 28, 29, 30, 32, 37, 35, 36]
-                      selectExpressions: DoubleColDivideDoubleScalar(col 15:double, val -3728.0)(children: CastLongToDouble(col 0:int) -> 15:double) -> 16:double, LongColMultiplyLongScalar(col 0:int, val -3728) -> 17:int, DoubleColDivideLongColumn(col 15:double, col 3:bigint)(children: DoubleColSubtractDoubleColumn(col 1:double, col 18:double)(children: DoubleColDivideLongColumn(col 15:double, col 3:bigint)(children: DoubleColMultiplyDoubleColumn(col 2:double, col 2:double) -> 15:double) -> 18:double) -> 15:double) -> 18:double, LongColUnaryMinus(col 19:int)(children: LongColMultiplyLongScalar(col 0:int, val -3728) -> 19:int) -> 20:int, FuncPowerDoubleToDouble(col 21:double)(children: DoubleColDivideLongColumn(col 15:double, col 6:bigint)(children: DoubleColSubtractDoubleColumn(col 4:double, col 21:double)(children: DoubleColDivideLongColumn(col 15:double, col 6:bigint)(children: DoubleColMultiplyDoubleColumn(col 5:double, col 5:double) -> 15:double) -> 21:double) -> 15:double) -> 2
 1:double) -> 15:double, LongScalarModuloLongColumn(val -563, col 19:int)(children: LongColMultiplyLongScalar(col 0:int, val -3728) -> 19:int) -> 22:int, DoubleColDivideDoubleColumn(col 23:double, col 21:double)(children: DoubleColDivideLongColumn(col 21:double, col 3:bigint)(children: DoubleColSubtractDoubleColumn(col 1:double, col 23:double)(children: DoubleColDivideLongColumn(col 21:double, col 3:bigint)(children: DoubleColMultiplyDoubleColumn(col 2:double, col 2:double) -> 21:double) -> 23:double) -> 21:double) -> 23:double, FuncPowerDoubleToDouble(col 24:double)(children: DoubleColDivideLongColumn(col 21:double, col 6:bigint)(children: DoubleColSubtractDoubleColumn(col 4:double, col 24:double)(children: DoubleColDivideLongColumn(col 21:double, col 6:bigint)(children: DoubleColMultiplyDoubleColumn(col 5:double, col 5:double) -> 21:double) -> 24:double) -> 21:double) -> 24:double) -> 21:double) -> 24:double, DoubleColUnaryMinus(col 21:double)(children: FuncPowerDoubleToDouble(col 
 23:double)(children: DoubleColDivideLongColumn(col 21:double, col 6:bigint)(children: DoubleColSubtractDoubleColumn(col 4:double, col 23:double)(children: DoubleColDivideLongColumn(col 21:double, col 6:bigint)(children: DoubleColMultiplyDoubleColumn(col 5:double, col 5:double) -> 21:double) -> 23:double) -> 21:double) -> 23:double) -> 21:double) -> 23:double, LongColDivideLongColumn(col 8:bigint, col 9:bigint) -> 21:double, DoubleColSubtractDoubleScalar(col 25:double, val 10.175)(children: FuncPowerDoubleToDouble(col 26:double)(children: DoubleColDivideLongColumn(col 25:double, col 6:bigint)(children: DoubleColSubtractDoubleColumn(col 4:double, col 26:double)(children: DoubleColDivideLongColumn(col 25:double, col 6:bigint)(children: DoubleColMultiplyDoubleColumn(col 5:double, col 5:double) -> 25:double) -> 26:double) -> 25:double) -> 26:double) -> 25:double) -> 26:double, DoubleColModuloDoubleColumn(col 25:double, col 28:double)(children: CastLongToDouble(col 19:int)(children: LongC
 olMultiplyLongScalar(col 0:int, val -3728) -> 19:int) -> 25:double, DoubleColSubtractDoubleScalar(col 27:double, val 10.175)(children: FuncPowerDoubleToDouble(col 28:double)(children: DoubleColDivideLongColumn(col 27:double, col 6:bigint)(children: DoubleColSubtractDoubleColumn(col 4:double, col 28:double)(children: DoubleColDivideLongColumn(col 27:double, col 6:bigint)(children: DoubleColMultiplyDoubleColumn(col 5:double, col 5:double) -> 27:double) -> 28:double) -> 27:double) -> 28:double) -> 27:double) -> 28:double) -> 27:double, DoubleColUnaryMinus(col 7:double) -> 25:double, DoubleColModuloDoubleScalar(col 7:double, val -26.28) -> 28:double, FuncPowerDoubleToDouble(col 30:double)(children: DoubleColDivideLongColumn(col 29:double, col 32:bigint)(children: DoubleColSubtractDoubleColumn(col 4:double, col 30:double)(children: DoubleColDivideLongColumn(col 29:double, col 6:bigint)(children: DoubleColMultiplyDoubleColumn(col 5:double, col 5:double) -> 29:double) -> 30:double) -> 29:d
 ouble, IfExprNullCondExpr(col 19:boolean, null, col 31:bigint)(children: LongColEqualLongScalar(col 6:bigint, val 1) -> 19:boolean, LongColSubtractLongScalar(col 6:bigint, val 1) -> 31:bigint) -> 32:bigint) -> 30:double) -> 29:double, DoubleColUnaryMinus(col 33:double)(children: DoubleColDivideDoubleScalar(col 30:double, val -3728.0)(children: CastLongToDouble(col 0:int) -> 30:double) -> 33:double) -> 30:double, LongColModuloLongColumn(col 34:int, col 35:int)(children: LongColUnaryMinus(col 32:int)(children: LongColMultiplyLongScalar(col 0:int, val -3728) -> 32:int) -> 34:int, LongScalarModuloLongColumn(val -563, col 32:int)(children: LongColMultiplyLongScalar(col 0:int, val -3728) -> 32:int) -> 35:int) -> 32:int, DoubleColSubtractDoubleColumn(col 36:double, col 33:double)(children: DoubleColDivideDoubleScalar(col 33:double, val -3728.0)(children: CastLongToDouble(col 0:int) -> 33:double) -> 36:double, LongColDivideLongColumn(col 8:bigint, col 9:bigint) -> 33:double) -> 37:double, L
 ongColUnaryMinus(col 34:int)(children: LongColMultiplyLongScalar(col 0:int, val -3728) -> 34:int) -> 35:int, DoubleColDivideLongColumn(col 33:double, col 39:bigint)(children: DoubleColSubtractDoubleColumn(col 12:double, col 36:double)(children: DoubleColDivideLongColumn(col 33:double, col 14:bigint)(children: DoubleColMultiplyDoubleColumn(col 13:double, col 13:double) -> 33:double) -> 36:double) -> 33:double, IfExprNullCondExpr(col 34:boolean, null, col 38:bigint)(children: LongColEqualLongScalar(col 14:bigint, val 1) -> 34:boolean, LongColSubtractLongScalar(col 14:bigint, val 1) -> 38:bigint) -> 39:bigint) -> 36:double
+                      projectedOutputColumnNums: [0, 16, 17, 18, 20, 15, 22, 24, 23, 7, 25, 26, 10, 27, 21, 11, 28, 29, 30, 32, 33, 35, 37]
+                      selectExpressions: DoubleColDivideDoubleScalar(col 15:double, val -3728.0)(children: CastLongToDouble(col 0:int) -> 15:double) -> 16:double, LongColMultiplyLongScalar(col 0:int, val -3728) -> 17:int, DoubleColDivideLongColumn(col 15:double, col 3:bigint)(children: DoubleColSubtractDoubleColumn(col 1:double, col 18:double)(children: DoubleColDivideLongColumn(col 15:double, col 3:bigint)(children: DoubleColMultiplyDoubleColumn(col 2:double, col 2:double) -> 15:double) -> 18:double) -> 15:double) -> 18:double, LongColUnaryMinus(col 19:int)(children: LongColMultiplyLongScalar(col 0:int, val -3728) -> 19:int) -> 20:int, FuncPowerDoubleToDouble(col 21:double)(children: DoubleColDivideLongColumn(col 15:double, col 6:bigint)(children: DoubleColSubtractDoubleColumn(col 4:double, col 21:double)(children: DoubleColDivideLongColumn(col 15:double, col 6:bigint)(children: DoubleColMultiplyDoubleColumn(col 5:double, col 5:double) -> 15:double) -> 21:double) -> 15:double) -> 2
 1:double) -> 15:double, LongScalarModuloLongColumn(val -563, col 19:int)(children: LongColMultiplyLongScalar(col 0:int, val -3728) -> 19:int) -> 22:int, DoubleColDivideDoubleColumn(col 23:double, col 21:double)(children: DoubleColDivideLongColumn(col 21:double, col 3:bigint)(children: DoubleColSubtractDoubleColumn(col 1:double, col 23:double)(children: DoubleColDivideLongColumn(col 21:double, col 3:bigint)(children: DoubleColMultiplyDoubleColumn(col 2:double, col 2:double) -> 21:double) -> 23:double) -> 21:double) -> 23:double, FuncPowerDoubleToDouble(col 24:double)(children: DoubleColDivideLongColumn(col 21:double, col 6:bigint)(children: DoubleColSubtractDoubleColumn(col 4:double, col 24:double)(children: DoubleColDivideLongColumn(col 21:double, col 6:bigint)(children: DoubleColMultiplyDoubleColumn(col 5:double, col 5:double) -> 21:double) -> 24:double) -> 21:double) -> 24:double) -> 21:double) -> 24:double, DoubleColUnaryMinus(col 21:double)(children: FuncPowerDoubleToDouble(col 
 23:double)(children: DoubleColDivideLongColumn(col 21:double, col 6:bigint)(children: DoubleColSubtractDoubleColumn(col 4:double, col 23:double)(children: DoubleColDivideLongColumn(col 21:double, col 6:bigint)(children: DoubleColMultiplyDoubleColumn(col 5:double, col 5:double) -> 21:double) -> 23:double) -> 21:double) -> 23:double) -> 21:double) -> 23:double, DoubleColDivideLongColumn(col 21:double, col 9:bigint)(children: CastLongToDouble(col 8:bigint) -> 21:double) -> 25:double, DoubleColSubtractDoubleScalar(col 21:double, val 10.175)(children: FuncPowerDoubleToDouble(col 26:double)(children: DoubleColDivideLongColumn(col 21:double, col 6:bigint)(children: DoubleColSubtractDoubleColumn(col 4:double, col 26:double)(children: DoubleColDivideLongColumn(col 21:double, col 6:bigint)(children: DoubleColMultiplyDoubleColumn(col 5:double, col 5:double) -> 21:double) -> 26:double) -> 21:double) -> 26:double) -> 21:double) -> 26:double, DoubleColModuloDoubleColumn(col 21:double, col 28:doub
 le)(children: CastLongToDouble(col 19:int)(children: LongColMultiplyLongScalar(col 0:int, val -3728) -> 19:int) -> 21:double, DoubleColSubtractDoubleScalar(col 27:double, val 10.175)(children: FuncPowerDoubleToDouble(col 28:double)(children: DoubleColDivideLongColumn(col 27:double, col 6:bigint)(children: DoubleColSubtractDoubleColumn(col 4:double, col 28:double)(children: DoubleColDivideLongColumn(col 27:double, col 6:bigint)(children: DoubleColMultiplyDoubleColumn(col 5:double, col 5:double) -> 27:double) -> 28:double) -> 27:double) -> 28:double) -> 27:double) -> 28:double) -> 27:double, DoubleColUnaryMinus(col 7:double) -> 21:double, DoubleColModuloDoubleScalar(col 7:double, val -26.28) -> 28:double, FuncPowerDoubleToDouble(col 30:double)(children: DoubleColDivideLongColumn(col 29:double, col 32:bigint)(children: DoubleColSubtractDoubleColumn(col 4:double, col 30:double)(children: DoubleColDivideLongColumn(col 29:double, col 6:bigint)(children: DoubleColMultiplyDoubleColumn(col 5
 :double, col 5:double) -> 29:double) -> 30:double) -> 29:double, IfExprNullCondExpr(col 19:boolean, null, col 31:bigint)(children: LongColEqualLongScalar(col 6:bigint, val 1) -> 19:boolean, LongColSubtractLongScalar(col 6:bigint, val 1) -> 31:bigint) -> 32:bigint) -> 30:double) -> 29:double, DoubleColUnaryMinus(col 33:double)(children: DoubleColDivideDoubleScalar(col 30:double, val -3728.0)(children: CastLongToDouble(col 0:int) -> 30:double) -> 33:double) -> 30:double, LongColModuloLongColumn(col 34:int, col 35:int)(children: LongColUnaryMinus(col 32:int)(children: LongColMultiplyLongScalar(col 0:int, val -3728) -> 32:int) -> 34:int, LongScalarModuloLongColumn(val -563, col 32:int)(children: LongColMultiplyLongScalar(col 0:int, val -3728) -> 32:int) -> 35:int) -> 32:int, DoubleColSubtractDoubleColumn(col 36:double, col 37:double)(children: DoubleColDivideDoubleScalar(col 33:double, val -3728.0)(children: CastLongToDouble(col 0:int) -> 33:double) -> 36:double, DoubleColDivideLongColu
 mn(col 33:double, col 9:bigint)(children: CastLongToDouble(col 8:bigint) -> 33:double) -> 37:double) -> 33:double, LongColUnaryMinus(col 34:int)(children: LongColMultiplyLongScalar(col 0:int, val -3728) -> 34:int) -> 35:int, DoubleColDivideLongColumn(col 36:double, col 39:bigint)(children: DoubleColSubtractDoubleColumn(col 12:double, col 37:double)(children: DoubleColDivideLongColumn(col 36:double, col 14:bigint)(children: DoubleColMultiplyDoubleColumn(col 13:double, col 13:double) -> 36:double) -> 37:double) -> 36:double, IfExprNullCondExpr(col 34:boolean, null, col 38:bigint)(children: LongColEqualLongScalar(col 14:bigint, val 1) -> 34:boolean, LongColSubtractLongScalar(col 14:bigint, val 1) -> 38:bigint) -> 39:bigint) -> 37:double
                   Statistics: Num rows: 1 Data size: 112 Basic stats: COMPLETE Column stats: NONE
                   File Output Operator
                     compressed: false
@@ -677,13 +677,13 @@ STAGE PLANS:
                 outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13
                 Statistics: Num rows: 1 Data size: 104 Basic stats: COMPLETE Column stats: NONE
                 Select Operator
-                  expressions: ((_col0 - ((_col1 * _col1) / _col2)) / _col2) (type: double), (- ((_col0 - ((_col1 * _col1) / _col2)) / _col2)) (type: double), (((_col0 - ((_col1 * _col1) / _col2)) / _col2) - (- ((_col0 - ((_col1 * _col1) / _col2)) / _col2))) (type: double), _col3 (type: bigint), (CAST( _col3 AS decimal(19,0)) % 79.553) (type: decimal(5,3)), _col4 (type: tinyint), (UDFToDouble(_col3) - (- ((_col0 - ((_col1 * _col1) / _col2)) / _col2))) (type: double), (- (- ((_col0 - ((_col1 * _col1) / _col2)) / _col2))) (type: double), (-1.0D % (- ((_col0 - ((_col1 * _col1) / _col2)) / _col2))) (type: double), _col3 (type: bigint), (- _col3) (type: bigint), power(((_col5 - ((_col6 * _col6) / _col7)) / _col7), 0.5) (type: double), (- (- (- ((_col0 - ((_col1 * _col1) / _col2)) / _col2)))) (type: double), (762L * (- _col3)) (type: bigint), _col8 (type: int), (UDFToLong(_col4) + (762L * (- _col3))) (type: bigint), ((- ((_col0 - ((_col1 * _col1) / _col2)) / _col2)) + UDFToDouble(_col8)) 
 (type: double), power(((_col9 - ((_col10 * _col10) / _col11)) / CASE WHEN ((_col11 = 1L)) THEN (null) ELSE ((_col11 - 1)) END), 0.5) (type: double), ((- _col3) % _col3) (type: bigint), _col12 (type: bigint), (_col13 / _col12) (type: double), (-3728L % (UDFToLong(_col4) + (762L * (- _col3)))) (type: bigint)
+                  expressions: ((_col0 - ((_col1 * _col1) / _col2)) / _col2) (type: double), (- ((_col0 - ((_col1 * _col1) / _col2)) / _col2)) (type: double), (((_col0 - ((_col1 * _col1) / _col2)) / _col2) - (- ((_col0 - ((_col1 * _col1) / _col2)) / _col2))) (type: double), _col3 (type: bigint), (CAST( _col3 AS decimal(19,0)) % 79.553) (type: decimal(5,3)), _col4 (type: tinyint), (UDFToDouble(_col3) - (- ((_col0 - ((_col1 * _col1) / _col2)) / _col2))) (type: double), (- (- ((_col0 - ((_col1 * _col1) / _col2)) / _col2))) (type: double), (-1.0D % (- ((_col0 - ((_col1 * _col1) / _col2)) / _col2))) (type: double), _col3 (type: bigint), (- _col3) (type: bigint), power(((_col5 - ((_col6 * _col6) / _col7)) / _col7), 0.5) (type: double), (- (- (- ((_col0 - ((_col1 * _col1) / _col2)) / _col2)))) (type: double), (762L * (- _col3)) (type: bigint), _col8 (type: int), (UDFToLong(_col4) + (762L * (- _col3))) (type: bigint), ((- ((_col0 - ((_col1 * _col1) / _col2)) / _col2)) + UDFToDouble(_col8)) 
 (type: double), power(((_col9 - ((_col10 * _col10) / _col11)) / CASE WHEN ((_col11 = 1L)) THEN (null) ELSE ((_col11 - 1)) END), 0.5) (type: double), ((- _col3) % _col3) (type: bigint), _col12 (type: bigint), (UDFToDouble(_col13) / _col12) (type: double), (-3728L % (UDFToLong(_col4) + (762L * (- _col3)))) (type: bigint)
                   outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13, _col14, _col15, _col16, _col17, _col18, _col19, _col20, _col21
                   Select Vectorization:
                       className: VectorSelectOperator
                       native: true
-                      projectedOutputColumnNums: [15, 14, 18, 3, 20, 4, 21, 17, 22, 3, 23, 16, 24, 27, 8, 26, 30, 25, 33, 12, 29, 34]
-                      selectExpressions: DoubleColDivideLongColumn(col 14:double, col 2:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 15:double)(children: DoubleColDivideLongColumn(col 14:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 14:double) -> 15:double) -> 14:double) -> 15:double, DoubleColUnaryMinus(col 16:double)(children: DoubleColDivideLongColumn(col 14:double, col 2:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 16:double)(children: DoubleColDivideLongColumn(col 14:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 14:double) -> 16:double) -> 14:double) -> 16:double) -> 14:double, DoubleColSubtractDoubleColumn(col 17:double, col 16:double)(children: DoubleColDivideLongColumn(col 16:double, col 2:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 17:double)(children: DoubleColDivideLongColumn(col 16:double, col 2:bigint)(children: Do
 ubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 16:double) -> 17:double) -> 16:double) -> 17:double, DoubleColUnaryMinus(col 18:double)(children: DoubleColDivideLongColumn(col 16:double, col 2:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 18:double)(children: DoubleColDivideLongColumn(col 16:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 16:double) -> 18:double) -> 16:double) -> 18:double) -> 16:double) -> 18:double, DecimalColModuloDecimalScalar(col 19:decimal(19,0), val 79.553)(children: CastLongToDecimal(col 3:bigint) -> 19:decimal(19,0)) -> 20:decimal(5,3), DoubleColSubtractDoubleColumn(col 16:double, col 17:double)(children: CastLongToDouble(col 3:bigint) -> 16:double, DoubleColUnaryMinus(col 21:double)(children: DoubleColDivideLongColumn(col 17:double, col 2:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 21:double)(children: DoubleColDivideLongColumn(col 17:double, col 2:bigint)(chi
 ldren: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 17:double) -> 21:double) -> 17:double) -> 21:double) -> 17:double) -> 21:double, DoubleColUnaryMinus(col 16:double)(children: DoubleColUnaryMinus(col 17:double)(children: DoubleColDivideLongColumn(col 16:double, col 2:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 17:double)(children: DoubleColDivideLongColumn(col 16:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 16:double) -> 17:double) -> 16:double) -> 17:double) -> 16:double) -> 17:double, DoubleScalarModuloDoubleColumn(val -1.0, col 16:double)(children: DoubleColUnaryMinus(col 22:double)(children: DoubleColDivideLongColumn(col 16:double, col 2:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 22:double)(children: DoubleColDivideLongColumn(col 16:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 16:double) -> 22:double) -> 16:double) -> 22:d
 ouble) -> 16:double) -> 22:double, LongColUnaryMinus(col 3:bigint) -> 23:bigint, FuncPowerDoubleToDouble(col 24:double)(children: DoubleColDivideLongColumn(col 16:double, col 7:bigint)(children: DoubleColSubtractDoubleColumn(col 5:double, col 24:double)(children: DoubleColDivideLongColumn(col 16:double, col 7:bigint)(children: DoubleColMultiplyDoubleColumn(col 6:double, col 6:double) -> 16:double) -> 24:double) -> 16:double) -> 24:double) -> 16:double, DoubleColUnaryMinus(col 25:double)(children: DoubleColUnaryMinus(col 24:double)(children: DoubleColUnaryMinus(col 25:double)(children: DoubleColDivideLongColumn(col 24:double, col 2:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 25:double)(children: DoubleColDivideLongColumn(col 24:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 24:double) -> 25:double) -> 24:double) -> 25:double) -> 24:double) -> 25:double) -> 24:double, LongScalarMultiplyLongColumn(val 762, col 26:bigin
 t)(children: LongColUnaryMinus(col 3:bigint) -> 26:bigint) -> 27:bigint, LongColAddLongColumn(col 4:bigint, col 28:bigint)(children: col 4:tinyint, LongScalarMultiplyLongColumn(val 762, col 26:bigint)(children: LongColUnaryMinus(col 3:bigint) -> 26:bigint) -> 28:bigint) -> 26:bigint, DoubleColAddDoubleColumn(col 25:double, col 29:double)(children: DoubleColUnaryMinus(col 29:double)(children: DoubleColDivideLongColumn(col 25:double, col 2:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 29:double)(children: DoubleColDivideLongColumn(col 25:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 25:double) -> 29:double) -> 25:double) -> 29:double) -> 25:double, CastLongToDouble(col 8:int) -> 29:double) -> 30:double, FuncPowerDoubleToDouble(col 29:double)(children: DoubleColDivideLongColumn(col 25:double, col 32:bigint)(children: DoubleColSubtractDoubleColumn(col 9:double, col 29:double)(children: DoubleColDivideLongColumn(col 25:do
 uble, col 11:bigint)(children: DoubleColMultiplyDoubleColumn(col 10:double, col 10:double) -> 25:double) -> 29:double) -> 25:double, IfExprNullCondExpr(col 28:boolean, null, col 31:bigint)(children: LongColEqualLongScalar(col 11:bigint, val 1) -> 28:boolean, LongColSubtractLongScalar(col 11:bigint, val 1) -> 31:bigint) -> 32:bigint) -> 29:double) -> 25:double, LongColModuloLongColumn(col 32:bigint, col 3:bigint)(children: LongColUnaryMinus(col 3:bigint) -> 32:bigint) -> 33:bigint, LongColDivideLongColumn(col 13:bigint, col 12:bigint) -> 29:double, LongScalarModuloLongColumn(val -3728, col 32:bigint)(children: LongColAddLongColumn(col 4:bigint, col 34:bigint)(children: col 4:tinyint, LongScalarMultiplyLongColumn(val 762, col 32:bigint)(children: LongColUnaryMinus(col 3:bigint) -> 32:bigint) -> 34:bigint) -> 32:bigint) -> 34:bigint
+                      projectedOutputColumnNums: [15, 14, 18, 3, 20, 4, 21, 17, 22, 3, 23, 16, 24, 27, 8, 26, 30, 25, 33, 12, 34, 35]
+                      selectExpressions: DoubleColDivideLongColumn(col 14:double, col 2:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 15:double)(children: DoubleColDivideLongColumn(col 14:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 14:double) -> 15:double) -> 14:double) -> 15:double, DoubleColUnaryMinus(col 16:double)(children: DoubleColDivideLongColumn(col 14:double, col 2:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 16:double)(children: DoubleColDivideLongColumn(col 14:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 14:double) -> 16:double) -> 14:double) -> 16:double) -> 14:double, DoubleColSubtractDoubleColumn(col 17:double, col 16:double)(children: DoubleColDivideLongColumn(col 16:double, col 2:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 17:double)(children: DoubleColDivideLongColumn(col 16:double, col 2:bigint)(children: Do
 ubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 16:double) -> 17:double) -> 16:double) -> 17:double, DoubleColUnaryMinus(col 18:double)(children: DoubleColDivideLongColumn(col 16:double, col 2:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 18:double)(children: DoubleColDivideLongColumn(col 16:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 16:double) -> 18:double) -> 16:double) -> 18:double) -> 16:double) -> 18:double, DecimalColModuloDecimalScalar(col 19:decimal(19,0), val 79.553)(children: CastLongToDecimal(col 3:bigint) -> 19:decimal(19,0)) -> 20:decimal(5,3), DoubleColSubtractDoubleColumn(col 16:double, col 17:double)(children: CastLongToDouble(col 3:bigint) -> 16:double, DoubleColUnaryMinus(col 21:double)(children: DoubleColDivideLongColumn(col 17:double, col 2:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 21:double)(children: DoubleColDivideLongColumn(col 17:double, col 2:bigint)(chi
 ldren: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 17:double) -> 21:double) -> 17:double) -> 21:double) -> 17:double) -> 21:double, DoubleColUnaryMinus(col 16:double)(children: DoubleColUnaryMinus(col 17:double)(children: DoubleColDivideLongColumn(col 16:double, col 2:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 17:double)(children: DoubleColDivideLongColumn(col 16:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 16:double) -> 17:double) -> 16:double) -> 17:double) -> 16:double) -> 17:double, DoubleScalarModuloDoubleColumn(val -1.0, col 16:double)(children: DoubleColUnaryMinus(col 22:double)(children: DoubleColDivideLongColumn(col 16:double, col 2:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 22:double)(children: DoubleColDivideLongColumn(col 16:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 16:double) -> 22:double) -> 16:double) -> 22:d
 ouble) -> 16:double) -> 22:double, LongColUnaryMinus(col 3:bigint) -> 23:bigint, FuncPowerDoubleToDouble(col 24:double)(children: DoubleColDivideLongColumn(col 16:double, col 7:bigint)(children: DoubleColSubtractDoubleColumn(col 5:double, col 24:double)(children: DoubleColDivideLongColumn(col 16:double, col 7:bigint)(children: DoubleColMultiplyDoubleColumn(col 6:double, col 6:double) -> 16:double) -> 24:double) -> 16:double) -> 24:double) -> 16:double, DoubleColUnaryMinus(col 25:double)(children: DoubleColUnaryMinus(col 24:double)(children: DoubleColUnaryMinus(col 25:double)(children: DoubleColDivideLongColumn(col 24:double, col 2:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 25:double)(children: DoubleColDivideLongColumn(col 24:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 24:double) -> 25:double) -> 24:double) -> 25:double) -> 24:double) -> 25:double) -> 24:double, LongScalarMultiplyLongColumn(val 762, col 26:bigin
 t)(children: LongColUnaryMinus(col 3:bigint) -> 26:bigint) -> 27:bigint, LongColAddLongColumn(col 4:bigint, col 28:bigint)(children: col 4:tinyint, LongScalarMultiplyLongColumn(val 762, col 26:bigint)(children: LongColUnaryMinus(col 3:bigint) -> 26:bigint) -> 28:bigint) -> 26:bigint, DoubleColAddDoubleColumn(col 25:double, col 29:double)(children: DoubleColUnaryMinus(col 29:double)(children: DoubleColDivideLongColumn(col 25:double, col 2:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 29:double)(children: DoubleColDivideLongColumn(col 25:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 25:double) -> 29:double) -> 25:double) -> 29:double) -> 25:double, CastLongToDouble(col 8:int) -> 29:double) -> 30:double, FuncPowerDoubleToDouble(col 29:double)(children: DoubleColDivideLongColumn(col 25:double, col 32:bigint)(children: DoubleColSubtractDoubleColumn(col 9:double, col 29:double)(children: DoubleColDivideLongColumn(col 25:do
 uble, col 11:bigint)(children: DoubleColMultiplyDoubleColumn(col 10:double, col 10:double) -> 25:double) -> 29:double) -> 25:double, IfExprNullCondExpr(col 28:boolean, null, col 31:bigint)(children: LongColEqualLongScalar(col 11:bigint, val 1) -> 28:boolean, LongColSubtractLongScalar(col 11:bigint, val 1) -> 31:bigint) -> 32:bigint) -> 29:double) -> 25:double, LongColModuloLongColumn(col 32:bigint, col 3:bigint)(children: LongColUnaryMinus(col 3:bigint) -> 32:bigint) -> 33:bigint, DoubleColDivideLongColumn(col 29:double, col 12:bigint)(children: CastLongToDouble(col 13:bigint) -> 29:double) -> 34:double, LongScalarModuloLongColumn(val -3728, col 32:bigint)(children: LongColAddLongColumn(col 4:bigint, col 35:bigint)(children: col 4:tinyint, LongScalarMultiplyLongColumn(val 762, col 32:bigint)(children: LongColUnaryMinus(col 3:bigint) -> 32:bigint) -> 35:bigint) -> 32:bigint) -> 35:bigint
                   Statistics: Num rows: 1 Data size: 104 Basic stats: COMPLETE Column stats: NONE
                   File Output Operator
                     compressed: false
@@ -909,13 +909,13 @@ STAGE PLANS:
                 outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9
                 Statistics: Num rows: 1 Data size: 76 Basic stats: COMPLETE Column stats: NONE
                 Select Operator
-                  expressions: (_col0 / _col1) (type: double), ((_col0 / _col1) + 6981.0D) (type: double), (((_col0 / _col1) + 6981.0D) + (_col0 / _col1)) (type: double), _col2 (type: bigint), ((((_col0 / _col1) + 6981.0D) + (_col0 / _col1)) / (_col0 / _col1)) (type: double), (- ((_col0 / _col1) + 6981.0D)) (type: double), power(((_col3 - ((_col4 * _col4) / _col5)) / CASE WHEN ((_col5 = 1L)) THEN (null) ELSE ((_col5 - 1)) END), 0.5) (type: double), ((_col0 / _col1) % (- ((_col0 / _col1) + 6981.0D))) (type: double), ((_col3 - ((_col4 * _col4) / _col5)) / _col5) (type: double), ((_col6 - ((_col7 * _col7) / _col8)) / _col8) (type: double), (- _col2) (type: bigint), (UDFToDouble((- _col2)) / power(((_col3 - ((_col4 * _col4) / _col5)) / CASE WHEN ((_col5 = 1L)) THEN (null) ELSE ((_col5 - 1)) END), 0.5)) (type: double), _col9 (type: float), (((_col6 - ((_col7 * _col7) / _col8)) / _col8) * -26.28D) (type: double)
+                  expressions: (UDFToDouble(_col0) / _col1) (type: double), ((UDFToDouble(_col0) / _col1) + 6981.0D) (type: double), (((UDFToDouble(_col0) / _col1) + 6981.0D) + (UDFToDouble(_col0) / _col1)) (type: double), _col2 (type: bigint), ((((UDFToDouble(_col0) / _col1) + 6981.0D) + (UDFToDouble(_col0) / _col1)) / (UDFToDouble(_col0) / _col1)) (type: double), (- ((UDFToDouble(_col0) / _col1) + 6981.0D)) (type: double), power(((_col3 - ((_col4 * _col4) / _col5)) / CASE WHEN ((_col5 = 1L)) THEN (null) ELSE ((_col5 - 1)) END), 0.5) (type: double), ((UDFToDouble(_col0) / _col1) % (- ((UDFToDouble(_col0) / _col1) + 6981.0D))) (type: double), ((_col3 - ((_col4 * _col4) / _col5)) / _col5) (type: double), ((_col6 - ((_col7 * _col7) / _col8)) / _col8) (type: double), (- _col2) (type: bigint), (UDFToDouble((- _col2)) / power(((_col3 - ((_col4 * _col4) / _col5)) / CASE WHEN ((_col5 = 1L)) THEN (null) ELSE ((_col5 - 1)) END), 0.5)) (type: double), _col9 (type: float), (((_col6 - ((_col7 *
  _col7) / _col8)) / _col8) * -26.28D) (type: double)
                   outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13
                   Select Vectorization:
                       className: VectorSelectOperator
                       native: true
-                      projectedOutputColumnNums: [10, 12, 14, 2, 13, 11, 15, 21, 20, 22, 19, 25, 9, 16]
-                      selectExpressions: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 10:double, DoubleColAddDoubleScalar(col 11:double, val 6981.0)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 11:double) -> 12:double, DoubleColAddDoubleColumn(col 13:double, col 11:double)(children: DoubleColAddDoubleScalar(col 11:double, val 6981.0)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 11:double) -> 13:double, LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 11:double) -> 14:double, DoubleColDivideDoubleColumn(col 15:double, col 11:double)(children: DoubleColAddDoubleColumn(col 13:double, col 11:double)(children: DoubleColAddDoubleScalar(col 11:double, val 6981.0)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 11:double) -> 13:double, LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 11:double) -> 15:double, LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 11:double) -> 13:double, DoubleColUnaryMinus(col 15
 :double)(children: DoubleColAddDoubleScalar(col 11:double, val 6981.0)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 11:double) -> 15:double) -> 11:double, FuncPowerDoubleToDouble(col 16:double)(children: DoubleColDivideLongColumn(col 15:double, col 19:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 16:double)(children: DoubleColDivideLongColumn(col 15:double, col 5:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 15:double) -> 16:double) -> 15:double, IfExprNullCondExpr(col 17:boolean, null, col 18:bigint)(children: LongColEqualLongScalar(col 5:bigint, val 1) -> 17:boolean, LongColSubtractLongScalar(col 5:bigint, val 1) -> 18:bigint) -> 19:bigint) -> 16:double) -> 15:double, DoubleColModuloDoubleColumn(col 16:double, col 20:double)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 16:double, DoubleColUnaryMinus(col 21:double)(children: DoubleColAddDoubleScalar(col 20:double, val 6981.0)(children: Long
 ColDivideLongColumn(col 0:bigint, col 1:bigint) -> 20:double) -> 21:double) -> 20:double) -> 21:double, DoubleColDivideLongColumn(col 16:double, col 5:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 20:double)(children: DoubleColDivideLongColumn(col 16:double, col 5:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 16:double) -> 20:double) -> 16:double) -> 20:double, DoubleColDivideLongColumn(col 16:double, col 8:bigint)(children: DoubleColSubtractDoubleColumn(col 6:double, col 22:double)(children: DoubleColDivideLongColumn(col 16:double, col 8:bigint)(children: DoubleColMultiplyDoubleColumn(col 7:double, col 7:double) -> 16:double) -> 22:double) -> 16:double) -> 22:double, LongColUnaryMinus(col 2:bigint) -> 19:bigint, DoubleColDivideDoubleColumn(col 16:double, col 24:double)(children: CastLongToDouble(col 23:bigint)(children: LongColUnaryMinus(col 2:bigint) -> 23:bigint) -> 16:double, FuncPowerDoubleToDouble(col 25:double)(children: Do
 ubleColDivideLongColumn(col 24:double, col 27:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 25:double)(children: DoubleColDivideLongColumn(col 24:double, col 5:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 24:double) -> 25:double) -> 24:double, IfExprNullCondExpr(col 23:boolean, null, col 26:bigint)(children: LongColEqualLongScalar(col 5:bigint, val 1) -> 23:boolean, LongColSubtractLongScalar(col 5:bigint, val 1) -> 26:bigint) -> 27:bigint) -> 25:double) -> 24:double) -> 25:double, DoubleColMultiplyDoubleScalar(col 24:double, val -26.28)(children: DoubleColDivideLongColumn(col 16:double, col 8:bigint)(children: DoubleColSubtractDoubleColumn(col 6:double, col 24:double)(children: DoubleColDivideLongColumn(col 16:double, col 8:bigint)(children: DoubleColMultiplyDoubleColumn(col 7:double, col 7:double) -> 16:double) -> 24:double) -> 16:double) -> 24:double) -> 16:double
+                      projectedOutputColumnNums: [11, 10, 13, 2, 12, 15, 14, 16, 21, 22, 19, 25, 9, 20]
+                      selectExpressions: DoubleColDivideLongColumn(col 10:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 10:double) -> 11:double, DoubleColAddDoubleScalar(col 12:double, val 6981.0)(children: DoubleColDivideLongColumn(col 10:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 10:double) -> 12:double) -> 10:double, DoubleColAddDoubleColumn(col 12:double, col 14:double)(children: DoubleColAddDoubleScalar(col 13:double, val 6981.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 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 13:double) -> 14:double) -> 13:double, DoubleColDivideDoubleColumn(col 14:double, col 15:double)(children: DoubleColAddDoubleColumn(col 12:double, col 15:double)(children: DoubleColAddDoubleScalar(col 14:double, val 6981.0)(children: DoubleColDivideLongColumn(col 12:d
 ouble, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 12:double) -> 14:double) -> 12:double, DoubleColDivideLongColumn(col 14:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 14:double) -> 15:double) -> 14:double, DoubleColDivideLongColumn(col 12:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 12:double) -> 15:double) -> 12:double, DoubleColUnaryMinus(col 14:double)(children: DoubleColAddDoubleScalar(col 15:double, val 6981.0)(children: DoubleColDivideLongColumn(col 14:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 14:double) -> 15:double) -> 14:double) -> 15:double, FuncPowerDoubleToDouble(col 16:double)(children: DoubleColDivideLongColumn(col 14:double, col 19:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 16:double)(children: DoubleColDivideLongColumn(col 14:double, col 5:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 14:double) -> 16:double) -> 14:double, IfExprNul
 lCondExpr(col 17:boolean, null, col 18:bigint)(children: LongColEqualLongScalar(col 5:bigint, val 1) -> 17:boolean, LongColSubtractLongScalar(col 5:bigint, val 1) -> 18:bigint) -> 19:bigint) -> 16:double) -> 14:double, DoubleColModuloDoubleColumn(col 20:double, col 21:double)(children: DoubleColDivideLongColumn(col 16:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 16:double) -> 20:double, DoubleColUnaryMinus(col 16:double)(children: DoubleColAddDoubleScalar(col 21:double, val 6981.0)(children: DoubleColDivideLongColumn(col 16:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 16:double) -> 21:double) -> 16:double) -> 21:double) -> 16:double, DoubleColDivideLongColumn(col 20:double, col 5:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 21:double)(children: DoubleColDivideLongColumn(col 20:double, col 5:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 20:double) -> 21:double) -> 20:double) -> 21:double, 
 DoubleColDivideLongColumn(col 20:double, col 8:bigint)(children: DoubleColSubtractDoubleColumn(col 6:double, col 22:double)(children: DoubleColDivideLongColumn(col 20:double, col 8:bigint)(children: DoubleColMultiplyDoubleColumn(col 7:double, col 7:double) -> 20:double) -> 22:double) -> 20:double) -> 22:double, LongColUnaryMinus(col 2:bigint) -> 19:bigint, DoubleColDivideDoubleColumn(col 20:double, col 24:double)(children: CastLongToDouble(col 23:bigint)(children: LongColUnaryMinus(col 2:bigint) -> 23:bigint) -> 20:double, FuncPowerDoubleToDouble(col 25:double)(children: DoubleColDivideLongColumn(col 24:double, col 27:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 25:double)(children: DoubleColDivideLongColumn(col 24:double, col 5:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 24:double) -> 25:double) -> 24:double, IfExprNullCondExpr(col 23:boolean, null, col 26:bigint)(children: LongColEqualLongScalar(col 5:bigint, val 1) -> 23:boo
 lean, LongColSubtractLongScalar(col 5:bigint, val 1) -> 26:bigint) -> 27:bigint) -> 25:double) -> 24:double) -> 25:double, DoubleColMultiplyDoubleScalar(col 24:double, val -26.28)(children: DoubleColDivideLongColumn(col 20:double, col 8:bigint)(children: DoubleColSubtractDoubleColumn(col 6:double, col 24:double)(children: DoubleColDivideLongColumn(col 20:double, col 8:bigint)(children: DoubleColMultiplyDoubleColumn(col 7:double, col 7:double) -> 20:double) -> 24:double) -> 20:double) -> 24:double) -> 20:double
                   Statistics: Num rows: 1 Data size: 76 Basic stats: COMPLETE Column stats: NONE
                   File Output Operator
                     compressed: false
@@ -2840,13 +2840,13 @@ STAGE PLANS:
                 outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13, _col14, _col15, _col16, _col17, _col18, _col19
                 Statistics: Num rows: 6144 Data size: 1453997 Basic stats: COMPLETE Column stats: NONE
                 Select Operator
-                  expressions: _col0 (type: timestamp), _col1 (type: string), power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5) (type: double), (power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5) * 10.175D) (type: double), (- power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5)) (type: double), (_col5 / _col6) (type: double), (- power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5)) (type: double), (-26.28D - power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5)) (type: double), _col7 (type: bigint), (- _col7) (type: bigint), ((-26.28D - power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5)) * (- power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5))) (type: double), _col8 (type: tinyint), (((-26.28D - power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5)) * (- power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5))) * UDFToDouble((- _col7))) (type: double), (- (power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5) * 10.175D)) (type: do
 uble), ((_col9 - ((_col10 * _col10) / _col6)) / CASE WHEN ((_col6 = 1L)) THEN (null) ELSE ((_col6 - 1)) END) (type: double), (((_col9 - ((_col10 * _col10) / _col6)) / CASE WHEN ((_col6 = 1L)) THEN (null) ELSE ((_col6 - 1)) END) + (((-26.28D - power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5)) * (- power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5))) * UDFToDouble((- _col7)))) (type: double), (- (- power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5))) (type: double), (UDFToDouble((- _col7)) / power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5)) (type: double), ((_col11 - ((_col12 * _col12) / _col13)) / _col13) (type: double), (10.175D / (_col5 / _col6)) (type: double), (_col14 / _col4) (type: double), ((_col11 - ((_col12 * _col12) / _col13)) / CASE WHEN ((_col13 = 1L)) THEN (null) ELSE ((_col13 - 1)) END) (type: double), ((((_col9 - ((_col10 * _col10) / _col6)) / CASE WHEN ((_col6 = 1L)) THEN (null) ELSE ((_col6 - 1)) END) + (((-26.28D - power(((_col2 - ((_
 col3 * _col3) / _col4)) / _col4), 0.5)) * (- power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5))) * UDFToDouble((- _col7)))) - (((-26.28D - power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5)) * (- power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5))) * UDFToDouble((- _col7)))) (type: double), (- (- (power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5) * 10.175D))) (type: double), (_col15 / _col13) (type: double), (((((_col9 - ((_col10 * _col10) / _col6)) / CASE WHEN ((_col6 = 1L)) THEN (null) ELSE ((_col6 - 1)) END) + (((-26.28D - power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5)) * (- power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5))) * UDFToDouble((- _col7)))) - (((-26.28D - power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5)) * (- power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5))) * UDFToDouble((- _col7)))) * 10.175D) (type: double), (10.175D % (10.175D / (_col5 / _col6))) (type: double), (- _col8) (type: tinyint), _col16 (
 type: double), ((_col9 - ((_col10 * _col10) / _col6)) / _col6) (type: double), (- ((-26.28D - power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5)) * (- power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5)))) (type: double), ((- power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5)) % (_col15 / _col13)) (type: double), (-26.28 / CAST( (- _col8) AS decimal(3,0))) (type: decimal(8,6)), power(((_col17 - ((_col18 * _col18) / _col19)) / _col19), 0.5) (type: double), _col14 (type: bigint), ((((_col9 - ((_col10 * _col10) / _col6)) / CASE WHEN ((_col6 = 1L)) THEN (null) ELSE ((_col6 - 1)) END) + (((-26.28D - power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5)) * (- power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5))) * UDFToDouble((- _col7)))) / ((_col11 - ((_col12 * _col12) / _col13)) / _col13)) (type: double), (- (- _col7)) (type: bigint), _col7 (type: bigint), ((((_col9 - ((_col10 * _col10) / _col6)) / CASE WHEN ((_col6 = 1L)) THEN (null) ELSE ((_col6 - 1)) END
 ) + (((-26.28D - power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5)) * (- power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5))) * UDFToDouble((- _col7)))) % -26.28D) (type: double)
+                  expressions: _col0 (type: timestamp), _col1 (type: string), power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5) (type: double), (power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5) * 10.175D) (type: double), (- power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5)) (type: double), (UDFToDouble(_col5) / _col6) (type: double), (- power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5)) (type: double), (-26.28D - power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5)) (type: double), _col7 (type: bigint), (- _col7) (type: bigint), ((-26.28D - power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5)) * (- power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5))) (type: double), _col8 (type: tinyint), (((-26.28D - power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5)) * (- power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5))) * UDFToDouble((- _col7))) (type: double), (- (power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5) * 10.175
 D)) (type: double), ((_col9 - ((_col10 * _col10) / _col6)) / CASE WHEN ((_col6 = 1L)) THEN (null) ELSE ((_col6 - 1)) END) (type: double), (((_col9 - ((_col10 * _col10) / _col6)) / CASE WHEN ((_col6 = 1L)) THEN (null) ELSE ((_col6 - 1)) END) + (((-26.28D - power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5)) * (- power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5))) * UDFToDouble((- _col7)))) (type: double), (- (- power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5))) (type: double), (UDFToDouble((- _col7)) / power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5)) (type: double), ((_col11 - ((_col12 * _col12) / _col13)) / _col13) (type: double), (10.175D / (UDFToDouble(_col5) / _col6)) (type: double), (UDFToDouble(_col14) / _col4) (type: double), ((_col11 - ((_col12 * _col12) / _col13)) / CASE WHEN ((_col13 = 1L)) THEN (null) ELSE ((_col13 - 1)) END) (type: double), ((((_col9 - ((_col10 * _col10) / _col6)) / CASE WHEN ((_col6 = 1L)) THEN (null) ELSE ((_col6 - 1)) 
 END) + (((-26.28D - power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5)) * (- power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5))) * UDFToDouble((- _col7)))) - (((-26.28D - power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5)) * (- power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5))) * UDFToDouble((- _col7)))) (type: double), (- (- (power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5) * 10.175D))) (type: double), (_col15 / _col13) (type: double), (((((_col9 - ((_col10 * _col10) / _col6)) / CASE WHEN ((_col6 = 1L)) THEN (null) ELSE ((_col6 - 1)) END) + (((-26.28D - power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5)) * (- power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5))) * UDFToDouble((- _col7)))) - (((-26.28D - power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5)) * (- power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5))) * UDFToDouble((- _col7)))) * 10.175D) (type: double), (10.175D % (10.175D / (UDFToDouble(_col5) / _col6)))
  (type: double), (- _col8) (type: tinyint), _col16 (type: double), ((_col9 - ((_col10 * _col10) / _col6)) / _col6) (type: double), (- ((-26.28D - power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5)) * (- power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5)))) (type: double), ((- power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5)) % (_col15 / _col13)) (type: double), (-26.28 / CAST( (- _col8) AS decimal(3,0))) (type: decimal(8,6)), power(((_col17 - ((_col18 * _col18) / _col19)) / _col19), 0.5) (type: double), _col14 (type: bigint), ((((_col9 - ((_col10 * _col10) / _col6)) / CASE WHEN ((_col6 = 1L)) THEN (null) ELSE ((_col6 - 1)) END) + (((-26.28D - power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5)) * (- power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5))) * UDFToDouble((- _col7)))) / ((_col11 - ((_col12 * _col12) / _col13)) / _col13)) (type: double), (- (- _col7)) (type: bigint), _col7 (type: bigint), ((((_col9 - ((_col10 * _col10) / _col6)) / CASE WH
 EN ((_col6 = 1L)) THEN (null) ELSE ((_col6 - 1)) END) + (((-26.28D - power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5)) * (- power(((_col2 - ((_col3 * _col3) / _col4)) / _col4), 0.5))) * UDFToDouble((- _col7)))) % -26.28D) (type: double)
                   outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13, _col14, _col15, _col16, _col17, _col18, _col19, _col20, _col21, _col22, _col23, _col24, _col25, _col26, _col27, _col28, _col29, _col30, _col31, _col32, _col33, _col34, _col35, _col36, _col37, _col38
                   Select Vectorization:
                       className: VectorSelectOperator
                       native: true
-                      projectedOutputColumnNums: [0, 1, 20, 22, 23, 21, 25, 26, 7, 27, 24, 8, 30, 28, 32, 29, 35, 40, 39, 41, 38, 43, 46, 49, 42, 50, 51, 53, 16, 55, 56, 58, 61, 54, 14, 62, 67, 7, 65]
-                      selectExpressions: FuncPowerDoubleToDouble(col 21:double)(children: DoubleColDivideLongColumn(col 20:double, col 4:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 21:double)(children: DoubleColDivideLongColumn(col 20:double, col 4:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 20:double) -> 21:double) -> 20:double) -> 21:double) -> 20:double, DoubleColMultiplyDoubleScalar(col 21:double, val 10.175)(children: FuncPowerDoubleToDouble(col 22:double)(children: DoubleColDivideLongColumn(col 21:double, col 4:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 22:double)(children: DoubleColDivideLongColumn(col 21:double, col 4:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 21:double) -> 22:double) -> 21:double) -> 22:double) -> 21:double) -> 22:double, DoubleColUnaryMinus(col 21:double)(children: FuncPowerDoubleToDouble(col 23:double)(children: DoubleColDivideLongColumn(col
  21:double, col 4:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 23:double)(children: DoubleColDivideLongColumn(col 21:double, col 4:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 21:double) -> 23:double) -> 21:double) -> 23:double) -> 21:double) -> 23:double, LongColDivideLongColumn(col 5:bigint, col 6:bigint) -> 21:double, DoubleColUnaryMinus(col 24:double)(children: FuncPowerDoubleToDouble(col 25:double)(children: DoubleColDivideLongColumn(col 24:double, col 4:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 25:double)(children: DoubleColDivideLongColumn(col 24:double, col 4:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 24:double) -> 25:double) -> 24:double) -> 25:double) -> 24:double) -> 25:double, DoubleScalarSubtractDoubleColumn(val -26.28, col 24:double)(children: FuncPowerDoubleToDouble(col 26:double)(children: DoubleColDivideLongColumn(col 24:double, col 4:bigint)(children: 
 DoubleColSubtractDoubleColumn(col 2:double, col 26:double)(children: DoubleColDivideLongColumn(col 24:double, col 4:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 24:double) -> 26:double) -> 24:double) -> 26:double) -> 24:double) -> 26:double, LongColUnaryMinus(col 7:bigint) -> 27:bigint, DoubleColMultiplyDoubleColumn(col 28:double, col 29:double)(children: DoubleScalarSubtractDoubleColumn(val -26.28, col 24:double)(children: FuncPowerDoubleToDouble(col 28:double)(children: DoubleColDivideLongColumn(col 24:double, col 4:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 28:double)(children: DoubleColDivideLongColumn(col 24:double, col 4:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 24:double) -> 28:double) -> 24:double) -> 28:double) -> 24:double) -> 28:double, DoubleColUnaryMinus(col 24:double)(children: FuncPowerDoubleToDouble(col 29:double)(children: DoubleColDivideLongColumn(col 24:double, col 4:bigi
 nt)(children: DoubleColSubtractDoubleColumn(col 2:double, col 29:double)(children: DoubleColDivideLongColumn(col 24:double, col 4:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 24:double) -> 29:double) -> 24:double) -> 29:double) -> 24:double) -> 29:double) -> 24:double, DoubleColMultiplyDoubleColumn(col 28:double, col 29:double)(children: DoubleColMultiplyDoubleColumn(col 29:double, col 30:double)(children: DoubleScalarSubtractDoubleColumn(val -26.28, col 28:double)(children: FuncPowerDoubleToDouble(col 29:double)(children: DoubleColDivideLongColumn(col 28:double, col 4:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 29:double)(children: DoubleColDivideLongColumn(col 28:double, col 4:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 28:double) -> 29:double) -> 28:double) -> 29:double) -> 28:double) -> 29:double, DoubleColUnaryMinus(col 28:double)(children: FuncPowerDoubleToDouble(col 30:double)(children:
  DoubleColDivideLongColumn(col 28:double, col 4:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 30:double)(children: DoubleColDivideLongColumn(col 28:double, col 4:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 28:double) -> 30:double) -> 28:double) -> 30:double) -> 28:double) -> 30:double) -> 28:double, CastLongToDouble(col 31:bigint)(children: LongColUnaryMinus(col 7:bigint) -> 31:bigint) -> 29:double) -> 30:double, DoubleColUnaryMinus(col 29:double)(children: DoubleColMultiplyDoubleScalar(col 28:double, val 10.175)(children: FuncPowerDoubleToDouble(col 29:double)(children: DoubleColDivideLongColumn(col 28:double, col 4:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 29:double)(children: DoubleColDivideLongColumn(col 28:double, col 4:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 28:double) -> 29:double) -> 28:double) -> 29:double) -> 28:double) -> 29:double) -> 28:double, DoubleCol
 DivideLongColumn(col 29:double, col 34:bigint)(children: DoubleColSubtractDoubleColumn(col 9:double, col 32:double)(children: DoubleColDivideLongColumn(col 29:double, col 6:bigint)(children: DoubleColMultiplyDoubleColumn(col 10:double, col 10:double) -> 29:double) -> 32:double) -> 29:double, IfExprNullCondExpr(col 31:boolean, null, col 33:bigint)(children: LongColEqualLongScalar(col 6:bigint, val 1) -> 31:boolean, LongColSubtractLongScalar(col 6:bigint, val 1) -> 33:bigint) -> 34:bigint) -> 32:double, DoubleColAddDoubleColumn(col 35:double, col 39:double)(children: DoubleColDivideLongColumn(col 29:double, col 37:bigint)(children: DoubleColSubtractDoubleColumn(col 9:double, col 35:double)(children: DoubleColDivideLongColumn(col 29:double, col 6:bigint)(children: DoubleColMultiplyDoubleColumn(col 10:double, col 10:double) -> 29:double) -> 35:double) -> 29:double, IfExprNullCondExpr(col 34:boolean, null, col 36:bigint)(children: LongColEqualLongScalar(col 6:bigint, val 1) -> 34:boolean
 , LongColSubtractLongScalar(col 6:bigint, val 1) -> 36:bigint) -> 37:bigint) -> 35:double, DoubleColMultiplyDoubleColumn(col 29:double, col 38:double)(children: DoubleColMultiplyDoubleColumn(col 38:double, col 39:double)(children: DoubleScalarSubtractDoubleColumn(val -26.28, col 29:double)(children: FuncPowerDoubleToDouble(col 38:double)(children: DoubleColDivideLongColumn(col 29:double, col 4:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 38:double)(children: DoubleColDivideLongColumn(col 29:double, col 4:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 29:double) -> 38:double) -> 29:double) -> 38:double) -> 29:double) -> 38:double, DoubleColUnaryMinus(col 29:double)(children: FuncPowerDoubleToDouble(col 39:double)(children: DoubleColDivideLongColumn(col 29:double, col 4:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 39:double)(children: DoubleColDivideLongColumn(col 29:double, col 4:bigint)(children: DoubleColMult
 iplyDoubleColumn(col 3:double, col 3:double) -> 29:double) -> 39:double) -> 29:double) -> 39:double) -> 29:double) -> 39:double) -> 29:double, CastLongToDouble(col 37:bigint)(children: LongColUnaryMinus(col 7:bigint) -> 37:bigint) -> 38:double) -> 39:double) -> 29:double, DoubleColUnaryMinus(col 38:double)(children: DoubleColUnaryMinus(col 35:double)(children: FuncPowerDoubleToDouble(col 38:double)(children: DoubleColDivideLongColumn(col 35:double, col 4:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 38:double)(children: DoubleColDivideLongColumn(col 35:double, col 4:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 35:double) -> 38:double) -> 35:double) -> 38:double) -> 35:double) -> 38:double) -> 35:double, DoubleColDivideDoubleColumn(col 38:double, col 39:double)(children: CastLongToDouble(col 37:bigint)(children: LongColUnaryMinus(col 7:bigint) -> 37:bigint) -> 38:double, FuncPowerDoubleToDouble(col 40:double)(children: DoubleColDi
 videLongColumn(col 39:double, col 4:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 40:double)(children: DoubleColDivideLongColumn(col 39:double, col 4:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 39:double) -> 40:double) -> 39:double) -> 40:double) -> 39:double) -> 40:double, DoubleColDivideLongColumn(col 38:double, col 13:bigint)(children: DoubleColSubtractDoubleColumn(col 11:double, col 39:double)(children: DoubleColDivideLongColumn(col 38:double, col 13:bigint)(children: DoubleColMultiplyDoubleColumn(col 12:double, col 12:double) -> 38:double) -> 39:double) -> 38:double) -> 39:double, DoubleScalarDivideDoubleColumn(val 10.175, col 38:double)(children: LongColDivideLongColumn(col 5:bigint, col 6:bigint) -> 38:double) -> 41:double, LongColDivideLongColumn(col 14:bigint, col 4:bigint) -> 38:double, DoubleColDivideLongColumn(col 42:double, col 45:bigint)(children: DoubleColSubtractDoubleColumn(col 11:double, col 43:double)(children
 : DoubleColDivideLongColumn(col 42:double, col 13:bigint)(children: DoubleColMultiplyDoubleColumn(col 12:double, col 12:double) -> 42:double) -> 43:double) -> 42:double, IfExprNullCondExpr(col 37:boolean, null, col 44:bigint)(children: LongColEqualLongScalar(col 13:bigint, val 1) -> 37:boolean, LongColSubtractLongScalar(col 13:bigint, val 1) -> 44:bigint) -> 45:bigint) -> 43:double, DoubleColSubtractDoubleColumn(col 42:double, col 50:double)(children: DoubleColAddDoubleColumn(col 46:double, col 50:double)(children: DoubleColDivideLongColumn(col 42:double, col 48:bigint)(children: DoubleColSubtractDoubleColumn(col 9:double, col 46:double)(children: DoubleColDivideLongColumn(col 42:double, col 6:bigint)(children: DoubleColMultiplyDoubleColumn(col 10:double, col 10:double) -> 42:double) -> 46:double) -> 42:double, IfExprNullCondExpr(col 45:boolean, null, col 47:bigint)(children: LongColEqualLongScalar(col 6:bigint, val 1) -> 45:boolean, LongColSubtractLongScalar(col 6:bigint, val 1) ->
  47:bigint) -> 48:bigint) -> 46:double, DoubleColMultiplyDoubleColumn(col 42:double, col 49:double)(children: DoubleColMultiplyDoubleColumn(col 49:double, col 50:double)(children: DoubleScalarSubtractDoubleColumn(val -26.28, col 42:double)(children: FuncPowerDoubleToDouble(col 49:double)(children: DoubleColDivideLongColumn(col 42:double, col 4:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 49:double)(children: DoubleColDivideLongColumn(col 42:double, col 4:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 42:double) -> 49:double) -> 42:double) -> 49:double) -> 42:double) -> 49:double, DoubleColUnaryMinus(col 42:double)(children: FuncPowerDoubleToDouble(col 50:double)(children: DoubleColDivideLongColumn(col 42:double, col 4:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 50:double)(children: DoubleColDivideLongColumn(col 42:double, col 4:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 42:
 double) -> 50:double) -> 42:double) -> 50:double) -> 42:double) -> 50:double) -> 42:double, CastLongToDouble(col 48:bigint)(children: LongColUnaryMinus(col 7:bigint) -> 48:bigint) -> 49:double) -> 50:double) -> 42:double, DoubleColMultiplyDoubleColumn(col 46:double, col 49:double)(children: DoubleColMultiplyDoubleColumn(col 49:double, col 50:double)(children: DoubleScalarSubtractDoubleColumn(val -26.28, col 46:double)(children: FuncPowerDoubleToDouble(col 49:double)(children: DoubleColDivideLongColumn(c

<TRUNCATED>

[8/8] hive git commit: HIVE-20391: HiveAggregateReduceFunctionsRule may infer wrong return type when decomposing aggregate function (Jesus Camacho Rodriguez, reviewed by Ashutosh Chauhan)

Posted by jc...@apache.org.
HIVE-20391: HiveAggregateReduceFunctionsRule may infer wrong return type when decomposing aggregate function (Jesus Camacho Rodriguez, reviewed by Ashutosh Chauhan)


Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/649d7c12
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/649d7c12
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/649d7c12

Branch: refs/heads/master
Commit: 649d7c12b13b31209391f0a9add43a44b7f6b8b2
Parents: 142367d
Author: Jesus Camacho Rodriguez <jc...@apache.org>
Authored: Wed Aug 15 08:14:28 2018 -0700
Committer: Jesus Camacho Rodriguez <jc...@apache.org>
Committed: Wed Aug 15 21:50:43 2018 -0700

----------------------------------------------------------------------
 .../rules/HiveAggregateReduceFunctionsRule.java |  42 ++++-
 .../materialized_view_rewrite_10.q              |  29 ++++
 .../llap/materialized_view_rewrite_10.q.out     | 172 +++++++++++++++++++
 .../clientpositive/llap/subquery_in.q.out       |   8 +-
 .../llap/subquery_in_having.q.out               |   6 +-
 .../clientpositive/llap/subquery_notin.q.out    |   4 +-
 .../clientpositive/llap/subquery_scalar.q.out   |   8 +-
 .../clientpositive/llap/subquery_select.q.out   |   6 +-
 .../llap/vector_cast_constant.q.out             |   6 +-
 .../llap/vector_reuse_scratchcols.q.out         |  12 +-
 .../clientpositive/llap/vectorization_0.q.out   |  10 +-
 .../clientpositive/llap/vectorization_2.q.out   |   6 +-
 .../clientpositive/llap/vectorization_3.q.out   |   6 +-
 .../llap/vectorization_pushdown.q.out           |   2 +-
 .../llap/vectorization_short_regress.q.out      |  30 ++--
 .../llap/vectorized_mapjoin.q.out               |   6 +-
 .../llap/vectorized_shufflejoin.q.out           |   6 +-
 .../parquet_vectorization_0.q.out               |   6 +-
 .../parquet_vectorization_2.q.out               |   2 +-
 .../parquet_vectorization_3.q.out               |   2 +-
 .../parquet_vectorization_pushdown.q.out        |   2 +-
 .../clientpositive/perf/spark/query13.q.out     |   2 +-
 .../clientpositive/perf/spark/query17.q.out     |   2 +-
 .../clientpositive/perf/spark/query22.q.out     |   2 +-
 .../clientpositive/perf/spark/query26.q.out     |   2 +-
 .../clientpositive/perf/spark/query27.q.out     |   2 +-
 .../clientpositive/perf/spark/query35.q.out     |   2 +-
 .../clientpositive/perf/spark/query39.q.out     |   8 +-
 .../clientpositive/perf/spark/query7.q.out      |   2 +-
 .../clientpositive/perf/spark/query85.q.out     |   2 +-
 .../clientpositive/perf/tez/query39.q.out       |   4 +-
 .../spark/dynamic_rdd_cache.q.out               |   8 +-
 .../spark/parquet_vectorization_0.q.out         |  10 +-
 .../spark/parquet_vectorization_2.q.out         |   6 +-
 .../spark/parquet_vectorization_3.q.out         |   6 +-
 .../spark/parquet_vectorization_pushdown.q.out  |   2 +-
 .../clientpositive/spark/subquery_in.q.out      |   8 +-
 .../clientpositive/spark/subquery_notin.q.out   |   4 +-
 .../clientpositive/spark/subquery_scalar.q.out  |   8 +-
 .../clientpositive/spark/subquery_select.q.out  |   6 +-
 .../spark/union_remove_6_subq.q.out             |   2 +-
 .../spark/vector_cast_constant.q.out            |   6 +-
 .../clientpositive/spark/vectorization_0.q.out  |  10 +-
 .../clientpositive/spark/vectorization_2.q.out  |   6 +-
 .../clientpositive/spark/vectorization_3.q.out  |   6 +-
 .../spark/vectorization_pushdown.q.out          |   2 +-
 .../spark/vectorization_short_regress.q.out     |  30 ++--
 .../spark/vectorized_mapjoin.q.out              |   6 +-
 .../spark/vectorized_shufflejoin.q.out          |   6 +-
 .../clientpositive/union_remove_6_subq.q.out    |   2 +-
 .../clientpositive/vector_cast_constant.q.out   |   2 +-
 .../clientpositive/vectorization_2.q.out        |   2 +-
 .../clientpositive/vectorization_3.q.out        |   2 +-
 .../clientpositive/vectorization_pushdown.q.out |   2 +-
 .../clientpositive/vectorized_mapjoin.q.out     |   2 +-
 .../clientpositive/vectorized_shufflejoin.q.out |   2 +-
 56 files changed, 388 insertions(+), 157 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/649d7c12/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HiveAggregateReduceFunctionsRule.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HiveAggregateReduceFunctionsRule.java b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HiveAggregateReduceFunctionsRule.java
index fb65ce1..802c1c1 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HiveAggregateReduceFunctionsRule.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HiveAggregateReduceFunctionsRule.java
@@ -34,6 +34,7 @@ import org.apache.calcite.rex.RexNode;
 import org.apache.calcite.sql.SqlAggFunction;
 import org.apache.calcite.sql.SqlKind;
 import org.apache.calcite.sql.fun.SqlStdOperatorTable;
+import org.apache.calcite.sql.type.InferTypes;
 import org.apache.calcite.sql.type.ReturnTypes;
 import org.apache.calcite.sql.type.SqlTypeName;
 import org.apache.calcite.sql.type.SqlTypeUtil;
@@ -41,10 +42,12 @@ import org.apache.calcite.tools.RelBuilder;
 import org.apache.calcite.util.CompositeList;
 import org.apache.calcite.util.ImmutableIntList;
 import org.apache.calcite.util.Util;
+import org.apache.hadoop.hive.serde2.typeinfo.TypeInfoFactory;
 import org.apache.hadoop.hive.ql.optimizer.calcite.HiveRelFactories;
 import org.apache.hadoop.hive.ql.optimizer.calcite.functions.HiveSqlCountAggFunction;
 import org.apache.hadoop.hive.ql.optimizer.calcite.functions.HiveSqlSumAggFunction;
 import org.apache.hadoop.hive.ql.optimizer.calcite.reloperators.HiveAggregate;
+import org.apache.hadoop.hive.ql.optimizer.calcite.translator.TypeConverter;
 
 import java.math.BigDecimal;
 import java.util.ArrayList;
@@ -280,13 +283,15 @@ public class HiveAggregateReduceFunctionsRule extends RelOptRule {
     final RexBuilder rexBuilder = oldAggRel.getCluster().getRexBuilder();
     final RelDataTypeFactory typeFactory = oldAggRel.getCluster().getTypeFactory();
     final int iAvgInput = oldCall.getArgList().get(0);
-    RelDataType avgInputType = typeFactory.createTypeWithNullability(
+    final RelDataType avgInputType = typeFactory.createTypeWithNullability(
         getFieldType(oldAggRel.getInput(), iAvgInput), true);
+    final RelDataType sumReturnType = getSumReturnType(
+        rexBuilder.getTypeFactory(), avgInputType, oldCall.getType());
     final AggregateCall sumCall =
         AggregateCall.create(
             new HiveSqlSumAggFunction(
                 oldCall.isDistinct(),
-                oldCall.getAggregation().getReturnTypeInference(),
+                ReturnTypes.explicit(sumReturnType),
                 oldCall.getAggregation().getOperandTypeInference(),
                 oldCall.getAggregation().getOperandTypeChecker()), //SqlStdOperatorTable.SUM,
             oldCall.isDistinct(),
@@ -371,17 +376,21 @@ public class HiveAggregateReduceFunctionsRule extends RelOptRule {
     final RexNode argRef =
         rexBuilder.ensureType(oldCallType, inputExprs.get(argOrdinal), false);
     final int argRefOrdinal = lookupOrAdd(inputExprs, argRef);
+    final RelDataType sumReturnType = getSumReturnType(
+        rexBuilder.getTypeFactory(), argRef.getType(), oldCall.getType());
 
     final RexNode argSquared = rexBuilder.makeCall(SqlStdOperatorTable.MULTIPLY,
         argRef, argRef);
     final int argSquaredOrdinal = lookupOrAdd(inputExprs, argSquared);
+    final RelDataType sumSquaredReturnType = getSumReturnType(
+        rexBuilder.getTypeFactory(), argSquared.getType(), oldCall.getType());
 
     final AggregateCall sumArgSquaredAggCall =
         createAggregateCallWithBinding(typeFactory,
             new HiveSqlSumAggFunction(
                 oldCall.isDistinct(),
-                oldCall.getAggregation().getReturnTypeInference(),
-                oldCall.getAggregation().getOperandTypeInference(),
+                ReturnTypes.explicit(sumSquaredReturnType),
+                InferTypes.explicit(Collections.singletonList(argSquared.getType())),
                 oldCall.getAggregation().getOperandTypeChecker()), //SqlStdOperatorTable.SUM,
             argSquared.getType(), oldAggRel, oldCall, argSquaredOrdinal);
 
@@ -397,8 +406,8 @@ public class HiveAggregateReduceFunctionsRule extends RelOptRule {
         AggregateCall.create(
             new HiveSqlSumAggFunction(
                 oldCall.isDistinct(),
-                oldCall.getAggregation().getReturnTypeInference(),
-                oldCall.getAggregation().getOperandTypeInference(),
+                ReturnTypes.explicit(sumReturnType),
+                InferTypes.explicit(Collections.singletonList(argOrdinalType)),
                 oldCall.getAggregation().getOperandTypeChecker()), //SqlStdOperatorTable.SUM,
             oldCall.isDistinct(),
             oldCall.isApproximate(),
@@ -532,4 +541,25 @@ public class HiveAggregateReduceFunctionsRule extends RelOptRule {
         relNode.getRowType().getFieldList().get(i);
     return inputField.getType();
   }
+
+  private RelDataType getSumReturnType(RelDataTypeFactory typeFactory,
+      RelDataType inputType, RelDataType originalReturnType) {
+    switch (inputType.getSqlTypeName()) {
+      case TINYINT:
+      case SMALLINT:
+      case INTEGER:
+      case BIGINT:
+        return TypeConverter.convert(TypeInfoFactory.longTypeInfo, typeFactory);
+      case TIMESTAMP:
+      case FLOAT:
+      case DOUBLE:
+      case VARCHAR:
+      case CHAR:
+        return TypeConverter.convert(TypeInfoFactory.doubleTypeInfo, typeFactory);
+      case DECIMAL:
+        // We keep precision and scale
+        return originalReturnType;
+    }
+    return null;
+  }
 }

http://git-wip-us.apache.org/repos/asf/hive/blob/649d7c12/ql/src/test/queries/clientpositive/materialized_view_rewrite_10.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/materialized_view_rewrite_10.q b/ql/src/test/queries/clientpositive/materialized_view_rewrite_10.q
index 35c58ba..9542792 100644
--- a/ql/src/test/queries/clientpositive/materialized_view_rewrite_10.q
+++ b/ql/src/test/queries/clientpositive/materialized_view_rewrite_10.q
@@ -60,3 +60,32 @@ select salary, avg(salary) as a
 from emps_n10 where salary > 0 group by salary;
 
 drop materialized view mv1_n10;
+
+-- EXAMPLE 4
+create table emps_n10_2 (
+  empid int,
+  deptno int,
+  name varchar(256),
+  salary tinyint,
+  commission int)
+stored as orc TBLPROPERTIES ('transactional'='true');
+insert into emps_n10_2 values (100, 10, 'Bill', 1, 1000), (200, 20, 'Eric', 2, 500),
+  (150, 10, 'Sebastian', 2, null), (110, 10, 'Theodore', 3, 250), (110, 10, 'Bill', 0, 250);
+analyze table emps_n10_2 compute statistics for columns;
+
+create materialized view mv1_n10 as
+select salary, sum(salary), count(salary) as a
+from emps_n10_2 where salary > 0 group by salary;
+analyze table mv1_n10 compute statistics for columns;
+
+explain
+select avg(salary)
+from emps_n10_2 where salary > 0;
+
+select avg(salary)
+from emps_n10_2 where salary > 0;
+
+drop materialized view mv1_n10;
+
+drop table emps_n10;
+drop table emps_n10_2;
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/hive/blob/649d7c12/ql/src/test/results/clientpositive/llap/materialized_view_rewrite_10.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/llap/materialized_view_rewrite_10.q.out b/ql/src/test/results/clientpositive/llap/materialized_view_rewrite_10.q.out
index 6982646..2223764 100644
--- a/ql/src/test/results/clientpositive/llap/materialized_view_rewrite_10.q.out
+++ b/ql/src/test/results/clientpositive/llap/materialized_view_rewrite_10.q.out
@@ -252,3 +252,175 @@ POSTHOOK: query: drop materialized view mv1_n10
 POSTHOOK: type: DROP_MATERIALIZED_VIEW
 POSTHOOK: Input: default@mv1_n10
 POSTHOOK: Output: default@mv1_n10
+PREHOOK: query: create table emps_n10_2 (
+  empid int,
+  deptno int,
+  name varchar(256),
+  salary tinyint,
+  commission int)
+stored as orc TBLPROPERTIES ('transactional'='true')
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@emps_n10_2
+POSTHOOK: query: create table emps_n10_2 (
+  empid int,
+  deptno int,
+  name varchar(256),
+  salary tinyint,
+  commission int)
+stored as orc TBLPROPERTIES ('transactional'='true')
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@emps_n10_2
+PREHOOK: query: insert into emps_n10_2 values (100, 10, 'Bill', 1, 1000), (200, 20, 'Eric', 2, 500),
+  (150, 10, 'Sebastian', 2, null), (110, 10, 'Theodore', 3, 250), (110, 10, 'Bill', 0, 250)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@emps_n10_2
+POSTHOOK: query: insert into emps_n10_2 values (100, 10, 'Bill', 1, 1000), (200, 20, 'Eric', 2, 500),
+  (150, 10, 'Sebastian', 2, null), (110, 10, 'Theodore', 3, 250), (110, 10, 'Bill', 0, 250)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@emps_n10_2
+POSTHOOK: Lineage: emps_n10_2.commission SCRIPT []
+POSTHOOK: Lineage: emps_n10_2.deptno SCRIPT []
+POSTHOOK: Lineage: emps_n10_2.empid SCRIPT []
+POSTHOOK: Lineage: emps_n10_2.name SCRIPT []
+POSTHOOK: Lineage: emps_n10_2.salary SCRIPT []
+PREHOOK: query: analyze table emps_n10_2 compute statistics for columns
+PREHOOK: type: ANALYZE_TABLE
+PREHOOK: Input: default@emps_n10_2
+PREHOOK: Output: default@emps_n10_2
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table emps_n10_2 compute statistics for columns
+POSTHOOK: type: ANALYZE_TABLE
+POSTHOOK: Input: default@emps_n10_2
+POSTHOOK: Output: default@emps_n10_2
+#### A masked pattern was here ####
+PREHOOK: query: create materialized view mv1_n10 as
+select salary, sum(salary), count(salary) as a
+from emps_n10_2 where salary > 0 group by salary
+PREHOOK: type: CREATE_MATERIALIZED_VIEW
+PREHOOK: Input: default@emps_n10_2
+PREHOOK: Output: database:default
+PREHOOK: Output: default@mv1_n10
+POSTHOOK: query: create materialized view mv1_n10 as
+select salary, sum(salary), count(salary) as a
+from emps_n10_2 where salary > 0 group by salary
+POSTHOOK: type: CREATE_MATERIALIZED_VIEW
+POSTHOOK: Input: default@emps_n10_2
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@mv1_n10
+PREHOOK: query: analyze table mv1_n10 compute statistics for columns
+PREHOOK: type: ANALYZE_TABLE
+PREHOOK: Input: default@mv1_n10
+PREHOOK: Output: default@mv1_n10
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table mv1_n10 compute statistics for columns
+POSTHOOK: type: ANALYZE_TABLE
+POSTHOOK: Input: default@mv1_n10
+POSTHOOK: Output: default@mv1_n10
+#### A masked pattern was here ####
+PREHOOK: query: explain
+select avg(salary)
+from emps_n10_2 where salary > 0
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select avg(salary)
+from emps_n10_2 where salary > 0
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+  Stage-1 is a root stage
+  Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+  Stage: Stage-1
+    Tez
+#### A masked pattern was here ####
+      Edges:
+        Reducer 2 <- Map 1 (CUSTOM_SIMPLE_EDGE)
+#### A masked pattern was here ####
+      Vertices:
+        Map 1 
+            Map Operator Tree:
+                TableScan
+                  alias: default.mv1_n10
+                  Statistics: Num rows: 3 Data size: 48 Basic stats: COMPLETE Column stats: COMPLETE
+                  Select Operator
+                    expressions: _c1 (type: bigint), a (type: bigint)
+                    outputColumnNames: _c1, a
+                    Statistics: Num rows: 3 Data size: 48 Basic stats: COMPLETE Column stats: COMPLETE
+                    Group By Operator
+                      aggregations: sum(_c1), $sum0(a)
+                      mode: hash
+                      outputColumnNames: _col0, _col1
+                      Statistics: Num rows: 1 Data size: 16 Basic stats: COMPLETE Column stats: COMPLETE
+                      Reduce Output Operator
+                        sort order: 
+                        Statistics: Num rows: 1 Data size: 16 Basic stats: COMPLETE Column stats: COMPLETE
+                        value expressions: _col0 (type: bigint), _col1 (type: bigint)
+            Execution mode: llap
+            LLAP IO: all inputs
+        Reducer 2 
+            Execution mode: llap
+            Reduce Operator Tree:
+              Group By Operator
+                aggregations: sum(VALUE._col0), $sum0(VALUE._col1)
+                mode: mergepartial
+                outputColumnNames: _col0, _col1
+                Statistics: Num rows: 1 Data size: 16 Basic stats: COMPLETE Column stats: COMPLETE
+                Select Operator
+                  expressions: (UDFToDouble(_col0) / _col1) (type: double)
+                  outputColumnNames: _col0
+                  Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
+                  File Output Operator
+                    compressed: false
+                    Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
+                    table:
+                        input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+                        output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+                        serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+  Stage: Stage-0
+    Fetch Operator
+      limit: -1
+      Processor Tree:
+        ListSink
+
+PREHOOK: query: select avg(salary)
+from emps_n10_2 where salary > 0
+PREHOOK: type: QUERY
+PREHOOK: Input: default@emps_n10_2
+PREHOOK: Input: default@mv1_n10
+#### A masked pattern was here ####
+POSTHOOK: query: select avg(salary)
+from emps_n10_2 where salary > 0
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@emps_n10_2
+POSTHOOK: Input: default@mv1_n10
+#### A masked pattern was here ####
+2.0
+PREHOOK: query: drop materialized view mv1_n10
+PREHOOK: type: DROP_MATERIALIZED_VIEW
+PREHOOK: Input: default@mv1_n10
+PREHOOK: Output: default@mv1_n10
+POSTHOOK: query: drop materialized view mv1_n10
+POSTHOOK: type: DROP_MATERIALIZED_VIEW
+POSTHOOK: Input: default@mv1_n10
+POSTHOOK: Output: default@mv1_n10
+PREHOOK: query: drop table emps_n10
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@emps_n10
+PREHOOK: Output: default@emps_n10
+POSTHOOK: query: drop table emps_n10
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@emps_n10
+POSTHOOK: Output: default@emps_n10
+PREHOOK: query: drop table emps_n10_2
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@emps_n10_2
+PREHOOK: Output: default@emps_n10_2
+POSTHOOK: query: drop table emps_n10_2
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@emps_n10_2
+POSTHOOK: Output: default@emps_n10_2

http://git-wip-us.apache.org/repos/asf/hive/blob/649d7c12/ql/src/test/results/clientpositive/llap/subquery_in.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/llap/subquery_in.q.out b/ql/src/test/results/clientpositive/llap/subquery_in.q.out
index a045b12..cb2aa4c 100644
--- a/ql/src/test/results/clientpositive/llap/subquery_in.q.out
+++ b/ql/src/test/results/clientpositive/llap/subquery_in.q.out
@@ -385,7 +385,7 @@ STAGE PLANS:
                   predicate: (_col0 is not null and _col1 is not null) (type: boolean)
                   Statistics: Num rows: 1 Data size: 16 Basic stats: COMPLETE Column stats: COMPLETE
                   Select Operator
-                    expressions: (_col0 / _col1) (type: double)
+                    expressions: (UDFToDouble(_col0) / _col1) (type: double)
                     outputColumnNames: _col0
                     Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
                     Reduce Output Operator
@@ -4575,7 +4575,7 @@ STAGE PLANS:
                   predicate: (_col1 is not null and _col2 is not null) (type: boolean)
                   Statistics: Num rows: 13 Data size: 260 Basic stats: COMPLETE Column stats: COMPLETE
                   Select Operator
-                    expressions: _col0 (type: int), (_col1 / _col2) (type: double)
+                    expressions: _col0 (type: int), (UDFToDouble(_col1) / _col2) (type: double)
                     outputColumnNames: _col0, _col1
                     Statistics: Num rows: 13 Data size: 156 Basic stats: COMPLETE Column stats: COMPLETE
                     Group By Operator
@@ -5239,7 +5239,7 @@ STAGE PLANS:
                 outputColumnNames: _col0, _col1, _col2
                 Statistics: Num rows: 13 Data size: 260 Basic stats: COMPLETE Column stats: COMPLETE
                 Select Operator
-                  expressions: _col0 (type: int), (_col1 / _col2) (type: double)
+                  expressions: _col0 (type: int), (UDFToDouble(_col1) / _col2) (type: double)
                   outputColumnNames: _col0, _col1
                   Statistics: Num rows: 13 Data size: 260 Basic stats: COMPLETE Column stats: COMPLETE
                   Group By Operator
@@ -5267,7 +5267,7 @@ STAGE PLANS:
                   predicate: (_col1 is not null and _col2 is not null) (type: boolean)
                   Statistics: Num rows: 13 Data size: 260 Basic stats: COMPLETE Column stats: COMPLETE
                   Select Operator
-                    expressions: (_col1 / _col2) (type: double), _col0 (type: int), true (type: boolean)
+                    expressions: (UDFToDouble(_col1) / _col2) (type: double), _col0 (type: int), true (type: boolean)
                     outputColumnNames: _col0, _col1, _col2
                     Statistics: Num rows: 13 Data size: 208 Basic stats: COMPLETE Column stats: COMPLETE
                     Reduce Output Operator

http://git-wip-us.apache.org/repos/asf/hive/blob/649d7c12/ql/src/test/results/clientpositive/llap/subquery_in_having.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/llap/subquery_in_having.q.out b/ql/src/test/results/clientpositive/llap/subquery_in_having.q.out
index 3e0615a..ab28bba 100644
--- a/ql/src/test/results/clientpositive/llap/subquery_in_having.q.out
+++ b/ql/src/test/results/clientpositive/llap/subquery_in_having.q.out
@@ -338,7 +338,7 @@ STAGE PLANS:
                 outputColumnNames: _col0, _col1, _col2
                 Statistics: Num rows: 1 Data size: 188 Basic stats: COMPLETE Column stats: NONE
                 Select Operator
-                  expressions: _col0 (type: string), (_col1 / _col2) (type: double)
+                  expressions: _col0 (type: string), (UDFToDouble(_col1) / _col2) (type: double)
                   outputColumnNames: _col0, _col1
                   Statistics: Num rows: 1 Data size: 188 Basic stats: COMPLETE Column stats: NONE
                   Merge Join Operator
@@ -467,7 +467,7 @@ STAGE PLANS:
                 outputColumnNames: _col0, _col1, _col2
                 Statistics: Num rows: 1 Data size: 188 Basic stats: COMPLETE Column stats: NONE
                 Select Operator
-                  expressions: _col0 (type: string), (_col1 / _col2) (type: double)
+                  expressions: _col0 (type: string), (UDFToDouble(_col1) / _col2) (type: double)
                   outputColumnNames: _col0, _col1
                   Statistics: Num rows: 1 Data size: 188 Basic stats: COMPLETE Column stats: NONE
                   Merge Join Operator
@@ -1472,7 +1472,7 @@ STAGE PLANS:
                 outputColumnNames: _col0, _col1, _col2, _col3
                 Statistics: Num rows: 1 Data size: 372 Basic stats: COMPLETE Column stats: NONE
                 Select Operator
-                  expressions: _col1 (type: string), _col0 (type: string), (_col2 / _col3) (type: double)
+                  expressions: _col1 (type: string), _col0 (type: string), (UDFToDouble(_col2) / _col3) (type: double)
                   outputColumnNames: _col0, _col1, _col2
                   Statistics: Num rows: 1 Data size: 372 Basic stats: COMPLETE Column stats: NONE
                   Map Join Operator

http://git-wip-us.apache.org/repos/asf/hive/blob/649d7c12/ql/src/test/results/clientpositive/llap/subquery_notin.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/llap/subquery_notin.q.out b/ql/src/test/results/clientpositive/llap/subquery_notin.q.out
index f5f5f36..70501f9 100644
--- a/ql/src/test/results/clientpositive/llap/subquery_notin.q.out
+++ b/ql/src/test/results/clientpositive/llap/subquery_notin.q.out
@@ -770,7 +770,7 @@ STAGE PLANS:
                 outputColumnNames: _col0, _col1
                 Statistics: Num rows: 1 Data size: 16 Basic stats: COMPLETE Column stats: COMPLETE
                 Select Operator
-                  expressions: (_col0 / _col1) (type: double)
+                  expressions: (UDFToDouble(_col0) / _col1) (type: double)
                   outputColumnNames: _col0
                   Statistics: Num rows: 1 Data size: 16 Basic stats: COMPLETE Column stats: COMPLETE
                   Group By Operator
@@ -791,7 +791,7 @@ STAGE PLANS:
                 outputColumnNames: _col0, _col1
                 Statistics: Num rows: 1 Data size: 16 Basic stats: COMPLETE Column stats: COMPLETE
                 Select Operator
-                  expressions: (_col0 / _col1) (type: double), true (type: boolean)
+                  expressions: (UDFToDouble(_col0) / _col1) (type: double), true (type: boolean)
                   outputColumnNames: _col0, _col1
                   Statistics: Num rows: 1 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE
                   Reduce Output Operator

http://git-wip-us.apache.org/repos/asf/hive/blob/649d7c12/ql/src/test/results/clientpositive/llap/subquery_scalar.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/llap/subquery_scalar.q.out b/ql/src/test/results/clientpositive/llap/subquery_scalar.q.out
index 4423aec..82871f4 100644
--- a/ql/src/test/results/clientpositive/llap/subquery_scalar.q.out
+++ b/ql/src/test/results/clientpositive/llap/subquery_scalar.q.out
@@ -164,7 +164,7 @@ STAGE PLANS:
                 outputColumnNames: _col0, _col1
                 Statistics: Num rows: 1 Data size: 20 Basic stats: COMPLETE Column stats: NONE
                 Select Operator
-                  expressions: (_col0 / _col1) (type: double)
+                  expressions: (UDFToDouble(_col0) / _col1) (type: double)
                   outputColumnNames: _col0
                   Statistics: Num rows: 1 Data size: 20 Basic stats: COMPLETE Column stats: NONE
                   Reduce Output Operator
@@ -907,7 +907,7 @@ STAGE PLANS:
                 outputColumnNames: _col0, _col1
                 Statistics: Num rows: 1 Data size: 16 Basic stats: COMPLETE Column stats: COMPLETE
                 Select Operator
-                  expressions: (_col0 / _col1) (type: double)
+                  expressions: (UDFToDouble(_col0) / _col1) (type: double)
                   outputColumnNames: _col0
                   Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
                   Reduce Output Operator
@@ -1670,7 +1670,7 @@ STAGE PLANS:
                 outputColumnNames: _col0, _col1, _col2
                 Statistics: Num rows: 1 Data size: 188 Basic stats: COMPLETE Column stats: NONE
                 Select Operator
-                  expressions: (_col1 / _col2) (type: double), _col0 (type: string)
+                  expressions: (UDFToDouble(_col1) / _col2) (type: double), _col0 (type: string)
                   outputColumnNames: _col0, _col1
                   Statistics: Num rows: 1 Data size: 188 Basic stats: COMPLETE Column stats: NONE
                   Reduce Output Operator
@@ -6379,7 +6379,7 @@ STAGE PLANS:
                 outputColumnNames: _col0, _col1, _col2
                 Statistics: Num rows: 1 Data size: 20 Basic stats: COMPLETE Column stats: COMPLETE
                 Filter Operator
-                  predicate: (0.0D = (_col1 / _col2)) (type: boolean)
+                  predicate: (0.0D = (UDFToDouble(_col1) / _col2)) (type: boolean)
                   Statistics: Num rows: 1 Data size: 20 Basic stats: COMPLETE Column stats: COMPLETE
                   Select Operator
                     expressions: _col0 (type: int)

http://git-wip-us.apache.org/repos/asf/hive/blob/649d7c12/ql/src/test/results/clientpositive/llap/subquery_select.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/llap/subquery_select.q.out b/ql/src/test/results/clientpositive/llap/subquery_select.q.out
index cf3d60f..866ae28 100644
--- a/ql/src/test/results/clientpositive/llap/subquery_select.q.out
+++ b/ql/src/test/results/clientpositive/llap/subquery_select.q.out
@@ -3933,7 +3933,7 @@ STAGE PLANS:
                 outputColumnNames: _col0, _col1
                 Statistics: Num rows: 1 Data size: 16 Basic stats: COMPLETE Column stats: COMPLETE
                 Select Operator
-                  expressions: (_col0 / _col1) (type: double)
+                  expressions: (UDFToDouble(_col0) / _col1) (type: double)
                   outputColumnNames: _col0
                   Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
                   Reduce Output Operator
@@ -4268,7 +4268,7 @@ STAGE PLANS:
                 outputColumnNames: _col0, _col1
                 Statistics: Num rows: 1 Data size: 16 Basic stats: COMPLETE Column stats: COMPLETE
                 Select Operator
-                  expressions: (_col0 / _col1) (type: double)
+                  expressions: (UDFToDouble(_col0) / _col1) (type: double)
                   outputColumnNames: _col0
                   Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
                   Reduce Output Operator
@@ -4530,7 +4530,7 @@ STAGE PLANS:
                 outputColumnNames: _col0, _col1
                 Statistics: Num rows: 1 Data size: 16 Basic stats: COMPLETE Column stats: COMPLETE
                 Select Operator
-                  expressions: (_col0 / _col1) (type: double)
+                  expressions: (UDFToDouble(_col0) / _col1) (type: double)
                   outputColumnNames: _col0
                   Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
                   Reduce Output Operator

http://git-wip-us.apache.org/repos/asf/hive/blob/649d7c12/ql/src/test/results/clientpositive/llap/vector_cast_constant.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/llap/vector_cast_constant.q.out b/ql/src/test/results/clientpositive/llap/vector_cast_constant.q.out
index 8c74a92..060281a 100644
--- a/ql/src/test/results/clientpositive/llap/vector_cast_constant.q.out
+++ b/ql/src/test/results/clientpositive/llap/vector_cast_constant.q.out
@@ -210,13 +210,13 @@ STAGE PLANS:
                 outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6
                 Statistics: Num rows: 257 Data size: 40092 Basic stats: COMPLETE Column stats: COMPLETE
                 Select Operator
-                  expressions: _col0 (type: int), (_col1 / _col2) (type: double), (_col3 / _col4) (type: double), CAST( (_col5 / _col6) AS decimal(6,4)) (type: decimal(6,4))
+                  expressions: _col0 (type: int), (UDFToDouble(_col1) / _col2) (type: double), (_col3 / _col4) (type: double), CAST( (_col5 / _col6) AS decimal(6,4)) (type: decimal(6,4))
                   outputColumnNames: _col0, _col1, _col2, _col3
                   Select Vectorization:
                       className: VectorSelectOperator
                       native: true
-                      projectedOutputColumnNums: [0, 7, 8, 11]
-                      selectExpressions: LongColDivideLongColumn(col 1:bigint, col 2:bigint) -> 7:double, DoubleColDivideLongColumn(col 3:double, col 4:bigint) -> 8:double, CastDecimalToDecimal(col 10:decimal(32,20))(children: DecimalColDivideDecimalColumn(col 5:decimal(12,0), col 9:decimal(19,0))(children: CastLongToDecimal(col 6:bigint) -> 9:decimal(19,0)) -> 10:decimal(32,20)) -> 11:decimal(6,4)
+                      projectedOutputColumnNums: [0, 8, 7, 11]
+                      selectExpressions: DoubleColDivideLongColumn(col 7:double, col 2:bigint)(children: CastLongToDouble(col 1:bigint) -> 7:double) -> 8:double, DoubleColDivideLongColumn(col 3:double, col 4:bigint) -> 7:double, CastDecimalToDecimal(col 10:decimal(32,20))(children: DecimalColDivideDecimalColumn(col 5:decimal(12,0), col 9:decimal(19,0))(children: CastLongToDecimal(col 6:bigint) -> 9:decimal(19,0)) -> 10:decimal(32,20)) -> 11:decimal(6,4)
                   Statistics: Num rows: 257 Data size: 33924 Basic stats: COMPLETE Column stats: COMPLETE
                   Reduce Output Operator
                     key expressions: _col0 (type: int)

http://git-wip-us.apache.org/repos/asf/hive/blob/649d7c12/ql/src/test/results/clientpositive/llap/vector_reuse_scratchcols.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/llap/vector_reuse_scratchcols.q.out b/ql/src/test/results/clientpositive/llap/vector_reuse_scratchcols.q.out
index fc269b2..4a10b3b 100644
--- a/ql/src/test/results/clientpositive/llap/vector_reuse_scratchcols.q.out
+++ b/ql/src/test/results/clientpositive/llap/vector_reuse_scratchcols.q.out
@@ -181,13 +181,13 @@ STAGE PLANS:
                 outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10
                 Statistics: Num rows: 1 Data size: 84 Basic stats: COMPLETE Column stats: COMPLETE
                 Select Operator
-                  expressions: (_col0 / _col1) (type: double), ((_col0 / _col1) + -3728.0D) (type: double), (- ((_col0 / _col1) + -3728.0D)) (type: double), (- (- ((_col0 / _col1) + -3728.0D))) (type: double), ((- (- ((_col0 / _col1) + -3728.0D))) * ((_col0 / _col1) + -3728.0D)) (type: double), _col2 (type: double), (- (_col0 / _col1)) (type: double), power(((_col3 - ((_col4 * _col4) / _col1)) / _col1), 0.5) (type: double), (((- (- ((_col0 / _col1) + -3728.0D))) * ((_col0 / _col1) + -3728.0D)) * (- (- ((_col0 / _col1) + -3728.0D)))) (type: double), power(((_col5 - ((_col6 * _col6) / _col7)) / CASE WHEN ((_col7 = 1L)) THEN (null) ELSE ((_col7 - 1)) END), 0.5) (type: double), (- power(((_col3 - ((_col4 * _col4) / _col1)) / _col1), 0.5)) (type: double), (power(((_col3 - ((_col4 * _col4) / _col1)) / _col1), 0.5) - (- (- ((_col0 / _col1) + -3728.0D)))) (type: double), ((power(((_col3 - ((_col4 * _col4) / _col1)) / _col1), 0.5) - (- (- ((_col0 / _col1) + -3728.0D)))) * power(((_col3 - ((_
 col4 * _col4) / _col1)) / _col1), 0.5)) (type: double), ((_col3 - ((_col4 * _col4) / _col1)) / CASE WHEN ((_col1 = 1L)) THEN (null) ELSE ((_col1 - 1)) END) (type: double), (_col8 / _col9) (type: double), (10.175D - ((_col3 - ((_col4 * _col4) / _col1)) / CASE WHEN ((_col1 = 1L)) THEN (null) ELSE ((_col1 - 1)) END)) (type: double), (- (10.175D - ((_col3 - ((_col4 * _col4) / _col1)) / CASE WHEN ((_col1 = 1L)) THEN (null) ELSE ((_col1 - 1)) END))) (type: double), ((- power(((_col3 - ((_col4 * _col4) / _col1)) / _col1), 0.5)) / -563.0D) (type: double), power(((_col3 - ((_col4 * _col4) / _col1)) / CASE WHEN ((_col1 = 1L)) THEN (null) ELSE ((_col1 - 1)) END), 0.5) (type: double), (- ((- power(((_col3 - ((_col4 * _col4) / _col1)) / _col1), 0.5)) / -563.0D)) (type: double), ((_col0 / _col1) / _col2) (type: double), _col10 (type: tinyint), _col7 (type: bigint), (UDFToDouble(_col10) / ((- power(((_col3 - ((_col4 * _col4) / _col1)) / _col1), 0.5)) / -563.0D)) (type: double), (- ((_col0 / _col1)
  / _col2)) (type: double)
+                  expressions: (UDFToDouble(_col0) / _col1) (type: double), ((UDFToDouble(_col0) / _col1) + -3728.0D) (type: double), (- ((UDFToDouble(_col0) / _col1) + -3728.0D)) (type: double), (- (- ((UDFToDouble(_col0) / _col1) + -3728.0D))) (type: double), ((- (- ((UDFToDouble(_col0) / _col1) + -3728.0D))) * ((UDFToDouble(_col0) / _col1) + -3728.0D)) (type: double), _col2 (type: double), (- (UDFToDouble(_col0) / _col1)) (type: double), power(((_col3 - ((_col4 * _col4) / _col1)) / _col1), 0.5) (type: double), (((- (- ((UDFToDouble(_col0) / _col1) + -3728.0D))) * ((UDFToDouble(_col0) / _col1) + -3728.0D)) * (- (- ((UDFToDouble(_col0) / _col1) + -3728.0D)))) (type: double), power(((_col5 - ((_col6 * _col6) / _col7)) / CASE WHEN ((_col7 = 1L)) THEN (null) ELSE ((_col7 - 1)) END), 0.5) (type: double), (- power(((_col3 - ((_col4 * _col4) / _col1)) / _col1), 0.5)) (type: double), (power(((_col3 - ((_col4 * _col4) / _col1)) / _col1), 0.5) - (- (- ((UDFToDouble(_col0) / _col1) + -3728.0
 D)))) (type: double), ((power(((_col3 - ((_col4 * _col4) / _col1)) / _col1), 0.5) - (- (- ((UDFToDouble(_col0) / _col1) + -3728.0D)))) * power(((_col3 - ((_col4 * _col4) / _col1)) / _col1), 0.5)) (type: double), ((_col3 - ((_col4 * _col4) / _col1)) / CASE WHEN ((_col1 = 1L)) THEN (null) ELSE ((_col1 - 1)) END) (type: double), (_col8 / _col9) (type: double), (10.175D - ((_col3 - ((_col4 * _col4) / _col1)) / CASE WHEN ((_col1 = 1L)) THEN (null) ELSE ((_col1 - 1)) END)) (type: double), (- (10.175D - ((_col3 - ((_col4 * _col4) / _col1)) / CASE WHEN ((_col1 = 1L)) THEN (null) ELSE ((_col1 - 1)) END))) (type: double), ((- power(((_col3 - ((_col4 * _col4) / _col1)) / _col1), 0.5)) / -563.0D) (type: double), power(((_col3 - ((_col4 * _col4) / _col1)) / CASE WHEN ((_col1 = 1L)) THEN (null) ELSE ((_col1 - 1)) END), 0.5) (type: double), (- ((- power(((_col3 - ((_col4 * _col4) / _col1)) / _col1), 0.5)) / -563.0D)) (type: double), ((UDFToDouble(_col0) / _col1) / _col2) (type: double), _col10 (ty
 pe: tinyint), _col7 (type: bigint), (UDFToDouble(_col10) / ((- power(((_col3 - ((_col4 * _col4) / _col1)) / _col1), 0.5)) / -563.0D)) (type: double), (- ((UDFToDouble(_col0) / _col1) / _col2)) (type: double)
                   outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13, _col14, _col15, _col16, _col17, _col18, _col19, _col20, _col21, _col22, _col23, _col24
                   Select Vectorization:
                       className: VectorSelectOperator
                       native: true
-                      projectedOutputColumnNums: [11, 13, 12, 15, 14, 2, 17, 16, 19, 18, 24, 25, 27, 26, 20, 30, 34, 31, 37, 41, 42, 10, 7, 44, 38]
-                      selectExpressions: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 11:double, DoubleColAddDoubleScalar(col 12:double, val -3728.0)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 12:double) -> 13:double, DoubleColUnaryMinus(col 14:double)(children: DoubleColAddDoubleScalar(col 12:double, val -3728.0)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 12:double) -> 14:double) -> 12:double, DoubleColUnaryMinus(col 14:double)(children: DoubleColUnaryMinus(col 15:double)(children: DoubleColAddDoubleScalar(col 14:double, val -3728.0)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 14:double) -> 15:double) -> 14:double) -> 15:double, DoubleColMultiplyDoubleColumn(col 16:double, col 17:double)(children: DoubleColUnaryMinus(col 14:double)(children: DoubleColUnaryMinus(col 16:double)(children: DoubleColAddDoubleScalar(col 14:double, val -3728.0)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 14:dou
 ble) -> 16:double) -> 14:double) -> 16:double, DoubleColAddDoubleScalar(col 14:double, val -3728.0)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 14:double) -> 17:double) -> 14:double, DoubleColUnaryMinus(col 16:double)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 16:double) -> 17:double, FuncPowerDoubleToDouble(col 18:double)(children: DoubleColDivideLongColumn(col 16:double, col 1:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 18:double)(children: DoubleColDivideLongColumn(col 16:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 16:double) -> 18:double) -> 16:double) -> 18:double) -> 16:double, DoubleColMultiplyDoubleColumn(col 18:double, col 20:double)(children: DoubleColMultiplyDoubleColumn(col 19:double, col 20:double)(children: DoubleColUnaryMinus(col 18:double)(children: DoubleColUnaryMinus(col 19:double)(children: DoubleColAddDoubleScalar(col 18:double, val -3728.0)(children:
  LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 18:double) -> 19:double) -> 18:double) -> 19:double, DoubleColAddDoubleScalar(col 18:double, val -3728.0)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 18:double) -> 20:double) -> 18:double, DoubleColUnaryMinus(col 19:double)(children: DoubleColUnaryMinus(col 20:double)(children: DoubleColAddDoubleScalar(col 19:double, val -3728.0)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 19:double) -> 20:double) -> 19:double) -> 20:double) -> 19:double, FuncPowerDoubleToDouble(col 20:double)(children: DoubleColDivideLongColumn(col 18:double, col 23:bigint)(children: DoubleColSubtractDoubleColumn(col 5:double, col 20:double)(children: DoubleColDivideLongColumn(col 18:double, col 7:bigint)(children: DoubleColMultiplyDoubleColumn(col 6:double, col 6:double) -> 18:double) -> 20:double) -> 18:double, IfExprNullCondExpr(col 21:boolean, null, col 22:bigint)(children: LongColEqualLongScalar(col 7:bigint, val 
 1) -> 21:boolean, LongColSubtractLongScalar(col 7:bigint, val 1) -> 22:bigint) -> 23:bigint) -> 20:double) -> 18:double, DoubleColUnaryMinus(col 20:double)(children: FuncPowerDoubleToDouble(col 24:double)(children: DoubleColDivideLongColumn(col 20:double, col 1:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 24:double)(children: DoubleColDivideLongColumn(col 20:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 20:double) -> 24:double) -> 20:double) -> 24:double) -> 20:double) -> 24:double, DoubleColSubtractDoubleColumn(col 20:double, col 26:double)(children: FuncPowerDoubleToDouble(col 25:double)(children: DoubleColDivideLongColumn(col 20:double, col 1:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 25:double)(children: DoubleColDivideLongColumn(col 20:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 20:double) -> 25:double) -> 20:double) -> 25:double) -> 20:dou
 ble, DoubleColUnaryMinus(col 25:double)(children: DoubleColUnaryMinus(col 26:double)(children: DoubleColAddDoubleScalar(col 25:double, val -3728.0)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 25:double) -> 26:double) -> 25:double) -> 26:double) -> 25:double, DoubleColMultiplyDoubleColumn(col 26:double, col 20:double)(children: DoubleColSubtractDoubleColumn(col 20:double, col 27:double)(children: FuncPowerDoubleToDouble(col 26:double)(children: DoubleColDivideLongColumn(col 20:double, col 1:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 26:double)(children: DoubleColDivideLongColumn(col 20:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 20:double) -> 26:double) -> 20:double) -> 26:double) -> 20:double, DoubleColUnaryMinus(col 26:double)(children: DoubleColUnaryMinus(col 27:double)(children: DoubleColAddDoubleScalar(col 26:double, val -3728.0)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigi
 nt) -> 26:double) -> 27:double) -> 26:double) -> 27:double) -> 26:double, FuncPowerDoubleToDouble(col 27:double)(children: DoubleColDivideLongColumn(col 20:double, col 1:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 27:double)(children: DoubleColDivideLongColumn(col 20:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 20:double) -> 27:double) -> 20:double) -> 27:double) -> 20:double) -> 27:double, DoubleColDivideLongColumn(col 20:double, col 29:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 26:double)(children: DoubleColDivideLongColumn(col 20:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 20:double) -> 26:double) -> 20:double, IfExprNullCondExpr(col 23:boolean, null, col 28:bigint)(children: LongColEqualLongScalar(col 1:bigint, val 1) -> 23:boolean, LongColSubtractLongScalar(col 1:bigint, val 1) -> 28:bigint) -> 29:bigint) -> 26:double, DoubleColDivideLong
 Column(col 8:double, col 9:bigint) -> 20:double, DoubleScalarSubtractDoubleColumn(val 10.175, col 31:double)(children: DoubleColDivideLongColumn(col 30:double, col 33:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 31:double)(children: DoubleColDivideLongColumn(col 30:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 30:double) -> 31:double) -> 30:double, IfExprNullCondExpr(col 29:boolean, null, col 32:bigint)(children: LongColEqualLongScalar(col 1:bigint, val 1) -> 29:boolean, LongColSubtractLongScalar(col 1:bigint, val 1) -> 32:bigint) -> 33:bigint) -> 31:double) -> 30:double, DoubleColUnaryMinus(col 31:double)(children: DoubleScalarSubtractDoubleColumn(val 10.175, col 34:double)(children: DoubleColDivideLongColumn(col 31:double, col 36:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 34:double)(children: DoubleColDivideLongColumn(col 31:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 4
 :double, col 4:double) -> 31:double) -> 34:double) -> 31:double, IfExprNullCondExpr(col 33:boolean, null, col 35:bigint)(children: LongColEqualLongScalar(col 1:bigint, val 1) -> 33:boolean, LongColSubtractLongScalar(col 1:bigint, val 1) -> 35:bigint) -> 36:bigint) -> 34:double) -> 31:double) -> 34:double, DoubleColDivideDoubleScalar(col 37:double, val -563.0)(children: DoubleColUnaryMinus(col 31:double)(children: FuncPowerDoubleToDouble(col 37:double)(children: DoubleColDivideLongColumn(col 31:double, col 1:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 37:double)(children: DoubleColDivideLongColumn(col 31:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 31:double) -> 37:double) -> 31:double) -> 37:double) -> 31:double) -> 37:double) -> 31:double, FuncPowerDoubleToDouble(col 38:double)(children: DoubleColDivideLongColumn(col 37:double, col 40:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 38:double)(ch
 ildren: DoubleColDivideLongColumn(col 37:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 37:double) -> 38:double) -> 37:double, IfExprNullCondExpr(col 36:boolean, null, col 39:bigint)(children: LongColEqualLongScalar(col 1:bigint, val 1) -> 36:boolean, LongColSubtractLongScalar(col 1:bigint, val 1) -> 39:bigint) -> 40:bigint) -> 38:double) -> 37:double, DoubleColUnaryMinus(col 38:double)(children: DoubleColDivideDoubleScalar(col 41:double, val -563.0)(children: DoubleColUnaryMinus(col 38:double)(children: FuncPowerDoubleToDouble(col 41:double)(children: DoubleColDivideLongColumn(col 38:double, col 1:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 41:double)(children: DoubleColDivideLongColumn(col 38:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 38:double) -> 41:double) -> 38:double) -> 41:double) -> 38:double) -> 41:double) -> 38:double) -> 41:double, DoubleColDivideDoubleCo
 lumn(col 38:double, col 2:double)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 38:double) -> 42:double, DoubleColDivideDoubleColumn(col 38:double, col 43:double)(children: CastLongToDouble(col 10:tinyint) -> 38:double, DoubleColDivideDoubleScalar(col 44:double, val -563.0)(children: DoubleColUnaryMinus(col 43:double)(children: FuncPowerDoubleToDouble(col 44:double)(children: DoubleColDivideLongColumn(col 43:double, col 1:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 44:double)(children: DoubleColDivideLongColumn(col 43:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 43:double) -> 44:double) -> 43:double) -> 44:double) -> 43:double) -> 44:double) -> 43:double) -> 44:double, DoubleColUnaryMinus(col 43:double)(children: DoubleColDivideDoubleColumn(col 38:double, col 2:double)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 38:double) -> 43:double) -> 38:double
+                      projectedOutputColumnNums: [12, 11, 14, 13, 17, 2, 15, 16, 19, 18, 24, 26, 25, 27, 20, 30, 34, 31, 37, 41, 38, 10, 7, 44, 43]
+                      selectExpressions: DoubleColDivideLongColumn(col 11:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 11:double) -> 12:double, DoubleColAddDoubleScalar(col 13:double, val -3728.0)(children: DoubleColDivideLongColumn(col 11:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 11:double) -> 13:double) -> 11:double, DoubleColUnaryMinus(col 13:double)(children: DoubleColAddDoubleScalar(col 14:double, val -3728.0)(children: DoubleColDivideLongColumn(col 13:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 13:double) -> 14:double) -> 13:double) -> 14:double, DoubleColUnaryMinus(col 15:double)(children: DoubleColUnaryMinus(col 13:double)(children: DoubleColAddDoubleScalar(col 15:double, val -3728.0)(children: DoubleColDivideLongColumn(col 13:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 13:double) -> 15:double) -> 13:double) -> 15:double) -> 13:double, DoubleColMultiplyDoubleColumn(col 15:double, col 16:
 double)(children: DoubleColUnaryMinus(col 16:double)(children: DoubleColUnaryMinus(col 15:double)(children: DoubleColAddDoubleScalar(col 16:double, val -3728.0)(children: DoubleColDivideLongColumn(col 15:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 15:double) -> 16:double) -> 15:double) -> 16:double) -> 15:double, DoubleColAddDoubleScalar(col 17:double, val -3728.0)(children: DoubleColDivideLongColumn(col 16:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 16:double) -> 17:double) -> 16:double) -> 17:double, DoubleColUnaryMinus(col 16:double)(children: DoubleColDivideLongColumn(col 15:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 15:double) -> 16:double) -> 15:double, FuncPowerDoubleToDouble(col 18:double)(children: DoubleColDivideLongColumn(col 16:double, col 1:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 18:double)(children: DoubleColDivideLongColumn(col 16:double, col 1:bigint)(children: DoubleColMulti
 plyDoubleColumn(col 4:double, col 4:double) -> 16:double) -> 18:double) -> 16:double) -> 18:double) -> 16:double, DoubleColMultiplyDoubleColumn(col 20:double, col 18:double)(children: DoubleColMultiplyDoubleColumn(col 18:double, col 19:double)(children: DoubleColUnaryMinus(col 19:double)(children: DoubleColUnaryMinus(col 18:double)(children: DoubleColAddDoubleScalar(col 19:double, val -3728.0)(children: DoubleColDivideLongColumn(col 18:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 18:double) -> 19:double) -> 18:double) -> 19:double) -> 18:double, DoubleColAddDoubleScalar(col 20:double, val -3728.0)(children: DoubleColDivideLongColumn(col 19:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 19:double) -> 20:double) -> 19:double) -> 20:double, DoubleColUnaryMinus(col 19:double)(children: DoubleColUnaryMinus(col 18:double)(children: DoubleColAddDoubleScalar(col 19:double, val -3728.0)(children: DoubleColDivideLongColumn(col 18:double, col 1:bigint)(c
 hildren: CastLongToDouble(col 0:bigint) -> 18:double) -> 19:double) -> 18:double) -> 19:double) -> 18:double) -> 19:double, FuncPowerDoubleToDouble(col 20:double)(children: DoubleColDivideLongColumn(col 18:double, col 23:bigint)(children: DoubleColSubtractDoubleColumn(col 5:double, col 20:double)(children: DoubleColDivideLongColumn(col 18:double, col 7:bigint)(children: DoubleColMultiplyDoubleColumn(col 6:double, col 6:double) -> 18:double) -> 20:double) -> 18:double, IfExprNullCondExpr(col 21:boolean, null, col 22:bigint)(children: LongColEqualLongScalar(col 7:bigint, val 1) -> 21:boolean, LongColSubtractLongScalar(col 7:bigint, val 1) -> 22:bigint) -> 23:bigint) -> 20:double) -> 18:double, DoubleColUnaryMinus(col 20:double)(children: FuncPowerDoubleToDouble(col 24:double)(children: DoubleColDivideLongColumn(col 20:double, col 1:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 24:double)(children: DoubleColDivideLongColumn(col 20:double, col 1:bigint)(children: Dou
 bleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 20:double) -> 24:double) -> 20:double) -> 24:double) -> 20:double) -> 24:double, DoubleColSubtractDoubleColumn(col 20:double, col 25:double)(children: FuncPowerDoubleToDouble(col 25:double)(children: DoubleColDivideLongColumn(col 20:double, col 1:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 25:double)(children: DoubleColDivideLongColumn(col 20:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 20:double) -> 25:double) -> 20:double) -> 25:double) -> 20:double, DoubleColUnaryMinus(col 26:double)(children: DoubleColUnaryMinus(col 25:double)(children: DoubleColAddDoubleScalar(col 26:double, val -3728.0)(children: DoubleColDivideLongColumn(col 25:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 25:double) -> 26:double) -> 25:double) -> 26:double) -> 25:double) -> 26:double, DoubleColMultiplyDoubleColumn(col 27:double, col 20:double)(children: DoubleCol
 SubtractDoubleColumn(col 20:double, col 25:double)(children: FuncPowerDoubleToDouble(col 25:double)(children: DoubleColDivideLongColumn(col 20:double, col 1:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 25:double)(children: DoubleColDivideLongColumn(col 20:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 20:double) -> 25:double) -> 20:double) -> 25:double) -> 20:double, DoubleColUnaryMinus(col 27:double)(children: DoubleColUnaryMinus(col 25:double)(children: DoubleColAddDoubleScalar(col 27:double, val -3728.0)(children: DoubleColDivideLongColumn(col 25:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 25:double) -> 27:double) -> 25:double) -> 27:double) -> 25:double) -> 27:double, FuncPowerDoubleToDouble(col 25:double)(children: DoubleColDivideLongColumn(col 20:double, col 1:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 25:double)(children: DoubleColDivideLongColumn(col 20:double, col
  1:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 20:double) -> 25:double) -> 20:double) -> 25:double) -> 20:double) -> 25:double, DoubleColDivideLongColumn(col 20:double, col 29:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 27:double)(children: DoubleColDivideLongColumn(col 20:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 20:double) -> 27:double) -> 20:double, IfExprNullCondExpr(col 23:boolean, null, col 28:bigint)(children: LongColEqualLongScalar(col 1:bigint, val 1) -> 23:boolean, LongColSubtractLongScalar(col 1:bigint, val 1) -> 28:bigint) -> 29:bigint) -> 27:double, DoubleColDivideLongColumn(col 8:double, col 9:bigint) -> 20:double, DoubleScalarSubtractDoubleColumn(val 10.175, col 31:double)(children: DoubleColDivideLongColumn(col 30:double, col 33:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 31:double)(children: DoubleColDivideLongColumn(col 30:double, col 1:
 bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 30:double) -> 31:double) -> 30:double, IfExprNullCondExpr(col 29:boolean, null, col 32:bigint)(children: LongColEqualLongScalar(col 1:bigint, val 1) -> 29:boolean, LongColSubtractLongScalar(col 1:bigint, val 1) -> 32:bigint) -> 33:bigint) -> 31:double) -> 30:double, DoubleColUnaryMinus(col 31:double)(children: DoubleScalarSubtractDoubleColumn(val 10.175, col 34:double)(children: DoubleColDivideLongColumn(col 31:double, col 36:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 34:double)(children: DoubleColDivideLongColumn(col 31:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 31:double) -> 34:double) -> 31:double, IfExprNullCondExpr(col 33:boolean, null, col 35:bigint)(children: LongColEqualLongScalar(col 1:bigint, val 1) -> 33:boolean, LongColSubtractLongScalar(col 1:bigint, val 1) -> 35:bigint) -> 36:bigint) -> 34:double) -> 31:double) -> 34:do
 uble, DoubleColDivideDoubleScalar(col 37:double, val -563.0)(children: DoubleColUnaryMinus(col 31:double)(children: FuncPowerDoubleToDouble(col 37:double)(children: DoubleColDivideLongColumn(col 31:double, col 1:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 37:double)(children: DoubleColDivideLongColumn(col 31:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 31:double) -> 37:double) -> 31:double) -> 37:double) -> 31:double) -> 37:double) -> 31:double, FuncPowerDoubleToDouble(col 38:double)(children: DoubleColDivideLongColumn(col 37:double, col 40:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 38:double)(children: DoubleColDivideLongColumn(col 37:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 37:double) -> 38:double) -> 37:double, IfExprNullCondExpr(col 36:boolean, null, col 39:bigint)(children: LongColEqualLongScalar(col 1:bigint, val 1) -> 36:boolean, Lon
 gColSubtractLongScalar(col 1:bigint, val 1) -> 39:bigint) -> 40:bigint) -> 38:double) -> 37:double, DoubleColUnaryMinus(col 38:double)(children: DoubleColDivideDoubleScalar(col 41:double, val -563.0)(children: DoubleColUnaryMinus(col 38:double)(children: FuncPowerDoubleToDouble(col 41:double)(children: DoubleColDivideLongColumn(col 38:double, col 1:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 41:double)(children: DoubleColDivideLongColumn(col 38:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 38:double) -> 41:double) -> 38:double) -> 41:double) -> 38:double) -> 41:double) -> 38:double) -> 41:double, DoubleColDivideDoubleColumn(col 42:double, col 2:double)(children: DoubleColDivideLongColumn(col 38:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 38:double) -> 42:double) -> 38:double, DoubleColDivideDoubleColumn(col 42:double, col 43:double)(children: CastLongToDouble(col 10:tinyint) -> 42:double, Doub
 leColDivideDoubleScalar(col 44:double, val -563.0)(children: DoubleColUnaryMinus(col 43:double)(children: FuncPowerDoubleToDouble(col 44:double)(children: DoubleColDivideLongColumn(col 43:double, col 1:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 44:double)(children: DoubleColDivideLongColumn(col 43:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 43:double) -> 44:double) -> 43:double) -> 44:double) -> 43:double) -> 44:double) -> 43:double) -> 44:double, DoubleColUnaryMinus(col 42:double)(children: DoubleColDivideDoubleColumn(col 43:double, col 2:double)(children: DoubleColDivideLongColumn(col 42:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 42:double) -> 43:double) -> 42:double) -> 43:double
                   Statistics: Num rows: 1 Data size: 196 Basic stats: COMPLETE Column stats: COMPLETE
                   File Output Operator
                     compressed: false
@@ -389,13 +389,13 @@ STAGE PLANS:
                 outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10
                 Statistics: Num rows: 1 Data size: 84 Basic stats: COMPLETE Column stats: COMPLETE
                 Select Operator
-                  expressions: (_col0 / _col1) (type: double), ((_col0 / _col1) + -3728.0D) (type: double), (- ((_col0 / _col1) + -3728.0D)) (type: double), (- (- ((_col0 / _col1) + -3728.0D))) (type: double), ((- (- ((_col0 / _col1) + -3728.0D))) * ((_col0 / _col1) + -3728.0D)) (type: double), _col2 (type: double), (- (_col0 / _col1)) (type: double), power(((_col3 - ((_col4 * _col4) / _col1)) / _col1), 0.5) (type: double), (((- (- ((_col0 / _col1) + -3728.0D))) * ((_col0 / _col1) + -3728.0D)) * (- (- ((_col0 / _col1) + -3728.0D)))) (type: double), power(((_col5 - ((_col6 * _col6) / _col7)) / CASE WHEN ((_col7 = 1L)) THEN (null) ELSE ((_col7 - 1)) END), 0.5) (type: double), (- power(((_col3 - ((_col4 * _col4) / _col1)) / _col1), 0.5)) (type: double), (power(((_col3 - ((_col4 * _col4) / _col1)) / _col1), 0.5) - (- (- ((_col0 / _col1) + -3728.0D)))) (type: double), ((power(((_col3 - ((_col4 * _col4) / _col1)) / _col1), 0.5) - (- (- ((_col0 / _col1) + -3728.0D)))) * power(((_col3 - ((_
 col4 * _col4) / _col1)) / _col1), 0.5)) (type: double), ((_col3 - ((_col4 * _col4) / _col1)) / CASE WHEN ((_col1 = 1L)) THEN (null) ELSE ((_col1 - 1)) END) (type: double), (_col8 / _col9) (type: double), (10.175D - ((_col3 - ((_col4 * _col4) / _col1)) / CASE WHEN ((_col1 = 1L)) THEN (null) ELSE ((_col1 - 1)) END)) (type: double), (- (10.175D - ((_col3 - ((_col4 * _col4) / _col1)) / CASE WHEN ((_col1 = 1L)) THEN (null) ELSE ((_col1 - 1)) END))) (type: double), ((- power(((_col3 - ((_col4 * _col4) / _col1)) / _col1), 0.5)) / -563.0D) (type: double), power(((_col3 - ((_col4 * _col4) / _col1)) / CASE WHEN ((_col1 = 1L)) THEN (null) ELSE ((_col1 - 1)) END), 0.5) (type: double), (- ((- power(((_col3 - ((_col4 * _col4) / _col1)) / _col1), 0.5)) / -563.0D)) (type: double), ((_col0 / _col1) / _col2) (type: double), _col10 (type: tinyint), _col7 (type: bigint), (UDFToDouble(_col10) / ((- power(((_col3 - ((_col4 * _col4) / _col1)) / _col1), 0.5)) / -563.0D)) (type: double), (- ((_col0 / _col1)
  / _col2)) (type: double)
+                  expressions: (UDFToDouble(_col0) / _col1) (type: double), ((UDFToDouble(_col0) / _col1) + -3728.0D) (type: double), (- ((UDFToDouble(_col0) / _col1) + -3728.0D)) (type: double), (- (- ((UDFToDouble(_col0) / _col1) + -3728.0D))) (type: double), ((- (- ((UDFToDouble(_col0) / _col1) + -3728.0D))) * ((UDFToDouble(_col0) / _col1) + -3728.0D)) (type: double), _col2 (type: double), (- (UDFToDouble(_col0) / _col1)) (type: double), power(((_col3 - ((_col4 * _col4) / _col1)) / _col1), 0.5) (type: double), (((- (- ((UDFToDouble(_col0) / _col1) + -3728.0D))) * ((UDFToDouble(_col0) / _col1) + -3728.0D)) * (- (- ((UDFToDouble(_col0) / _col1) + -3728.0D)))) (type: double), power(((_col5 - ((_col6 * _col6) / _col7)) / CASE WHEN ((_col7 = 1L)) THEN (null) ELSE ((_col7 - 1)) END), 0.5) (type: double), (- power(((_col3 - ((_col4 * _col4) / _col1)) / _col1), 0.5)) (type: double), (power(((_col3 - ((_col4 * _col4) / _col1)) / _col1), 0.5) - (- (- ((UDFToDouble(_col0) / _col1) + -3728.0
 D)))) (type: double), ((power(((_col3 - ((_col4 * _col4) / _col1)) / _col1), 0.5) - (- (- ((UDFToDouble(_col0) / _col1) + -3728.0D)))) * power(((_col3 - ((_col4 * _col4) / _col1)) / _col1), 0.5)) (type: double), ((_col3 - ((_col4 * _col4) / _col1)) / CASE WHEN ((_col1 = 1L)) THEN (null) ELSE ((_col1 - 1)) END) (type: double), (_col8 / _col9) (type: double), (10.175D - ((_col3 - ((_col4 * _col4) / _col1)) / CASE WHEN ((_col1 = 1L)) THEN (null) ELSE ((_col1 - 1)) END)) (type: double), (- (10.175D - ((_col3 - ((_col4 * _col4) / _col1)) / CASE WHEN ((_col1 = 1L)) THEN (null) ELSE ((_col1 - 1)) END))) (type: double), ((- power(((_col3 - ((_col4 * _col4) / _col1)) / _col1), 0.5)) / -563.0D) (type: double), power(((_col3 - ((_col4 * _col4) / _col1)) / CASE WHEN ((_col1 = 1L)) THEN (null) ELSE ((_col1 - 1)) END), 0.5) (type: double), (- ((- power(((_col3 - ((_col4 * _col4) / _col1)) / _col1), 0.5)) / -563.0D)) (type: double), ((UDFToDouble(_col0) / _col1) / _col2) (type: double), _col10 (ty
 pe: tinyint), _col7 (type: bigint), (UDFToDouble(_col10) / ((- power(((_col3 - ((_col4 * _col4) / _col1)) / _col1), 0.5)) / -563.0D)) (type: double), (- ((UDFToDouble(_col0) / _col1) / _col2)) (type: double)
                   outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13, _col14, _col15, _col16, _col17, _col18, _col19, _col20, _col21, _col22, _col23, _col24
                   Select Vectorization:
                       className: VectorSelectOperator
                       native: true
-                      projectedOutputColumnNums: [11, 13, 16, 20, 27, 2, 29, 34, 46, 54, 60, 70, 86, 93, 94, 102, 111, 118, 126, 134, 136, 10, 7, 145, 148]
-                      selectExpressions: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 11:double, DoubleColAddDoubleScalar(col 12:double, val -3728.0)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 12:double) -> 13:double, DoubleColUnaryMinus(col 15:double)(children: DoubleColAddDoubleScalar(col 14:double, val -3728.0)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 14:double) -> 15:double) -> 16:double, DoubleColUnaryMinus(col 19:double)(children: DoubleColUnaryMinus(col 18:double)(children: DoubleColAddDoubleScalar(col 17:double, val -3728.0)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 17:double) -> 18:double) -> 19:double) -> 20:double, DoubleColMultiplyDoubleColumn(col 24:double, col 26:double)(children: DoubleColUnaryMinus(col 23:double)(children: DoubleColUnaryMinus(col 22:double)(children: DoubleColAddDoubleScalar(col 21:double, val -3728.0)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 21:dou
 ble) -> 22:double) -> 23:double) -> 24:double, DoubleColAddDoubleScalar(col 25:double, val -3728.0)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 25:double) -> 26:double) -> 27:double, DoubleColUnaryMinus(col 28:double)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 28:double) -> 29:double, FuncPowerDoubleToDouble(col 33:double)(children: DoubleColDivideLongColumn(col 32:double, col 1:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 31:double)(children: DoubleColDivideLongColumn(col 30:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 30:double) -> 31:double) -> 32:double) -> 33:double) -> 34:double, DoubleColMultiplyDoubleColumn(col 41:double, col 45:double)(children: DoubleColMultiplyDoubleColumn(col 38:double, col 40:double)(children: DoubleColUnaryMinus(col 37:double)(children: DoubleColUnaryMinus(col 36:double)(children: DoubleColAddDoubleScalar(col 35:double, val -3728.0)(children:
  LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 35:double) -> 36:double) -> 37:double) -> 38:double, DoubleColAddDoubleScalar(col 39:double, val -3728.0)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 39:double) -> 40:double) -> 41:double, DoubleColUnaryMinus(col 44:double)(children: DoubleColUnaryMinus(col 43:double)(children: DoubleColAddDoubleScalar(col 42:double, val -3728.0)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 42:double) -> 43:double) -> 44:double) -> 45:double) -> 46:double, FuncPowerDoubleToDouble(col 53:double)(children: DoubleColDivideLongColumn(col 49:double, col 52:bigint)(children: DoubleColSubtractDoubleColumn(col 5:double, col 48:double)(children: DoubleColDivideLongColumn(col 47:double, col 7:bigint)(children: DoubleColMultiplyDoubleColumn(col 6:double, col 6:double) -> 47:double) -> 48:double) -> 49:double, IfExprNullCondExpr(col 50:boolean, null, col 51:bigint)(children: LongColEqualLongScalar(col 7:bigint, val 
 1) -> 50:boolean, LongColSubtractLongScalar(col 7:bigint, val 1) -> 51:bigint) -> 52:bigint) -> 53:double) -> 54:double, DoubleColUnaryMinus(col 59:double)(children: FuncPowerDoubleToDouble(col 58:double)(children: DoubleColDivideLongColumn(col 57:double, col 1:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 56:double)(children: DoubleColDivideLongColumn(col 55:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 55:double) -> 56:double) -> 57:double) -> 58:double) -> 59:double) -> 60:double, DoubleColSubtractDoubleColumn(col 65:double, col 69:double)(children: FuncPowerDoubleToDouble(col 64:double)(children: DoubleColDivideLongColumn(col 63:double, col 1:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 62:double)(children: DoubleColDivideLongColumn(col 61:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 61:double) -> 62:double) -> 63:double) -> 64:double) -> 65:dou
 ble, DoubleColUnaryMinus(col 68:double)(children: DoubleColUnaryMinus(col 67:double)(children: DoubleColAddDoubleScalar(col 66:double, val -3728.0)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 66:double) -> 67:double) -> 68:double) -> 69:double) -> 70:double, DoubleColMultiplyDoubleColumn(col 80:double, col 85:double)(children: DoubleColSubtractDoubleColumn(col 75:double, col 79:double)(children: FuncPowerDoubleToDouble(col 74:double)(children: DoubleColDivideLongColumn(col 73:double, col 1:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 72:double)(children: DoubleColDivideLongColumn(col 71:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 71:double) -> 72:double) -> 73:double) -> 74:double) -> 75:double, DoubleColUnaryMinus(col 78:double)(children: DoubleColUnaryMinus(col 77:double)(children: DoubleColAddDoubleScalar(col 76:double, val -3728.0)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigi
 nt) -> 76:double) -> 77:double) -> 78:double) -> 79:double) -> 80:double, FuncPowerDoubleToDouble(col 84:double)(children: DoubleColDivideLongColumn(col 83:double, col 1:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 82:double)(children: DoubleColDivideLongColumn(col 81:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 81:double) -> 82:double) -> 83:double) -> 84:double) -> 85:double) -> 86:double, DoubleColDivideLongColumn(col 89:double, col 92:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 88:double)(children: DoubleColDivideLongColumn(col 87:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 87:double) -> 88:double) -> 89:double, IfExprNullCondExpr(col 90:boolean, null, col 91:bigint)(children: LongColEqualLongScalar(col 1:bigint, val 1) -> 90:boolean, LongColSubtractLongScalar(col 1:bigint, val 1) -> 91:bigint) -> 92:bigint) -> 93:double, DoubleColDivideLong
 Column(col 8:double, col 9:bigint) -> 94:double, DoubleScalarSubtractDoubleColumn(val 10.175, col 101:double)(children: DoubleColDivideLongColumn(col 97:double, col 100:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 96:double)(children: DoubleColDivideLongColumn(col 95:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 95:double) -> 96:double) -> 97:double, IfExprNullCondExpr(col 98:boolean, null, col 99:bigint)(children: LongColEqualLongScalar(col 1:bigint, val 1) -> 98:boolean, LongColSubtractLongScalar(col 1:bigint, val 1) -> 99:bigint) -> 100:bigint) -> 101:double) -> 102:double, DoubleColUnaryMinus(col 110:double)(children: DoubleScalarSubtractDoubleColumn(val 10.175, col 109:double)(children: DoubleColDivideLongColumn(col 105:double, col 108:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 104:double)(children: DoubleColDivideLongColumn(col 103:double, col 1:bigint)(children: DoubleColMultiplyDoubleC
 olumn(col 4:double, col 4:double) -> 103:double) -> 104:double) -> 105:double, IfExprNullCondExpr(col 106:boolean, null, col 107:bigint)(children: LongColEqualLongScalar(col 1:bigint, val 1) -> 106:boolean, LongColSubtractLongScalar(col 1:bigint, val 1) -> 107:bigint) -> 108:bigint) -> 109:double) -> 110:double) -> 111:double, DoubleColDivideDoubleScalar(col 117:double, val -563.0)(children: DoubleColUnaryMinus(col 116:double)(children: FuncPowerDoubleToDouble(col 115:double)(children: DoubleColDivideLongColumn(col 114:double, col 1:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 113:double)(children: DoubleColDivideLongColumn(col 112:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 112:double) -> 113:double) -> 114:double) -> 115:double) -> 116:double) -> 117:double) -> 118:double, FuncPowerDoubleToDouble(col 125:double)(children: DoubleColDivideLongColumn(col 121:double, col 124:bigint)(children: DoubleColSubtractDouble
 Column(col 3:double, col 120:double)(children: DoubleColDivideLongColumn(col 119:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 119:double) -> 120:double) -> 121:double, IfExprNullCondExpr(col 122:boolean, null, col 123:bigint)(children: LongColEqualLongScalar(col 1:bigint, val 1) -> 122:boolean, LongColSubtractLongScalar(col 1:bigint, val 1) -> 123:bigint) -> 124:bigint) -> 125:double) -> 126:double, DoubleColUnaryMinus(col 133:double)(children: DoubleColDivideDoubleScalar(col 132:double, val -563.0)(children: DoubleColUnaryMinus(col 131:double)(children: FuncPowerDoubleToDouble(col 130:double)(children: DoubleColDivideLongColumn(col 129:double, col 1:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 128:double)(children: DoubleColDivideLongColumn(col 127:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 127:double) -> 128:double) -> 129:double) -> 130:double) -> 131:double) -> 
 132:double) -> 133:double) -> 134:double, DoubleColDivideDoubleColumn(col 135:double, col 2:double)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 135:double) -> 136:double, DoubleColDivideDoubleColumn(col 137:double, col 144:double)(children: CastLongToDouble(col 10:tinyint) -> 137:double, DoubleColDivideDoubleScalar(col 143:double, val -563.0)(children: DoubleColUnaryMinus(col 142:double)(children: FuncPowerDoubleToDouble(col 141:double)(children: DoubleColDivideLongColumn(col 140:double, col 1:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 139:double)(children: DoubleColDivideLongColumn(col 138:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 138:double) -> 139:double) -> 140:double) -> 141:double) -> 142:double) -> 143:double) -> 144:double) -> 145:double, DoubleColUnaryMinus(col 147:double)(children: DoubleColDivideDoubleColumn(col 146:double, col 2:double)(children: LongColDivideLongColumn(col 0:b
 igint, col 1:bigint) -> 146:double) -> 147:double) -> 148:double
+                      projectedOutputColumnNums: [12, 15, 19, 24, 33, 2, 36, 41, 56, 64, 70, 81, 98, 105, 106, 114, 123, 130, 138, 146, 149, 10, 7, 158, 162]
+                      selectExpressions: DoubleColDivideLongColumn(col 11:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 11:double) -> 12:double, DoubleColAddDoubleScalar(col 14:double, val -3728.0)(children: DoubleColDivideLongColumn(col 13:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 13:double) -> 14:double) -> 15:double, DoubleColUnaryMinus(col 18:double)(children: DoubleColAddDoubleScalar(col 17:double, val -3728.0)(children: DoubleColDivideLongColumn(col 16:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 16:double) -> 17:double) -> 18:double) -> 19:double, DoubleColUnaryMinus(col 23:double)(children: DoubleColUnaryMinus(col 22:double)(children: DoubleColAddDoubleScalar(col 21:double, val -3728.0)(children: DoubleColDivideLongColumn(col 20:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 20:double) -> 21:double) -> 22:double) -> 23:double) -> 24:double, DoubleColMultiplyDoubleColumn(col 29:double, col 32:
 double)(children: DoubleColUnaryMinus(col 28:double)(children: DoubleColUnaryMinus(col 27:double)(children: DoubleColAddDoubleScalar(col 26:double, val -3728.0)(children: DoubleColDivideLongColumn(col 25:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 25:double) -> 26:double) -> 27:double) -> 28:double) -> 29:double, DoubleColAddDoubleScalar(col 31:double, val -3728.0)(children: DoubleColDivideLongColumn(col 30:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 30:double) -> 31:double) -> 32:double) -> 33:double, DoubleColUnaryMinus(col 35:double)(children: DoubleColDivideLongColumn(col 34:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 34:double) -> 35:double) -> 36:double, FuncPowerDoubleToDouble(col 40:double)(children: DoubleColDivideLongColumn(col 39:double, col 1:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 38:double)(children: DoubleColDivideLongColumn(col 37:double, col 1:bigint)(children: DoubleColMulti
 plyDoubleColumn(col 4:double, col 4:double) -> 37:double) -> 38:double) -> 39:double) -> 40:double) -> 41:double, DoubleColMultiplyDoubleColumn(col 50:double, col 55:double)(children: DoubleColMultiplyDoubleColumn(col 46:double, col 49:double)(children: DoubleColUnaryMinus(col 45:double)(children: DoubleColUnaryMinus(col 44:double)(children: DoubleColAddDoubleScalar(col 43:double, val -3728.0)(children: DoubleColDivideLongColumn(col 42:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 42:double) -> 43:double) -> 44:double) -> 45:double) -> 46:double, DoubleColAddDoubleScalar(col 48:double, val -3728.0)(children: DoubleColDivideLongColumn(col 47:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 47:double) -> 48:double) -> 49:double) -> 50:double, DoubleColUnaryMinus(col 54:double)(children: DoubleColUnaryMinus(col 53:double)(children: DoubleColAddDoubleScalar(col 52:double, val -3728.0)(children: DoubleColDivideLongColumn(col 51:double, col 1:bigint)(c
 hildren: CastLongToDouble(col 0:bigint) -> 51:double) -> 52:double) -> 53:double) -> 54:double) -> 55:double) -> 56:double, FuncPowerDoubleToDouble(col 63:double)(children: DoubleColDivideLongColumn(col 59:double, col 62:bigint)(children: DoubleColSubtractDoubleColumn(col 5:double, col 58:double)(children: DoubleColDivideLongColumn(col 57:double, col 7:bigint)(children: DoubleColMultiplyDoubleColumn(col 6:double, col 6:double) -> 57:double) -> 58:double) -> 59:double, IfExprNullCondExpr(col 60:boolean, null, col 61:bigint)(children: LongColEqualLongScalar(col 7:bigint, val 1) -> 60:boolean, LongColSubtractLongScalar(col 7:bigint, val 1) -> 61:bigint) -> 62:bigint) -> 63:double) -> 64:double, DoubleColUnaryMinus(col 69:double)(children: FuncPowerDoubleToDouble(col 68:double)(children: DoubleColDivideLongColumn(col 67:double, col 1:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 66:double)(children: DoubleColDivideLongColumn(col 65:double, col 1:bigint)(children: Dou
 bleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 65:double) -> 66:double) -> 67:double) -> 68:double) -> 69:double) -> 70:double, DoubleColSubtractDoubleColumn(col 75:double, col 80:double)(children: FuncPowerDoubleToDouble(col 74:double)(children: DoubleColDivideLongColumn(col 73:double, col 1:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 72:double)(children: DoubleColDivideLongColumn(col 71:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 71:double) -> 72:double) -> 73:double) -> 74:double) -> 75:double, DoubleColUnaryMinus(col 79:double)(children: DoubleColUnaryMinus(col 78:double)(children: DoubleColAddDoubleScalar(col 77:double, val -3728.0)(children: DoubleColDivideLongColumn(col 76:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 76:double) -> 77:double) -> 78:double) -> 79:double) -> 80:double) -> 81:double, DoubleColMultiplyDoubleColumn(col 92:double, col 97:double)(children: DoubleCol
 SubtractDoubleColumn(col 86:double, col 91:double)(children: FuncPowerDoubleToDouble(col 85:double)(children: DoubleColDivideLongColumn(col 84:double, col 1:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 83:double)(children: DoubleColDivideLongColumn(col 82:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 82:double) -> 83:double) -> 84:double) -> 85:double) -> 86:double, DoubleColUnaryMinus(col 90:double)(children: DoubleColUnaryMinus(col 89:double)(children: DoubleColAddDoubleScalar(col 88:double, val -3728.0)(children: DoubleColDivideLongColumn(col 87:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 87:double) -> 88:double) -> 89:double) -> 90:double) -> 91:double) -> 92:double, FuncPowerDoubleToDouble(col 96:double)(children: DoubleColDivideLongColumn(col 95:double, col 1:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 94:double)(children: DoubleColDivideLongColumn(col 93:double, col
  1:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 93:double) -> 94:double) -> 95:double) -> 96:double) -> 97:double) -> 98:double, DoubleColDivideLongColumn(col 101:double, col 104:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 100:double)(children: DoubleColDivideLongColumn(col 99:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 99:double) -> 100:double) -> 101:double, IfExprNullCondExpr(col 102:boolean, null, col 103:bigint)(children: LongColEqualLongScalar(col 1:bigint, val 1) -> 102:boolean, LongColSubtractLongScalar(col 1:bigint, val 1) -> 103:bigint) -> 104:bigint) -> 105:double, DoubleColDivideLongColumn(col 8:double, col 9:bigint) -> 106:double, DoubleScalarSubtractDoubleColumn(val 10.175, col 113:double)(children: DoubleColDivideLongColumn(col 109:double, col 112:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 108:double)(children: DoubleColDivideLongColumn(col 1
 07:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 107:double) -> 108:double) -> 109:double, IfExprNullCondExpr(col 110:boolean, null, col 111:bigint)(children: LongColEqualLongScalar(col 1:bigint, val 1) -> 110:boolean, LongColSubtractLongScalar(col 1:bigint, val 1) -> 111:bigint) -> 112:bigint) -> 113:double) -> 114:double, DoubleColUnaryMinus(col 122:double)(children: DoubleScalarSubtractDoubleColumn(val 10.175, col 121:double)(children: DoubleColDivideLongColumn(col 117:double, col 120:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 116:double)(children: DoubleColDivideLongColumn(col 115:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 115:double) -> 116:double) -> 117:double, IfExprNullCondExpr(col 118:boolean, null, col 119:bigint)(children: LongColEqualLongScalar(col 1:bigint, val 1) -> 118:boolean, LongColSubtractLongScalar(col 1:bigint, val 1) -> 119:bigint) -> 120:big
 int) -> 121:double) -> 122:double) -> 123:double, DoubleColDivideDoubleScalar(col 129:double, val -563.0)(children: DoubleColUnaryMinus(col 128:double)(children: FuncPowerDoubleToDouble(col 127:double)(children: DoubleColDivideLongColumn(col 126:double, col 1:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 125:double)(children: DoubleColDivideLongColumn(col 124:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 124:double) -> 125:double) -> 126:double) -> 127:double) -> 128:double) -> 129:double) -> 130:double, FuncPowerDoubleToDouble(col 137:double)(children: DoubleColDivideLongColumn(col 133:double, col 136:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 132:double)(children: DoubleColDivideLongColumn(col 131:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 131:double) -> 132:double) -> 133:double, IfExprNullCondExpr(col 134:boolean, null, col 135:bigint)(child
 ren: LongColEqualLongScalar(col 1:bigint, val 1) -> 134:boolean, LongColSubtractLongScalar(col 1:bigint, val 1) -> 135:bigint) -> 136:bigint) -> 137:double) -> 138:double, DoubleColUnaryMinus(col 145:double)(children: DoubleColDivideDoubleScalar(col 144:double, val -563.0)(children: DoubleColUnaryMinus(col 143:double)(children: FuncPowerDoubleToDouble(col 142:double)(children: DoubleColDivideLongColumn(col 141:double, col 1:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 140:double)(children: DoubleColDivideLongColumn(col 139:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 139:double) -> 140:double) -> 141:double) -> 142:double) -> 143:double) -> 144:double) -> 145:double) -> 146:double, DoubleColDivideDoubleColumn(col 148:double, col 2:double)(children: DoubleColDivideLongColumn(col 147:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 147:double) -> 148:double) -> 149:double, DoubleColDivideDoubleColumn
 (col 150:double, col 157:double)(children: CastLongToDouble(col 10:tinyint) -> 150:double, DoubleColDivideDoubleScalar(col 156:double, val -563.0)(children: DoubleColUnaryMinus(col 155:double)(children: FuncPowerDoubleToDouble(col 154:double)(children: DoubleColDivideLongColumn(col 153:double, col 1:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 152:double)(children: DoubleColDivideLongColumn(col 151:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 151:double) -> 152:double) -> 153:double) -> 154:double) -> 155:double) -> 156:double) -> 157:double) -> 158:double, DoubleColUnaryMinus(col 161:double)(children: DoubleColDivideDoubleColumn(col 160:double, col 2:double)(children: DoubleColDivideLongColumn(col 159:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 159:double) -> 160:double) -> 161:double) -> 162:double
                   Statistics: Num rows: 1 Data size: 196 Basic stats: COMPLETE Column stats: COMPLETE
                   File Output Operator
                     compressed: false


[3/8] hive git commit: HIVE-20391: HiveAggregateReduceFunctionsRule may infer wrong return type when decomposing aggregate function (Jesus Camacho Rodriguez, reviewed by Ashutosh Chauhan)

Posted by jc...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/649d7c12/ql/src/test/results/clientpositive/spark/vectorization_3.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/vectorization_3.q.out b/ql/src/test/results/clientpositive/spark/vectorization_3.q.out
index 92fa275..d329bb8 100644
--- a/ql/src/test/results/clientpositive/spark/vectorization_3.q.out
+++ b/ql/src/test/results/clientpositive/spark/vectorization_3.q.out
@@ -156,13 +156,13 @@ STAGE PLANS:
                 outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13
                 Statistics: Num rows: 1 Data size: 112 Basic stats: COMPLETE Column stats: NONE
                 Select Operator
-                  expressions: power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) (type: double), (power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) - 10.175D) (type: double), power(((_col3 - ((_col4 * _col4) / _col5)) / _col5), 0.5) (type: double), (power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) * (power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) - 10.175D)) (type: double), (- power(((_col3 - ((_col4 * _col4) / _col5)) / _col5), 0.5)) (type: double), (power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) % 79.553D) (type: double), (- (power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) * (power(((_col0 - ((_col1 * _col1
 ) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) - 10.175D))) (type: double), power(((_col6 - ((_col7 * _col7) / _col8)) / CASE WHEN ((_col8 = 1L)) THEN (null) ELSE ((_col8 - 1)) END), 0.5) (type: double), (- power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5)) (type: double), _col9 (type: double), ((- (power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) * (power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) - 10.175D))) / (power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) - 10.175D)) (type: double), (- (power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) - 10.175D)) (type: double), (_col10 / _col11) (type: double), (-3728.0D - power(((_col0 - ((_col1 * _
 col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5)) (type: double), power(((_col12 - ((_col13 * _col13) / _col11)) / _col11), 0.5) (type: double), ((_col10 / _col11) / power(((_col6 - ((_col7 * _col7) / _col8)) / CASE WHEN ((_col8 = 1L)) THEN (null) ELSE ((_col8 - 1)) END), 0.5)) (type: double)
+                  expressions: power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) (type: double), (power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) - 10.175D) (type: double), power(((_col3 - ((_col4 * _col4) / _col5)) / _col5), 0.5) (type: double), (power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) * (power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) - 10.175D)) (type: double), (- power(((_col3 - ((_col4 * _col4) / _col5)) / _col5), 0.5)) (type: double), (power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) % 79.553D) (type: double), (- (power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) * (power(((_col0 - ((_col1 * _col1
 ) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) - 10.175D))) (type: double), power(((_col6 - ((_col7 * _col7) / _col8)) / CASE WHEN ((_col8 = 1L)) THEN (null) ELSE ((_col8 - 1)) END), 0.5) (type: double), (- power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5)) (type: double), _col9 (type: double), ((- (power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) * (power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) - 10.175D))) / (power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) - 10.175D)) (type: double), (- (power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) - 10.175D)) (type: double), (UDFToDouble(_col10) / _col11) (type: double), (-3728.0D - power(((_col0 
 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5)) (type: double), power(((_col12 - ((_col13 * _col13) / _col11)) / _col11), 0.5) (type: double), ((UDFToDouble(_col10) / _col11) / power(((_col6 - ((_col7 * _col7) / _col8)) / CASE WHEN ((_col8 = 1L)) THEN (null) ELSE ((_col8 - 1)) END), 0.5)) (type: double)
                   outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13, _col14, _col15
                   Select Vectorization:
                       className: VectorSelectOperator
                       native: true
-                      projectedOutputColumnNums: [14, 19, 15, 23, 26, 29, 22, 32, 40, 9, 43, 35, 46, 54, 53, 59]
-                      selectExpressions: FuncPowerDoubleToDouble(col 15:double)(children: DoubleColDivideLongColumn(col 14:double, col 18:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 15:double)(children: DoubleColDivideLongColumn(col 14:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 14:double) -> 15:double) -> 14:double, IfExprNullCondExpr(col 16:boolean, null, col 17:bigint)(children: LongColEqualLongScalar(col 2:bigint, val 1) -> 16:boolean, LongColSubtractLongScalar(col 2:bigint, val 1) -> 17:bigint) -> 18:bigint) -> 15:double) -> 14:double, DoubleColSubtractDoubleScalar(col 15:double, val 10.175)(children: FuncPowerDoubleToDouble(col 19:double)(children: DoubleColDivideLongColumn(col 15:double, col 21:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 19:double)(children: DoubleColDivideLongColumn(col 15:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 15
 :double) -> 19:double) -> 15:double, IfExprNullCondExpr(col 18:boolean, null, col 20:bigint)(children: LongColEqualLongScalar(col 2:bigint, val 1) -> 18:boolean, LongColSubtractLongScalar(col 2:bigint, val 1) -> 20:bigint) -> 21:bigint) -> 19:double) -> 15:double) -> 19:double, FuncPowerDoubleToDouble(col 22:double)(children: DoubleColDivideLongColumn(col 15:double, col 5:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 22:double)(children: DoubleColDivideLongColumn(col 15:double, col 5:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 15:double) -> 22:double) -> 15:double) -> 22:double) -> 15:double, DoubleColMultiplyDoubleColumn(col 22:double, col 26:double)(children: FuncPowerDoubleToDouble(col 23:double)(children: DoubleColDivideLongColumn(col 22:double, col 25:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 23:double)(children: DoubleColDivideLongColumn(col 22:double, col 2:bigint)(children: DoubleColMultiplyDouble
 Column(col 1:double, col 1:double) -> 22:double) -> 23:double) -> 22:double, IfExprNullCondExpr(col 21:boolean, null, col 24:bigint)(children: LongColEqualLongScalar(col 2:bigint, val 1) -> 21:boolean, LongColSubtractLongScalar(col 2:bigint, val 1) -> 24:bigint) -> 25:bigint) -> 23:double) -> 22:double, DoubleColSubtractDoubleScalar(col 23:double, val 10.175)(children: FuncPowerDoubleToDouble(col 26:double)(children: DoubleColDivideLongColumn(col 23:double, col 28:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 26:double)(children: DoubleColDivideLongColumn(col 23:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 23:double) -> 26:double) -> 23:double, IfExprNullCondExpr(col 25:boolean, null, col 27:bigint)(children: LongColEqualLongScalar(col 2:bigint, val 1) -> 25:boolean, LongColSubtractLongScalar(col 2:bigint, val 1) -> 27:bigint) -> 28:bigint) -> 26:double) -> 23:double) -> 26:double) -> 23:double, DoubleColUnaryMinus(
 col 22:double)(children: FuncPowerDoubleToDouble(col 26:double)(children: DoubleColDivideLongColumn(col 22:double, col 5:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 26:double)(children: DoubleColDivideLongColumn(col 22:double, col 5:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 22:double) -> 26:double) -> 22:double) -> 26:double) -> 22:double) -> 26:double, DoubleColModuloDoubleScalar(col 22:double, val 79.553)(children: FuncPowerDoubleToDouble(col 29:double)(children: DoubleColDivideLongColumn(col 22:double, col 31:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 29:double)(children: DoubleColDivideLongColumn(col 22:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 22:double) -> 29:double) -> 22:double, IfExprNullCondExpr(col 28:boolean, null, col 30:bigint)(children: LongColEqualLongScalar(col 2:bigint, val 1) -> 28:boolean, LongColSubtractLongScalar(col 2:bigint, val
  1) -> 30:bigint) -> 31:bigint) -> 29:double) -> 22:double) -> 29:double, DoubleColUnaryMinus(col 32:double)(children: DoubleColMultiplyDoubleColumn(col 22:double, col 35:double)(children: FuncPowerDoubleToDouble(col 32:double)(children: DoubleColDivideLongColumn(col 22:double, col 34:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 32:double)(children: DoubleColDivideLongColumn(col 22:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 22:double) -> 32:double) -> 22:double, IfExprNullCondExpr(col 31:boolean, null, col 33:bigint)(children: LongColEqualLongScalar(col 2:bigint, val 1) -> 31:boolean, LongColSubtractLongScalar(col 2:bigint, val 1) -> 33:bigint) -> 34:bigint) -> 32:double) -> 22:double, DoubleColSubtractDoubleScalar(col 32:double, val 10.175)(children: FuncPowerDoubleToDouble(col 35:double)(children: DoubleColDivideLongColumn(col 32:double, col 37:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 3
 5:double)(children: DoubleColDivideLongColumn(col 32:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 32:double) -> 35:double) -> 32:double, IfExprNullCondExpr(col 34:boolean, null, col 36:bigint)(children: LongColEqualLongScalar(col 2:bigint, val 1) -> 34:boolean, LongColSubtractLongScalar(col 2:bigint, val 1) -> 36:bigint) -> 37:bigint) -> 35:double) -> 32:double) -> 35:double) -> 32:double) -> 22:double, FuncPowerDoubleToDouble(col 35:double)(children: DoubleColDivideLongColumn(col 32:double, col 39:bigint)(children: DoubleColSubtractDoubleColumn(col 6:double, col 35:double)(children: DoubleColDivideLongColumn(col 32:double, col 8:bigint)(children: DoubleColMultiplyDoubleColumn(col 7:double, col 7:double) -> 32:double) -> 35:double) -> 32:double, IfExprNullCondExpr(col 37:boolean, null, col 38:bigint)(children: LongColEqualLongScalar(col 8:bigint, val 1) -> 37:boolean, LongColSubtractLongScalar(col 8:bigint, val 1) -> 38:bigint) -> 39:b
 igint) -> 35:double) -> 32:double, DoubleColUnaryMinus(col 35:double)(children: FuncPowerDoubleToDouble(col 40:double)(children: DoubleColDivideLongColumn(col 35:double, col 42:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 40:double)(children: DoubleColDivideLongColumn(col 35:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 35:double) -> 40:double) -> 35:double, IfExprNullCondExpr(col 39:boolean, null, col 41:bigint)(children: LongColEqualLongScalar(col 2:bigint, val 1) -> 39:boolean, LongColSubtractLongScalar(col 2:bigint, val 1) -> 41:bigint) -> 42:bigint) -> 40:double) -> 35:double) -> 40:double, DoubleColDivideDoubleColumn(col 35:double, col 46:double)(children: DoubleColUnaryMinus(col 43:double)(children: DoubleColMultiplyDoubleColumn(col 35:double, col 46:double)(children: FuncPowerDoubleToDouble(col 43:double)(children: DoubleColDivideLongColumn(col 35:double, col 45:bigint)(children: DoubleColSubtractDoubleColum
 n(col 0:double, col 43:double)(children: DoubleColDivideLongColumn(col 35:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 35:double) -> 43:double) -> 35:double, IfExprNullCondExpr(col 42:boolean, null, col 44:bigint)(children: LongColEqualLongScalar(col 2:bigint, val 1) -> 42:boolean, LongColSubtractLongScalar(col 2:bigint, val 1) -> 44:bigint) -> 45:bigint) -> 43:double) -> 35:double, DoubleColSubtractDoubleScalar(col 43:double, val 10.175)(children: FuncPowerDoubleToDouble(col 46:double)(children: DoubleColDivideLongColumn(col 43:double, col 48:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 46:double)(children: DoubleColDivideLongColumn(col 43:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 43:double) -> 46:double) -> 43:double, IfExprNullCondExpr(col 45:boolean, null, col 47:bigint)(children: LongColEqualLongScalar(col 2:bigint, val 1) -> 45:boolean, LongColSubtractLongSca
 lar(col 2:bigint, val 1) -> 47:bigint) -> 48:bigint) -> 46:double) -> 43:double) -> 46:double) -> 43:double) -> 35:double, DoubleColSubtractDoubleScalar(col 43:double, val 10.175)(children: FuncPowerDoubleToDouble(col 46:double)(children: DoubleColDivideLongColumn(col 43:double, col 50:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 46:double)(children: DoubleColDivideLongColumn(col 43:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 43:double) -> 46:double) -> 43:double, IfExprNullCondExpr(col 48:boolean, null, col 49:bigint)(children: LongColEqualLongScalar(col 2:bigint, val 1) -> 48:boolean, LongColSubtractLongScalar(col 2:bigint, val 1) -> 49:bigint) -> 50:bigint) -> 46:double) -> 43:double) -> 46:double) -> 43:double, DoubleColUnaryMinus(col 46:double)(children: DoubleColSubtractDoubleScalar(col 35:double, val 10.175)(children: FuncPowerDoubleToDouble(col 46:double)(children: DoubleColDivideLongColumn(col 35:double, 
 col 52:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 46:double)(children: DoubleColDivideLongColumn(col 35:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 35:double) -> 46:double) -> 35:double, IfExprNullCondExpr(col 50:boolean, null, col 51:bigint)(children: LongColEqualLongScalar(col 2:bigint, val 1) -> 50:boolean, LongColSubtractLongScalar(col 2:bigint, val 1) -> 51:bigint) -> 52:bigint) -> 46:double) -> 35:double) -> 46:double) -> 35:double, LongColDivideLongColumn(col 10:bigint, col 11:bigint) -> 46:double, DoubleScalarSubtractDoubleColumn(val -3728.0, col 53:double)(children: FuncPowerDoubleToDouble(col 54:double)(children: DoubleColDivideLongColumn(col 53:double, col 56:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 54:double)(children: DoubleColDivideLongColumn(col 53:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 53:double) -> 54:double) -> 53:do
 uble, IfExprNullCondExpr(col 52:boolean, null, col 55:bigint)(children: LongColEqualLongScalar(col 2:bigint, val 1) -> 52:boolean, LongColSubtractLongScalar(col 2:bigint, val 1) -> 55:bigint) -> 56:bigint) -> 54:double) -> 53:double) -> 54:double, FuncPowerDoubleToDouble(col 57:double)(children: DoubleColDivideLongColumn(col 53:double, col 11:bigint)(children: DoubleColSubtractDoubleColumn(col 12:double, col 57:double)(children: DoubleColDivideLongColumn(col 53:double, col 11:bigint)(children: DoubleColMultiplyDoubleColumn(col 13:double, col 13:double) -> 53:double) -> 57:double) -> 53:double) -> 57:double) -> 53:double, DoubleColDivideDoubleColumn(col 57:double, col 58:double)(children: LongColDivideLongColumn(col 10:bigint, col 11:bigint) -> 57:double, FuncPowerDoubleToDouble(col 59:double)(children: DoubleColDivideLongColumn(col 58:double, col 61:bigint)(children: DoubleColSubtractDoubleColumn(col 6:double, col 59:double)(children: DoubleColDivideLongColumn(col 58:double, col 8:b
 igint)(children: DoubleColMultiplyDoubleColumn(col 7:double, col 7:double) -> 58:double) -> 59:double) -> 58:double, IfExprNullCondExpr(col 56:boolean, null, col 60:bigint)(children: LongColEqualLongScalar(col 8:bigint, val 1) -> 56:boolean, LongColSubtractLongScalar(col 8:bigint, val 1) -> 60:bigint) -> 61:bigint) -> 59:double) -> 58:double) -> 59:double
+                      projectedOutputColumnNums: [14, 19, 15, 23, 26, 29, 22, 32, 40, 9, 43, 35, 53, 54, 46, 59]
+                      selectExpressions: FuncPowerDoubleToDouble(col 15:double)(children: DoubleColDivideLongColumn(col 14:double, col 18:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 15:double)(children: DoubleColDivideLongColumn(col 14:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 14:double) -> 15:double) -> 14:double, IfExprNullCondExpr(col 16:boolean, null, col 17:bigint)(children: LongColEqualLongScalar(col 2:bigint, val 1) -> 16:boolean, LongColSubtractLongScalar(col 2:bigint, val 1) -> 17:bigint) -> 18:bigint) -> 15:double) -> 14:double, DoubleColSubtractDoubleScalar(col 15:double, val 10.175)(children: FuncPowerDoubleToDouble(col 19:double)(children: DoubleColDivideLongColumn(col 15:double, col 21:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 19:double)(children: DoubleColDivideLongColumn(col 15:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 15
 :double) -> 19:double) -> 15:double, IfExprNullCondExpr(col 18:boolean, null, col 20:bigint)(children: LongColEqualLongScalar(col 2:bigint, val 1) -> 18:boolean, LongColSubtractLongScalar(col 2:bigint, val 1) -> 20:bigint) -> 21:bigint) -> 19:double) -> 15:double) -> 19:double, FuncPowerDoubleToDouble(col 22:double)(children: DoubleColDivideLongColumn(col 15:double, col 5:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 22:double)(children: DoubleColDivideLongColumn(col 15:double, col 5:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 15:double) -> 22:double) -> 15:double) -> 22:double) -> 15:double, DoubleColMultiplyDoubleColumn(col 22:double, col 26:double)(children: FuncPowerDoubleToDouble(col 23:double)(children: DoubleColDivideLongColumn(col 22:double, col 25:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 23:double)(children: DoubleColDivideLongColumn(col 22:double, col 2:bigint)(children: DoubleColMultiplyDouble
 Column(col 1:double, col 1:double) -> 22:double) -> 23:double) -> 22:double, IfExprNullCondExpr(col 21:boolean, null, col 24:bigint)(children: LongColEqualLongScalar(col 2:bigint, val 1) -> 21:boolean, LongColSubtractLongScalar(col 2:bigint, val 1) -> 24:bigint) -> 25:bigint) -> 23:double) -> 22:double, DoubleColSubtractDoubleScalar(col 23:double, val 10.175)(children: FuncPowerDoubleToDouble(col 26:double)(children: DoubleColDivideLongColumn(col 23:double, col 28:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 26:double)(children: DoubleColDivideLongColumn(col 23:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 23:double) -> 26:double) -> 23:double, IfExprNullCondExpr(col 25:boolean, null, col 27:bigint)(children: LongColEqualLongScalar(col 2:bigint, val 1) -> 25:boolean, LongColSubtractLongScalar(col 2:bigint, val 1) -> 27:bigint) -> 28:bigint) -> 26:double) -> 23:double) -> 26:double) -> 23:double, DoubleColUnaryMinus(
 col 22:double)(children: FuncPowerDoubleToDouble(col 26:double)(children: DoubleColDivideLongColumn(col 22:double, col 5:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 26:double)(children: DoubleColDivideLongColumn(col 22:double, col 5:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 22:double) -> 26:double) -> 22:double) -> 26:double) -> 22:double) -> 26:double, DoubleColModuloDoubleScalar(col 22:double, val 79.553)(children: FuncPowerDoubleToDouble(col 29:double)(children: DoubleColDivideLongColumn(col 22:double, col 31:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 29:double)(children: DoubleColDivideLongColumn(col 22:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 22:double) -> 29:double) -> 22:double, IfExprNullCondExpr(col 28:boolean, null, col 30:bigint)(children: LongColEqualLongScalar(col 2:bigint, val 1) -> 28:boolean, LongColSubtractLongScalar(col 2:bigint, val
  1) -> 30:bigint) -> 31:bigint) -> 29:double) -> 22:double) -> 29:double, DoubleColUnaryMinus(col 32:double)(children: DoubleColMultiplyDoubleColumn(col 22:double, col 35:double)(children: FuncPowerDoubleToDouble(col 32:double)(children: DoubleColDivideLongColumn(col 22:double, col 34:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 32:double)(children: DoubleColDivideLongColumn(col 22:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 22:double) -> 32:double) -> 22:double, IfExprNullCondExpr(col 31:boolean, null, col 33:bigint)(children: LongColEqualLongScalar(col 2:bigint, val 1) -> 31:boolean, LongColSubtractLongScalar(col 2:bigint, val 1) -> 33:bigint) -> 34:bigint) -> 32:double) -> 22:double, DoubleColSubtractDoubleScalar(col 32:double, val 10.175)(children: FuncPowerDoubleToDouble(col 35:double)(children: DoubleColDivideLongColumn(col 32:double, col 37:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 3
 5:double)(children: DoubleColDivideLongColumn(col 32:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 32:double) -> 35:double) -> 32:double, IfExprNullCondExpr(col 34:boolean, null, col 36:bigint)(children: LongColEqualLongScalar(col 2:bigint, val 1) -> 34:boolean, LongColSubtractLongScalar(col 2:bigint, val 1) -> 36:bigint) -> 37:bigint) -> 35:double) -> 32:double) -> 35:double) -> 32:double) -> 22:double, FuncPowerDoubleToDouble(col 35:double)(children: DoubleColDivideLongColumn(col 32:double, col 39:bigint)(children: DoubleColSubtractDoubleColumn(col 6:double, col 35:double)(children: DoubleColDivideLongColumn(col 32:double, col 8:bigint)(children: DoubleColMultiplyDoubleColumn(col 7:double, col 7:double) -> 32:double) -> 35:double) -> 32:double, IfExprNullCondExpr(col 37:boolean, null, col 38:bigint)(children: LongColEqualLongScalar(col 8:bigint, val 1) -> 37:boolean, LongColSubtractLongScalar(col 8:bigint, val 1) -> 38:bigint) -> 39:b
 igint) -> 35:double) -> 32:double, DoubleColUnaryMinus(col 35:double)(children: FuncPowerDoubleToDouble(col 40:double)(children: DoubleColDivideLongColumn(col 35:double, col 42:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 40:double)(children: DoubleColDivideLongColumn(col 35:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 35:double) -> 40:double) -> 35:double, IfExprNullCondExpr(col 39:boolean, null, col 41:bigint)(children: LongColEqualLongScalar(col 2:bigint, val 1) -> 39:boolean, LongColSubtractLongScalar(col 2:bigint, val 1) -> 41:bigint) -> 42:bigint) -> 40:double) -> 35:double) -> 40:double, DoubleColDivideDoubleColumn(col 35:double, col 46:double)(children: DoubleColUnaryMinus(col 43:double)(children: DoubleColMultiplyDoubleColumn(col 35:double, col 46:double)(children: FuncPowerDoubleToDouble(col 43:double)(children: DoubleColDivideLongColumn(col 35:double, col 45:bigint)(children: DoubleColSubtractDoubleColum
 n(col 0:double, col 43:double)(children: DoubleColDivideLongColumn(col 35:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 35:double) -> 43:double) -> 35:double, IfExprNullCondExpr(col 42:boolean, null, col 44:bigint)(children: LongColEqualLongScalar(col 2:bigint, val 1) -> 42:boolean, LongColSubtractLongScalar(col 2:bigint, val 1) -> 44:bigint) -> 45:bigint) -> 43:double) -> 35:double, DoubleColSubtractDoubleScalar(col 43:double, val 10.175)(children: FuncPowerDoubleToDouble(col 46:double)(children: DoubleColDivideLongColumn(col 43:double, col 48:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 46:double)(children: DoubleColDivideLongColumn(col 43:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 43:double) -> 46:double) -> 43:double, IfExprNullCondExpr(col 45:boolean, null, col 47:bigint)(children: LongColEqualLongScalar(col 2:bigint, val 1) -> 45:boolean, LongColSubtractLongSca
 lar(col 2:bigint, val 1) -> 47:bigint) -> 48:bigint) -> 46:double) -> 43:double) -> 46:double) -> 43:double) -> 35:double, DoubleColSubtractDoubleScalar(col 43:double, val 10.175)(children: FuncPowerDoubleToDouble(col 46:double)(children: DoubleColDivideLongColumn(col 43:double, col 50:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 46:double)(children: DoubleColDivideLongColumn(col 43:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 43:double) -> 46:double) -> 43:double, IfExprNullCondExpr(col 48:boolean, null, col 49:bigint)(children: LongColEqualLongScalar(col 2:bigint, val 1) -> 48:boolean, LongColSubtractLongScalar(col 2:bigint, val 1) -> 49:bigint) -> 50:bigint) -> 46:double) -> 43:double) -> 46:double) -> 43:double, DoubleColUnaryMinus(col 46:double)(children: DoubleColSubtractDoubleScalar(col 35:double, val 10.175)(children: FuncPowerDoubleToDouble(col 46:double)(children: DoubleColDivideLongColumn(col 35:double, 
 col 52:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 46:double)(children: DoubleColDivideLongColumn(col 35:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 35:double) -> 46:double) -> 35:double, IfExprNullCondExpr(col 50:boolean, null, col 51:bigint)(children: LongColEqualLongScalar(col 2:bigint, val 1) -> 50:boolean, LongColSubtractLongScalar(col 2:bigint, val 1) -> 51:bigint) -> 52:bigint) -> 46:double) -> 35:double) -> 46:double) -> 35:double, DoubleColDivideLongColumn(col 46:double, col 11:bigint)(children: CastLongToDouble(col 10:bigint) -> 46:double) -> 53:double, DoubleScalarSubtractDoubleColumn(val -3728.0, col 46:double)(children: FuncPowerDoubleToDouble(col 54:double)(children: DoubleColDivideLongColumn(col 46:double, col 56:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 54:double)(children: DoubleColDivideLongColumn(col 46:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:
 double, col 1:double) -> 46:double) -> 54:double) -> 46:double, IfExprNullCondExpr(col 52:boolean, null, col 55:bigint)(children: LongColEqualLongScalar(col 2:bigint, val 1) -> 52:boolean, LongColSubtractLongScalar(col 2:bigint, val 1) -> 55:bigint) -> 56:bigint) -> 54:double) -> 46:double) -> 54:double, FuncPowerDoubleToDouble(col 57:double)(children: DoubleColDivideLongColumn(col 46:double, col 11:bigint)(children: DoubleColSubtractDoubleColumn(col 12:double, col 57:double)(children: DoubleColDivideLongColumn(col 46:double, col 11:bigint)(children: DoubleColMultiplyDoubleColumn(col 13:double, col 13:double) -> 46:double) -> 57:double) -> 46:double) -> 57:double) -> 46:double, DoubleColDivideDoubleColumn(col 58:double, col 57:double)(children: DoubleColDivideLongColumn(col 57:double, col 11:bigint)(children: CastLongToDouble(col 10:bigint) -> 57:double) -> 58:double, FuncPowerDoubleToDouble(col 59:double)(children: DoubleColDivideLongColumn(col 57:double, col 61:bigint)(children: D
 oubleColSubtractDoubleColumn(col 6:double, col 59:double)(children: DoubleColDivideLongColumn(col 57:double, col 8:bigint)(children: DoubleColMultiplyDoubleColumn(col 7:double, col 7:double) -> 57:double) -> 59:double) -> 57:double, IfExprNullCondExpr(col 56:boolean, null, col 60:bigint)(children: LongColEqualLongScalar(col 8:bigint, val 1) -> 56:boolean, LongColSubtractLongScalar(col 8:bigint, val 1) -> 60:bigint) -> 61:bigint) -> 59:double) -> 57:double) -> 59:double
                   Statistics: Num rows: 1 Data size: 112 Basic stats: COMPLETE Column stats: NONE
                   File Output Operator
                     compressed: false

http://git-wip-us.apache.org/repos/asf/hive/blob/649d7c12/ql/src/test/results/clientpositive/spark/vectorization_pushdown.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/vectorization_pushdown.q.out b/ql/src/test/results/clientpositive/spark/vectorization_pushdown.q.out
index c1ad2f9..b709b8b 100644
--- a/ql/src/test/results/clientpositive/spark/vectorization_pushdown.q.out
+++ b/ql/src/test/results/clientpositive/spark/vectorization_pushdown.q.out
@@ -65,7 +65,7 @@ STAGE PLANS:
                 outputColumnNames: _col0, _col1
                 Statistics: Num rows: 1 Data size: 16 Basic stats: COMPLETE Column stats: NONE
                 Select Operator
-                  expressions: (_col0 / _col1) (type: double)
+                  expressions: (UDFToDouble(_col0) / _col1) (type: double)
                   outputColumnNames: _col0
                   Statistics: Num rows: 1 Data size: 16 Basic stats: COMPLETE Column stats: NONE
                   File Output Operator


[7/8] hive git commit: HIVE-20391: HiveAggregateReduceFunctionsRule may infer wrong return type when decomposing aggregate function (Jesus Camacho Rodriguez, reviewed by Ashutosh Chauhan)

Posted by jc...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/649d7c12/ql/src/test/results/clientpositive/llap/vectorization_0.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/llap/vectorization_0.q.out b/ql/src/test/results/clientpositive/llap/vectorization_0.q.out
index fde799e..c710096 100644
--- a/ql/src/test/results/clientpositive/llap/vectorization_0.q.out
+++ b/ql/src/test/results/clientpositive/llap/vectorization_0.q.out
@@ -446,7 +446,7 @@ STAGE PLANS:
                 outputColumnNames: _col0, _col1, _col2, _col3
                 Statistics: Num rows: 1 Data size: 32 Basic stats: COMPLETE Column stats: COMPLETE
                 Select Operator
-                  expressions: (_col0 / _col1) (type: double), ((_col2 - ((_col3 * _col3) / _col1)) / _col1) (type: double), ((_col2 - ((_col3 * _col3) / _col1)) / CASE WHEN ((_col1 = 1L)) THEN (null) ELSE ((_col1 - 1)) END) (type: double), power(((_col2 - ((_col3 * _col3) / _col1)) / _col1), 0.5) (type: double), power(((_col2 - ((_col3 * _col3) / _col1)) / CASE WHEN ((_col1 = 1L)) THEN (null) ELSE ((_col1 - 1)) END), 0.5) (type: double)
+                  expressions: (UDFToDouble(_col0) / _col1) (type: double), ((_col2 - ((_col3 * _col3) / _col1)) / _col1) (type: double), ((_col2 - ((_col3 * _col3) / _col1)) / CASE WHEN ((_col1 = 1L)) THEN (null) ELSE ((_col1 - 1)) END) (type: double), power(((_col2 - ((_col3 * _col3) / _col1)) / _col1), 0.5) (type: double), power(((_col2 - ((_col3 * _col3) / _col1)) / CASE WHEN ((_col1 = 1L)) THEN (null) ELSE ((_col1 - 1)) END), 0.5) (type: double)
                   outputColumnNames: _col0, _col1, _col3, _col4, _col7
                   Statistics: Num rows: 1 Data size: 64 Basic stats: COMPLETE Column stats: COMPLETE
                   Reduce Output Operator
@@ -958,7 +958,7 @@ STAGE PLANS:
                 outputColumnNames: _col0, _col1, _col2, _col3
                 Statistics: Num rows: 1 Data size: 32 Basic stats: COMPLETE Column stats: COMPLETE
                 Select Operator
-                  expressions: (_col0 / _col1) (type: double), ((_col2 - ((_col3 * _col3) / _col1)) / _col1) (type: double), ((_col2 - ((_col3 * _col3) / _col1)) / CASE WHEN ((_col1 = 1L)) THEN (null) ELSE ((_col1 - 1)) END) (type: double), power(((_col2 - ((_col3 * _col3) / _col1)) / _col1), 0.5) (type: double), power(((_col2 - ((_col3 * _col3) / _col1)) / CASE WHEN ((_col1 = 1L)) THEN (null) ELSE ((_col1 - 1)) END), 0.5) (type: double)
+                  expressions: (UDFToDouble(_col0) / _col1) (type: double), ((_col2 - ((_col3 * _col3) / _col1)) / _col1) (type: double), ((_col2 - ((_col3 * _col3) / _col1)) / CASE WHEN ((_col1 = 1L)) THEN (null) ELSE ((_col1 - 1)) END) (type: double), power(((_col2 - ((_col3 * _col3) / _col1)) / _col1), 0.5) (type: double), power(((_col2 - ((_col3 * _col3) / _col1)) / CASE WHEN ((_col1 = 1L)) THEN (null) ELSE ((_col1 - 1)) END), 0.5) (type: double)
                   outputColumnNames: _col0, _col1, _col3, _col4, _col7
                   Statistics: Num rows: 1 Data size: 64 Basic stats: COMPLETE Column stats: COMPLETE
                   Reduce Output Operator
@@ -1698,13 +1698,13 @@ STAGE PLANS:
                 outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6
                 Statistics: Num rows: 1 Data size: 52 Basic stats: COMPLETE Column stats: COMPLETE
                 Select Operator
-                  expressions: (_col0 / _col1) (type: double), (- (_col0 / _col1)) (type: double), (-6432.0D + (_col0 / _col1)) (type: double), power(((_col2 - ((_col3 * _col3) / _col1)) / _col1), 0.5) (type: double), (- (-6432.0D + (_col0 / _col1))) (type: double), ((- (-6432.0D + (_col0 / _col1))) + (-6432.0D + (_col0 / _col1))) (type: double), ((_col2 - ((_col3 * _col3) / _col1)) / CASE WHEN ((_col1 = 1L)) THEN (null) ELSE ((_col1 - 1)) END) (type: double), (- (-6432.0D + (_col0 / _col1))) (type: double), (-6432.0D + (- (-6432.0D + (_col0 / _col1)))) (type: double), (- (-6432.0D + (_col0 / _col1))) (type: double), ((- (-6432.0D + (_col0 / _col1))) / (- (-6432.0D + (_col0 / _col1)))) (type: double), _col4 (type: bigint), _col5 (type: double), (((_col2 - ((_col3 * _col3) / _col1)) / CASE WHEN ((_col1 = 1L)) THEN (null) ELSE ((_col1 - 1)) END) % power(((_col2 - ((_col3 * _col3) / _col1)) / _col1), 0.5)) (type: double), (- ((_col2 - ((_col3 * _col3) / _col1)) / CASE WHEN ((_col1 = 1L
 )) THEN (null) ELSE ((_col1 - 1)) END)) (type: double), ((- (-6432.0D + (_col0 / _col1))) * (- (_col0 / _col1))) (type: double), _col6 (type: tinyint), (- _col6) (type: tinyint)
+                  expressions: (UDFToDouble(_col0) / _col1) (type: double), (- (UDFToDouble(_col0) / _col1)) (type: double), (-6432.0D + (UDFToDouble(_col0) / _col1)) (type: double), power(((_col2 - ((_col3 * _col3) / _col1)) / _col1), 0.5) (type: double), (- (-6432.0D + (UDFToDouble(_col0) / _col1))) (type: double), ((- (-6432.0D + (UDFToDouble(_col0) / _col1))) + (-6432.0D + (UDFToDouble(_col0) / _col1))) (type: double), ((_col2 - ((_col3 * _col3) / _col1)) / CASE WHEN ((_col1 = 1L)) THEN (null) ELSE ((_col1 - 1)) END) (type: double), (- (-6432.0D + (UDFToDouble(_col0) / _col1))) (type: double), (-6432.0D + (- (-6432.0D + (UDFToDouble(_col0) / _col1)))) (type: double), (- (-6432.0D + (UDFToDouble(_col0) / _col1))) (type: double), ((- (-6432.0D + (UDFToDouble(_col0) / _col1))) / (- (-6432.0D + (UDFToDouble(_col0) / _col1)))) (type: double), _col4 (type: bigint), _col5 (type: double), (((_col2 - ((_col3 * _col3) / _col1)) / CASE WHEN ((_col1 = 1L)) THEN (null) ELSE ((_col1 - 1)) END
 ) % power(((_col2 - ((_col3 * _col3) / _col1)) / _col1), 0.5)) (type: double), (- ((_col2 - ((_col3 * _col3) / _col1)) / CASE WHEN ((_col1 = 1L)) THEN (null) ELSE ((_col1 - 1)) END)) (type: double), ((- (-6432.0D + (UDFToDouble(_col0) / _col1))) * (- (UDFToDouble(_col0) / _col1))) (type: double), _col6 (type: tinyint), (- _col6) (type: tinyint)
                   outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13, _col14, _col15, _col16, _col17
                   Select Vectorization:
                       className: VectorSelectOperator
                       native: true
-                      projectedOutputColumnNums: [7, 9, 10, 8, 11, 13, 14, 12, 19, 18, 22, 4, 5, 25, 20, 28, 6, 27]
-                      selectExpressions: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 7:double, DoubleColUnaryMinus(col 8:double)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 8:double) -> 9:double, DoubleScalarAddDoubleColumn(val -6432.0, col 8:double)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 8:double) -> 10:double, FuncPowerDoubleToDouble(col 11:double)(children: DoubleColDivideLongColumn(col 8:double, col 1:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 11:double)(children: DoubleColDivideLongColumn(col 8:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 8:double) -> 11:double) -> 8:double) -> 11:double) -> 8:double, DoubleColUnaryMinus(col 12:double)(children: DoubleScalarAddDoubleColumn(val -6432.0, col 11:double)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 11:double) -> 12:double) -> 11:double, DoubleColAddDoubleColumn(col 12:double, col 14:do
 uble)(children: DoubleColUnaryMinus(col 13:double)(children: DoubleScalarAddDoubleColumn(val -6432.0, col 12:double)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 12:double) -> 13:double) -> 12:double, DoubleScalarAddDoubleColumn(val -6432.0, col 13:double)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 13:double) -> 14:double) -> 13:double, DoubleColDivideLongColumn(col 12:double, col 17:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 14:double)(children: DoubleColDivideLongColumn(col 12:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 12:double) -> 14:double) -> 12:double, IfExprNullCondExpr(col 15:boolean, null, col 16:bigint)(children: LongColEqualLongScalar(col 1:bigint, val 1) -> 15:boolean, LongColSubtractLongScalar(col 1:bigint, val 1) -> 16:bigint) -> 17:bigint) -> 14:double, DoubleColUnaryMinus(col 18:double)(children: DoubleScalarAddDoubleColumn(val -6432.0, col 12:double)(c
 hildren: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 12:double) -> 18:double) -> 12:double, DoubleScalarAddDoubleColumn(val -6432.0, col 18:double)(children: DoubleColUnaryMinus(col 19:double)(children: DoubleScalarAddDoubleColumn(val -6432.0, col 18:double)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 18:double) -> 19:double) -> 18:double) -> 19:double, DoubleColUnaryMinus(col 20:double)(children: DoubleScalarAddDoubleColumn(val -6432.0, col 18:double)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 18:double) -> 20:double) -> 18:double, DoubleColDivideDoubleColumn(col 20:double, col 21:double)(children: DoubleColUnaryMinus(col 21:double)(children: DoubleScalarAddDoubleColumn(val -6432.0, col 20:double)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 20:double) -> 21:double) -> 20:double, DoubleColUnaryMinus(col 22:double)(children: DoubleScalarAddDoubleColumn(val -6432.0, col 21:double)(children: LongColDivideLongCol
 umn(col 0:bigint, col 1:bigint) -> 21:double) -> 22:double) -> 21:double) -> 22:double, DoubleColModuloDoubleColumn(col 21:double, col 20:double)(children: DoubleColDivideLongColumn(col 20:double, col 24:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 21:double)(children: DoubleColDivideLongColumn(col 20:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 20:double) -> 21:double) -> 20:double, IfExprNullCondExpr(col 17:boolean, null, col 23:bigint)(children: LongColEqualLongScalar(col 1:bigint, val 1) -> 17:boolean, LongColSubtractLongScalar(col 1:bigint, val 1) -> 23:bigint) -> 24:bigint) -> 21:double, FuncPowerDoubleToDouble(col 25:double)(children: DoubleColDivideLongColumn(col 20:double, col 1:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 25:double)(children: DoubleColDivideLongColumn(col 20:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 20:double) -> 25:d
 ouble) -> 20:double) -> 25:double) -> 20:double) -> 25:double, DoubleColUnaryMinus(col 21:double)(children: DoubleColDivideLongColumn(col 20:double, col 27:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 21:double)(children: DoubleColDivideLongColumn(col 20:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 20:double) -> 21:double) -> 20:double, IfExprNullCondExpr(col 24:boolean, null, col 26:bigint)(children: LongColEqualLongScalar(col 1:bigint, val 1) -> 24:boolean, LongColSubtractLongScalar(col 1:bigint, val 1) -> 26:bigint) -> 27:bigint) -> 21:double) -> 20:double, DoubleColMultiplyDoubleColumn(col 21:double, col 29:double)(children: DoubleColUnaryMinus(col 28:double)(children: DoubleScalarAddDoubleColumn(val -6432.0, col 21:double)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 21:double) -> 28:double) -> 21:double, DoubleColUnaryMinus(col 28:double)(children: LongColDivideLongColumn(col 0:bigint, col
  1:bigint) -> 28:double) -> 29:double) -> 28:double, LongColUnaryMinus(col 6:tinyint) -> 27:tinyint
+                      projectedOutputColumnNums: [8, 7, 9, 10, 12, 14, 13, 18, 11, 20, 19, 4, 5, 25, 21, 29, 6, 27]
+                      selectExpressions: DoubleColDivideLongColumn(col 7:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 7:double) -> 8:double, DoubleColUnaryMinus(col 9:double)(children: DoubleColDivideLongColumn(col 7:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 7:double) -> 9:double) -> 7:double, DoubleScalarAddDoubleColumn(val -6432.0, col 10:double)(children: DoubleColDivideLongColumn(col 9:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 9:double) -> 10:double) -> 9:double, FuncPowerDoubleToDouble(col 11:double)(children: DoubleColDivideLongColumn(col 10:double, col 1:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 11:double)(children: DoubleColDivideLongColumn(col 10:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 10:double) -> 11:double) -> 10:double) -> 11:double) -> 10:double, DoubleColUnaryMinus(col 11:double)(children: DoubleScalarAddDoubleColumn(val -64
 32.0, col 12:double)(children: DoubleColDivideLongColumn(col 11:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 11:double) -> 12:double) -> 11:double) -> 12:double, DoubleColAddDoubleColumn(col 13:double, col 11:double)(children: DoubleColUnaryMinus(col 11:double)(children: DoubleScalarAddDoubleColumn(val -6432.0, col 13:double)(children: DoubleColDivideLongColumn(col 11:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 11:double) -> 13:double) -> 11:double) -> 13:double, DoubleScalarAddDoubleColumn(val -6432.0, col 14:double)(children: DoubleColDivideLongColumn(col 11:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 11:double) -> 14:double) -> 11:double) -> 14:double, DoubleColDivideLongColumn(col 11:double, col 17:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 13:double)(children: DoubleColDivideLongColumn(col 11:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 11:doub
 le) -> 13:double) -> 11:double, IfExprNullCondExpr(col 15:boolean, null, col 16:bigint)(children: LongColEqualLongScalar(col 1:bigint, val 1) -> 15:boolean, LongColSubtractLongScalar(col 1:bigint, val 1) -> 16:bigint) -> 17:bigint) -> 13:double, DoubleColUnaryMinus(col 11:double)(children: DoubleScalarAddDoubleColumn(val -6432.0, col 18:double)(children: DoubleColDivideLongColumn(col 11:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 11:double) -> 18:double) -> 11:double) -> 18:double, DoubleScalarAddDoubleColumn(val -6432.0, col 19:double)(children: DoubleColUnaryMinus(col 11:double)(children: DoubleScalarAddDoubleColumn(val -6432.0, col 19:double)(children: DoubleColDivideLongColumn(col 11:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 11:double) -> 19:double) -> 11:double) -> 19:double) -> 11:double, DoubleColUnaryMinus(col 19:double)(children: DoubleScalarAddDoubleColumn(val -6432.0, col 20:double)(children: DoubleColDivideLongColumn(col 19:d
 ouble, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 19:double) -> 20:double) -> 19:double) -> 20:double, DoubleColDivideDoubleColumn(col 21:double, col 22:double)(children: DoubleColUnaryMinus(col 19:double)(children: DoubleScalarAddDoubleColumn(val -6432.0, col 21:double)(children: DoubleColDivideLongColumn(col 19:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 19:double) -> 21:double) -> 19:double) -> 21:double, DoubleColUnaryMinus(col 19:double)(children: DoubleScalarAddDoubleColumn(val -6432.0, col 22:double)(children: DoubleColDivideLongColumn(col 19:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 19:double) -> 22:double) -> 19:double) -> 22:double) -> 19:double, DoubleColModuloDoubleColumn(col 22:double, col 21:double)(children: DoubleColDivideLongColumn(col 21:double, col 24:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 22:double)(children: DoubleColDivideLongColumn(col 21:double, col 1:bigint)(children: Dou
 bleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 21:double) -> 22:double) -> 21:double, IfExprNullCondExpr(col 17:boolean, null, col 23:bigint)(children: LongColEqualLongScalar(col 1:bigint, val 1) -> 17:boolean, LongColSubtractLongScalar(col 1:bigint, val 1) -> 23:bigint) -> 24:bigint) -> 22:double, FuncPowerDoubleToDouble(col 25:double)(children: DoubleColDivideLongColumn(col 21:double, col 1:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 25:double)(children: DoubleColDivideLongColumn(col 21:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 21:double) -> 25:double) -> 21:double) -> 25:double) -> 21:double) -> 25:double, DoubleColUnaryMinus(col 22:double)(children: DoubleColDivideLongColumn(col 21:double, col 27:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 22:double)(children: DoubleColDivideLongColumn(col 21:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:d
 ouble) -> 21:double) -> 22:double) -> 21:double, IfExprNullCondExpr(col 24:boolean, null, col 26:bigint)(children: LongColEqualLongScalar(col 1:bigint, val 1) -> 24:boolean, LongColSubtractLongScalar(col 1:bigint, val 1) -> 26:bigint) -> 27:bigint) -> 22:double) -> 21:double, DoubleColMultiplyDoubleColumn(col 28:double, col 22:double)(children: DoubleColUnaryMinus(col 22:double)(children: DoubleScalarAddDoubleColumn(val -6432.0, col 28:double)(children: DoubleColDivideLongColumn(col 22:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 22:double) -> 28:double) -> 22:double) -> 28:double, DoubleColUnaryMinus(col 29:double)(children: DoubleColDivideLongColumn(col 22:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 22:double) -> 29:double) -> 22:double) -> 29:double, LongColUnaryMinus(col 6:tinyint) -> 27:tinyint
                   Statistics: Num rows: 1 Data size: 136 Basic stats: COMPLETE Column stats: COMPLETE
                   File Output Operator
                     compressed: false

http://git-wip-us.apache.org/repos/asf/hive/blob/649d7c12/ql/src/test/results/clientpositive/llap/vectorization_2.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/llap/vectorization_2.q.out b/ql/src/test/results/clientpositive/llap/vectorization_2.q.out
index 88d7f65..32b62ba 100644
--- a/ql/src/test/results/clientpositive/llap/vectorization_2.q.out
+++ b/ql/src/test/results/clientpositive/llap/vectorization_2.q.out
@@ -153,13 +153,13 @@ STAGE PLANS:
                 outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9
                 Statistics: Num rows: 1 Data size: 76 Basic stats: COMPLETE Column stats: COMPLETE
                 Select Operator
-                  expressions: (_col0 / _col1) (type: double), ((_col0 / _col1) % -563.0D) (type: double), ((_col0 / _col1) + 762.0D) (type: double), _col2 (type: double), ((_col3 - ((_col4 * _col4) / _col5)) / _col5) (type: double), (- ((_col3 - ((_col4 * _col4) / _col5)) / _col5)) (type: double), (_col2 - (_col0 / _col1)) (type: double), _col6 (type: bigint), (- (_col2 - (_col0 / _col1))) (type: double), (((_col3 - ((_col4 * _col4) / _col5)) / _col5) - 762.0D) (type: double), _col7 (type: tinyint), ((- ((_col3 - ((_col4 * _col4) / _col5)) / _col5)) + UDFToDouble(_col7)) (type: double), (_col8 / _col9) (type: double), (((- ((_col3 - ((_col4 * _col4) / _col5)) / _col5)) + UDFToDouble(_col7)) - _col2) (type: double)
+                  expressions: (UDFToDouble(_col0) / _col1) (type: double), ((UDFToDouble(_col0) / _col1) % -563.0D) (type: double), ((UDFToDouble(_col0) / _col1) + 762.0D) (type: double), _col2 (type: double), ((_col3 - ((_col4 * _col4) / _col5)) / _col5) (type: double), (- ((_col3 - ((_col4 * _col4) / _col5)) / _col5)) (type: double), (_col2 - (UDFToDouble(_col0) / _col1)) (type: double), _col6 (type: bigint), (- (_col2 - (UDFToDouble(_col0) / _col1))) (type: double), (((_col3 - ((_col4 * _col4) / _col5)) / _col5) - 762.0D) (type: double), _col7 (type: tinyint), ((- ((_col3 - ((_col4 * _col4) / _col5)) / _col5)) + UDFToDouble(_col7)) (type: double), (_col8 / _col9) (type: double), (((- ((_col3 - ((_col4 * _col4) / _col5)) / _col5)) + UDFToDouble(_col7)) - _col2) (type: double)
                   outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13
                   Select Vectorization:
                       className: VectorSelectOperator
                       native: true
-                      projectedOutputColumnNums: [10, 12, 13, 2, 14, 11, 16, 6, 15, 17, 7, 20, 18, 19]
-                      selectExpressions: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 10:double, DoubleColModuloDoubleScalar(col 11:double, val -563.0)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 11:double) -> 12:double, DoubleColAddDoubleScalar(col 11:double, val 762.0)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 11:double) -> 13:double, DoubleColDivideLongColumn(col 11:double, col 5:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 14:double)(children: DoubleColDivideLongColumn(col 11:double, col 5:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 11:double) -> 14:double) -> 11:double) -> 14:double, DoubleColUnaryMinus(col 15:double)(children: DoubleColDivideLongColumn(col 11:double, col 5:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 15:double)(children: DoubleColDivideLongColumn(col 11:double, col 5:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col
  4:double) -> 11:double) -> 15:double) -> 11:double) -> 15:double) -> 11:double, DoubleColSubtractDoubleColumn(col 2:double, col 15:double)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 15:double) -> 16:double, DoubleColUnaryMinus(col 17:double)(children: DoubleColSubtractDoubleColumn(col 2:double, col 15:double)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 15:double) -> 17:double) -> 15:double, DoubleColSubtractDoubleScalar(col 18:double, val 762.0)(children: DoubleColDivideLongColumn(col 17:double, col 5:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 18:double)(children: DoubleColDivideLongColumn(col 17:double, col 5:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 17:double) -> 18:double) -> 17:double) -> 18:double) -> 17:double, DoubleColAddDoubleColumn(col 18:double, col 19:double)(children: DoubleColUnaryMinus(col 19:double)(children: DoubleColDivideLongColumn(col 18:double, col 5:bigint)(c
 hildren: 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)(children: 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, 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
                   Statistics: Num rows: 1 Data size: 108 Basic stats: COMPLETE Column stats: COMPLETE
                   File Output Operator
                     compressed: false

http://git-wip-us.apache.org/repos/asf/hive/blob/649d7c12/ql/src/test/results/clientpositive/llap/vectorization_3.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/llap/vectorization_3.q.out b/ql/src/test/results/clientpositive/llap/vectorization_3.q.out
index 47b16f7..944c0f7 100644
--- a/ql/src/test/results/clientpositive/llap/vectorization_3.q.out
+++ b/ql/src/test/results/clientpositive/llap/vectorization_3.q.out
@@ -158,13 +158,13 @@ STAGE PLANS:
                 outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13
                 Statistics: Num rows: 1 Data size: 112 Basic stats: COMPLETE Column stats: COMPLETE
                 Select Operator
-                  expressions: power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) (type: double), (power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) - 10.175D) (type: double), power(((_col3 - ((_col4 * _col4) / _col5)) / _col5), 0.5) (type: double), (power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) * (power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) - 10.175D)) (type: double), (- power(((_col3 - ((_col4 * _col4) / _col5)) / _col5), 0.5)) (type: double), (power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) % 79.553D) (type: double), (- (power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) * (power(((_col0 - ((_col1 * _col1
 ) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) - 10.175D))) (type: double), power(((_col6 - ((_col7 * _col7) / _col8)) / CASE WHEN ((_col8 = 1L)) THEN (null) ELSE ((_col8 - 1)) END), 0.5) (type: double), (- power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5)) (type: double), _col9 (type: double), ((- (power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) * (power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) - 10.175D))) / (power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) - 10.175D)) (type: double), (- (power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) - 10.175D)) (type: double), (_col10 / _col11) (type: double), (-3728.0D - power(((_col0 - ((_col1 * _
 col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5)) (type: double), power(((_col12 - ((_col13 * _col13) / _col11)) / _col11), 0.5) (type: double), ((_col10 / _col11) / power(((_col6 - ((_col7 * _col7) / _col8)) / CASE WHEN ((_col8 = 1L)) THEN (null) ELSE ((_col8 - 1)) END), 0.5)) (type: double)
+                  expressions: power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) (type: double), (power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) - 10.175D) (type: double), power(((_col3 - ((_col4 * _col4) / _col5)) / _col5), 0.5) (type: double), (power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) * (power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) - 10.175D)) (type: double), (- power(((_col3 - ((_col4 * _col4) / _col5)) / _col5), 0.5)) (type: double), (power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) % 79.553D) (type: double), (- (power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) * (power(((_col0 - ((_col1 * _col1
 ) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) - 10.175D))) (type: double), power(((_col6 - ((_col7 * _col7) / _col8)) / CASE WHEN ((_col8 = 1L)) THEN (null) ELSE ((_col8 - 1)) END), 0.5) (type: double), (- power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5)) (type: double), _col9 (type: double), ((- (power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) * (power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) - 10.175D))) / (power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) - 10.175D)) (type: double), (- (power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) - 10.175D)) (type: double), (UDFToDouble(_col10) / _col11) (type: double), (-3728.0D - power(((_col0 
 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5)) (type: double), power(((_col12 - ((_col13 * _col13) / _col11)) / _col11), 0.5) (type: double), ((UDFToDouble(_col10) / _col11) / power(((_col6 - ((_col7 * _col7) / _col8)) / CASE WHEN ((_col8 = 1L)) THEN (null) ELSE ((_col8 - 1)) END), 0.5)) (type: double)
                   outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13, _col14, _col15
                   Select Vectorization:
                       className: VectorSelectOperator
                       native: true
-                      projectedOutputColumnNums: [14, 19, 15, 23, 26, 29, 22, 32, 40, 9, 43, 35, 46, 54, 53, 59]
-                      selectExpressions: FuncPowerDoubleToDouble(col 15:double)(children: DoubleColDivideLongColumn(col 14:double, col 18:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 15:double)(children: DoubleColDivideLongColumn(col 14:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 14:double) -> 15:double) -> 14:double, IfExprNullCondExpr(col 16:boolean, null, col 17:bigint)(children: LongColEqualLongScalar(col 2:bigint, val 1) -> 16:boolean, LongColSubtractLongScalar(col 2:bigint, val 1) -> 17:bigint) -> 18:bigint) -> 15:double) -> 14:double, DoubleColSubtractDoubleScalar(col 15:double, val 10.175)(children: FuncPowerDoubleToDouble(col 19:double)(children: DoubleColDivideLongColumn(col 15:double, col 21:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 19:double)(children: DoubleColDivideLongColumn(col 15:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 15
 :double) -> 19:double) -> 15:double, IfExprNullCondExpr(col 18:boolean, null, col 20:bigint)(children: LongColEqualLongScalar(col 2:bigint, val 1) -> 18:boolean, LongColSubtractLongScalar(col 2:bigint, val 1) -> 20:bigint) -> 21:bigint) -> 19:double) -> 15:double) -> 19:double, FuncPowerDoubleToDouble(col 22:double)(children: DoubleColDivideLongColumn(col 15:double, col 5:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 22:double)(children: DoubleColDivideLongColumn(col 15:double, col 5:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 15:double) -> 22:double) -> 15:double) -> 22:double) -> 15:double, DoubleColMultiplyDoubleColumn(col 22:double, col 26:double)(children: FuncPowerDoubleToDouble(col 23:double)(children: DoubleColDivideLongColumn(col 22:double, col 25:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 23:double)(children: DoubleColDivideLongColumn(col 22:double, col 2:bigint)(children: DoubleColMultiplyDouble
 Column(col 1:double, col 1:double) -> 22:double) -> 23:double) -> 22:double, IfExprNullCondExpr(col 21:boolean, null, col 24:bigint)(children: LongColEqualLongScalar(col 2:bigint, val 1) -> 21:boolean, LongColSubtractLongScalar(col 2:bigint, val 1) -> 24:bigint) -> 25:bigint) -> 23:double) -> 22:double, DoubleColSubtractDoubleScalar(col 23:double, val 10.175)(children: FuncPowerDoubleToDouble(col 26:double)(children: DoubleColDivideLongColumn(col 23:double, col 28:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 26:double)(children: DoubleColDivideLongColumn(col 23:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 23:double) -> 26:double) -> 23:double, IfExprNullCondExpr(col 25:boolean, null, col 27:bigint)(children: LongColEqualLongScalar(col 2:bigint, val 1) -> 25:boolean, LongColSubtractLongScalar(col 2:bigint, val 1) -> 27:bigint) -> 28:bigint) -> 26:double) -> 23:double) -> 26:double) -> 23:double, DoubleColUnaryMinus(
 col 22:double)(children: FuncPowerDoubleToDouble(col 26:double)(children: DoubleColDivideLongColumn(col 22:double, col 5:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 26:double)(children: DoubleColDivideLongColumn(col 22:double, col 5:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 22:double) -> 26:double) -> 22:double) -> 26:double) -> 22:double) -> 26:double, DoubleColModuloDoubleScalar(col 22:double, val 79.553)(children: FuncPowerDoubleToDouble(col 29:double)(children: DoubleColDivideLongColumn(col 22:double, col 31:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 29:double)(children: DoubleColDivideLongColumn(col 22:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 22:double) -> 29:double) -> 22:double, IfExprNullCondExpr(col 28:boolean, null, col 30:bigint)(children: LongColEqualLongScalar(col 2:bigint, val 1) -> 28:boolean, LongColSubtractLongScalar(col 2:bigint, val
  1) -> 30:bigint) -> 31:bigint) -> 29:double) -> 22:double) -> 29:double, DoubleColUnaryMinus(col 32:double)(children: DoubleColMultiplyDoubleColumn(col 22:double, col 35:double)(children: FuncPowerDoubleToDouble(col 32:double)(children: DoubleColDivideLongColumn(col 22:double, col 34:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 32:double)(children: DoubleColDivideLongColumn(col 22:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 22:double) -> 32:double) -> 22:double, IfExprNullCondExpr(col 31:boolean, null, col 33:bigint)(children: LongColEqualLongScalar(col 2:bigint, val 1) -> 31:boolean, LongColSubtractLongScalar(col 2:bigint, val 1) -> 33:bigint) -> 34:bigint) -> 32:double) -> 22:double, DoubleColSubtractDoubleScalar(col 32:double, val 10.175)(children: FuncPowerDoubleToDouble(col 35:double)(children: DoubleColDivideLongColumn(col 32:double, col 37:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 3
 5:double)(children: DoubleColDivideLongColumn(col 32:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 32:double) -> 35:double) -> 32:double, IfExprNullCondExpr(col 34:boolean, null, col 36:bigint)(children: LongColEqualLongScalar(col 2:bigint, val 1) -> 34:boolean, LongColSubtractLongScalar(col 2:bigint, val 1) -> 36:bigint) -> 37:bigint) -> 35:double) -> 32:double) -> 35:double) -> 32:double) -> 22:double, FuncPowerDoubleToDouble(col 35:double)(children: DoubleColDivideLongColumn(col 32:double, col 39:bigint)(children: DoubleColSubtractDoubleColumn(col 6:double, col 35:double)(children: DoubleColDivideLongColumn(col 32:double, col 8:bigint)(children: DoubleColMultiplyDoubleColumn(col 7:double, col 7:double) -> 32:double) -> 35:double) -> 32:double, IfExprNullCondExpr(col 37:boolean, null, col 38:bigint)(children: LongColEqualLongScalar(col 8:bigint, val 1) -> 37:boolean, LongColSubtractLongScalar(col 8:bigint, val 1) -> 38:bigint) -> 39:b
 igint) -> 35:double) -> 32:double, DoubleColUnaryMinus(col 35:double)(children: FuncPowerDoubleToDouble(col 40:double)(children: DoubleColDivideLongColumn(col 35:double, col 42:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 40:double)(children: DoubleColDivideLongColumn(col 35:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 35:double) -> 40:double) -> 35:double, IfExprNullCondExpr(col 39:boolean, null, col 41:bigint)(children: LongColEqualLongScalar(col 2:bigint, val 1) -> 39:boolean, LongColSubtractLongScalar(col 2:bigint, val 1) -> 41:bigint) -> 42:bigint) -> 40:double) -> 35:double) -> 40:double, DoubleColDivideDoubleColumn(col 35:double, col 46:double)(children: DoubleColUnaryMinus(col 43:double)(children: DoubleColMultiplyDoubleColumn(col 35:double, col 46:double)(children: FuncPowerDoubleToDouble(col 43:double)(children: DoubleColDivideLongColumn(col 35:double, col 45:bigint)(children: DoubleColSubtractDoubleColum
 n(col 0:double, col 43:double)(children: DoubleColDivideLongColumn(col 35:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 35:double) -> 43:double) -> 35:double, IfExprNullCondExpr(col 42:boolean, null, col 44:bigint)(children: LongColEqualLongScalar(col 2:bigint, val 1) -> 42:boolean, LongColSubtractLongScalar(col 2:bigint, val 1) -> 44:bigint) -> 45:bigint) -> 43:double) -> 35:double, DoubleColSubtractDoubleScalar(col 43:double, val 10.175)(children: FuncPowerDoubleToDouble(col 46:double)(children: DoubleColDivideLongColumn(col 43:double, col 48:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 46:double)(children: DoubleColDivideLongColumn(col 43:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 43:double) -> 46:double) -> 43:double, IfExprNullCondExpr(col 45:boolean, null, col 47:bigint)(children: LongColEqualLongScalar(col 2:bigint, val 1) -> 45:boolean, LongColSubtractLongSca
 lar(col 2:bigint, val 1) -> 47:bigint) -> 48:bigint) -> 46:double) -> 43:double) -> 46:double) -> 43:double) -> 35:double, DoubleColSubtractDoubleScalar(col 43:double, val 10.175)(children: FuncPowerDoubleToDouble(col 46:double)(children: DoubleColDivideLongColumn(col 43:double, col 50:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 46:double)(children: DoubleColDivideLongColumn(col 43:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 43:double) -> 46:double) -> 43:double, IfExprNullCondExpr(col 48:boolean, null, col 49:bigint)(children: LongColEqualLongScalar(col 2:bigint, val 1) -> 48:boolean, LongColSubtractLongScalar(col 2:bigint, val 1) -> 49:bigint) -> 50:bigint) -> 46:double) -> 43:double) -> 46:double) -> 43:double, DoubleColUnaryMinus(col 46:double)(children: DoubleColSubtractDoubleScalar(col 35:double, val 10.175)(children: FuncPowerDoubleToDouble(col 46:double)(children: DoubleColDivideLongColumn(col 35:double, 
 col 52:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 46:double)(children: DoubleColDivideLongColumn(col 35:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 35:double) -> 46:double) -> 35:double, IfExprNullCondExpr(col 50:boolean, null, col 51:bigint)(children: LongColEqualLongScalar(col 2:bigint, val 1) -> 50:boolean, LongColSubtractLongScalar(col 2:bigint, val 1) -> 51:bigint) -> 52:bigint) -> 46:double) -> 35:double) -> 46:double) -> 35:double, LongColDivideLongColumn(col 10:bigint, col 11:bigint) -> 46:double, DoubleScalarSubtractDoubleColumn(val -3728.0, col 53:double)(children: FuncPowerDoubleToDouble(col 54:double)(children: DoubleColDivideLongColumn(col 53:double, col 56:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 54:double)(children: DoubleColDivideLongColumn(col 53:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 53:double) -> 54:double) -> 53:do
 uble, IfExprNullCondExpr(col 52:boolean, null, col 55:bigint)(children: LongColEqualLongScalar(col 2:bigint, val 1) -> 52:boolean, LongColSubtractLongScalar(col 2:bigint, val 1) -> 55:bigint) -> 56:bigint) -> 54:double) -> 53:double) -> 54:double, FuncPowerDoubleToDouble(col 57:double)(children: DoubleColDivideLongColumn(col 53:double, col 11:bigint)(children: DoubleColSubtractDoubleColumn(col 12:double, col 57:double)(children: DoubleColDivideLongColumn(col 53:double, col 11:bigint)(children: DoubleColMultiplyDoubleColumn(col 13:double, col 13:double) -> 53:double) -> 57:double) -> 53:double) -> 57:double) -> 53:double, DoubleColDivideDoubleColumn(col 57:double, col 58:double)(children: LongColDivideLongColumn(col 10:bigint, col 11:bigint) -> 57:double, FuncPowerDoubleToDouble(col 59:double)(children: DoubleColDivideLongColumn(col 58:double, col 61:bigint)(children: DoubleColSubtractDoubleColumn(col 6:double, col 59:double)(children: DoubleColDivideLongColumn(col 58:double, col 8:b
 igint)(children: DoubleColMultiplyDoubleColumn(col 7:double, col 7:double) -> 58:double) -> 59:double) -> 58:double, IfExprNullCondExpr(col 56:boolean, null, col 60:bigint)(children: LongColEqualLongScalar(col 8:bigint, val 1) -> 56:boolean, LongColSubtractLongScalar(col 8:bigint, val 1) -> 60:bigint) -> 61:bigint) -> 59:double) -> 58:double) -> 59:double
+                      projectedOutputColumnNums: [14, 19, 15, 23, 26, 29, 22, 32, 40, 9, 43, 35, 53, 54, 46, 59]
+                      selectExpressions: FuncPowerDoubleToDouble(col 15:double)(children: DoubleColDivideLongColumn(col 14:double, col 18:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 15:double)(children: DoubleColDivideLongColumn(col 14:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 14:double) -> 15:double) -> 14:double, IfExprNullCondExpr(col 16:boolean, null, col 17:bigint)(children: LongColEqualLongScalar(col 2:bigint, val 1) -> 16:boolean, LongColSubtractLongScalar(col 2:bigint, val 1) -> 17:bigint) -> 18:bigint) -> 15:double) -> 14:double, DoubleColSubtractDoubleScalar(col 15:double, val 10.175)(children: FuncPowerDoubleToDouble(col 19:double)(children: DoubleColDivideLongColumn(col 15:double, col 21:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 19:double)(children: DoubleColDivideLongColumn(col 15:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 15
 :double) -> 19:double) -> 15:double, IfExprNullCondExpr(col 18:boolean, null, col 20:bigint)(children: LongColEqualLongScalar(col 2:bigint, val 1) -> 18:boolean, LongColSubtractLongScalar(col 2:bigint, val 1) -> 20:bigint) -> 21:bigint) -> 19:double) -> 15:double) -> 19:double, FuncPowerDoubleToDouble(col 22:double)(children: DoubleColDivideLongColumn(col 15:double, col 5:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 22:double)(children: DoubleColDivideLongColumn(col 15:double, col 5:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 15:double) -> 22:double) -> 15:double) -> 22:double) -> 15:double, DoubleColMultiplyDoubleColumn(col 22:double, col 26:double)(children: FuncPowerDoubleToDouble(col 23:double)(children: DoubleColDivideLongColumn(col 22:double, col 25:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 23:double)(children: DoubleColDivideLongColumn(col 22:double, col 2:bigint)(children: DoubleColMultiplyDouble
 Column(col 1:double, col 1:double) -> 22:double) -> 23:double) -> 22:double, IfExprNullCondExpr(col 21:boolean, null, col 24:bigint)(children: LongColEqualLongScalar(col 2:bigint, val 1) -> 21:boolean, LongColSubtractLongScalar(col 2:bigint, val 1) -> 24:bigint) -> 25:bigint) -> 23:double) -> 22:double, DoubleColSubtractDoubleScalar(col 23:double, val 10.175)(children: FuncPowerDoubleToDouble(col 26:double)(children: DoubleColDivideLongColumn(col 23:double, col 28:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 26:double)(children: DoubleColDivideLongColumn(col 23:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 23:double) -> 26:double) -> 23:double, IfExprNullCondExpr(col 25:boolean, null, col 27:bigint)(children: LongColEqualLongScalar(col 2:bigint, val 1) -> 25:boolean, LongColSubtractLongScalar(col 2:bigint, val 1) -> 27:bigint) -> 28:bigint) -> 26:double) -> 23:double) -> 26:double) -> 23:double, DoubleColUnaryMinus(
 col 22:double)(children: FuncPowerDoubleToDouble(col 26:double)(children: DoubleColDivideLongColumn(col 22:double, col 5:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 26:double)(children: DoubleColDivideLongColumn(col 22:double, col 5:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 22:double) -> 26:double) -> 22:double) -> 26:double) -> 22:double) -> 26:double, DoubleColModuloDoubleScalar(col 22:double, val 79.553)(children: FuncPowerDoubleToDouble(col 29:double)(children: DoubleColDivideLongColumn(col 22:double, col 31:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 29:double)(children: DoubleColDivideLongColumn(col 22:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 22:double) -> 29:double) -> 22:double, IfExprNullCondExpr(col 28:boolean, null, col 30:bigint)(children: LongColEqualLongScalar(col 2:bigint, val 1) -> 28:boolean, LongColSubtractLongScalar(col 2:bigint, val
  1) -> 30:bigint) -> 31:bigint) -> 29:double) -> 22:double) -> 29:double, DoubleColUnaryMinus(col 32:double)(children: DoubleColMultiplyDoubleColumn(col 22:double, col 35:double)(children: FuncPowerDoubleToDouble(col 32:double)(children: DoubleColDivideLongColumn(col 22:double, col 34:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 32:double)(children: DoubleColDivideLongColumn(col 22:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 22:double) -> 32:double) -> 22:double, IfExprNullCondExpr(col 31:boolean, null, col 33:bigint)(children: LongColEqualLongScalar(col 2:bigint, val 1) -> 31:boolean, LongColSubtractLongScalar(col 2:bigint, val 1) -> 33:bigint) -> 34:bigint) -> 32:double) -> 22:double, DoubleColSubtractDoubleScalar(col 32:double, val 10.175)(children: FuncPowerDoubleToDouble(col 35:double)(children: DoubleColDivideLongColumn(col 32:double, col 37:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 3
 5:double)(children: DoubleColDivideLongColumn(col 32:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 32:double) -> 35:double) -> 32:double, IfExprNullCondExpr(col 34:boolean, null, col 36:bigint)(children: LongColEqualLongScalar(col 2:bigint, val 1) -> 34:boolean, LongColSubtractLongScalar(col 2:bigint, val 1) -> 36:bigint) -> 37:bigint) -> 35:double) -> 32:double) -> 35:double) -> 32:double) -> 22:double, FuncPowerDoubleToDouble(col 35:double)(children: DoubleColDivideLongColumn(col 32:double, col 39:bigint)(children: DoubleColSubtractDoubleColumn(col 6:double, col 35:double)(children: DoubleColDivideLongColumn(col 32:double, col 8:bigint)(children: DoubleColMultiplyDoubleColumn(col 7:double, col 7:double) -> 32:double) -> 35:double) -> 32:double, IfExprNullCondExpr(col 37:boolean, null, col 38:bigint)(children: LongColEqualLongScalar(col 8:bigint, val 1) -> 37:boolean, LongColSubtractLongScalar(col 8:bigint, val 1) -> 38:bigint) -> 39:b
 igint) -> 35:double) -> 32:double, DoubleColUnaryMinus(col 35:double)(children: FuncPowerDoubleToDouble(col 40:double)(children: DoubleColDivideLongColumn(col 35:double, col 42:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 40:double)(children: DoubleColDivideLongColumn(col 35:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 35:double) -> 40:double) -> 35:double, IfExprNullCondExpr(col 39:boolean, null, col 41:bigint)(children: LongColEqualLongScalar(col 2:bigint, val 1) -> 39:boolean, LongColSubtractLongScalar(col 2:bigint, val 1) -> 41:bigint) -> 42:bigint) -> 40:double) -> 35:double) -> 40:double, DoubleColDivideDoubleColumn(col 35:double, col 46:double)(children: DoubleColUnaryMinus(col 43:double)(children: DoubleColMultiplyDoubleColumn(col 35:double, col 46:double)(children: FuncPowerDoubleToDouble(col 43:double)(children: DoubleColDivideLongColumn(col 35:double, col 45:bigint)(children: DoubleColSubtractDoubleColum
 n(col 0:double, col 43:double)(children: DoubleColDivideLongColumn(col 35:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 35:double) -> 43:double) -> 35:double, IfExprNullCondExpr(col 42:boolean, null, col 44:bigint)(children: LongColEqualLongScalar(col 2:bigint, val 1) -> 42:boolean, LongColSubtractLongScalar(col 2:bigint, val 1) -> 44:bigint) -> 45:bigint) -> 43:double) -> 35:double, DoubleColSubtractDoubleScalar(col 43:double, val 10.175)(children: FuncPowerDoubleToDouble(col 46:double)(children: DoubleColDivideLongColumn(col 43:double, col 48:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 46:double)(children: DoubleColDivideLongColumn(col 43:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 43:double) -> 46:double) -> 43:double, IfExprNullCondExpr(col 45:boolean, null, col 47:bigint)(children: LongColEqualLongScalar(col 2:bigint, val 1) -> 45:boolean, LongColSubtractLongSca
 lar(col 2:bigint, val 1) -> 47:bigint) -> 48:bigint) -> 46:double) -> 43:double) -> 46:double) -> 43:double) -> 35:double, DoubleColSubtractDoubleScalar(col 43:double, val 10.175)(children: FuncPowerDoubleToDouble(col 46:double)(children: DoubleColDivideLongColumn(col 43:double, col 50:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 46:double)(children: DoubleColDivideLongColumn(col 43:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 43:double) -> 46:double) -> 43:double, IfExprNullCondExpr(col 48:boolean, null, col 49:bigint)(children: LongColEqualLongScalar(col 2:bigint, val 1) -> 48:boolean, LongColSubtractLongScalar(col 2:bigint, val 1) -> 49:bigint) -> 50:bigint) -> 46:double) -> 43:double) -> 46:double) -> 43:double, DoubleColUnaryMinus(col 46:double)(children: DoubleColSubtractDoubleScalar(col 35:double, val 10.175)(children: FuncPowerDoubleToDouble(col 46:double)(children: DoubleColDivideLongColumn(col 35:double, 
 col 52:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 46:double)(children: DoubleColDivideLongColumn(col 35:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 35:double) -> 46:double) -> 35:double, IfExprNullCondExpr(col 50:boolean, null, col 51:bigint)(children: LongColEqualLongScalar(col 2:bigint, val 1) -> 50:boolean, LongColSubtractLongScalar(col 2:bigint, val 1) -> 51:bigint) -> 52:bigint) -> 46:double) -> 35:double) -> 46:double) -> 35:double, DoubleColDivideLongColumn(col 46:double, col 11:bigint)(children: CastLongToDouble(col 10:bigint) -> 46:double) -> 53:double, DoubleScalarSubtractDoubleColumn(val -3728.0, col 46:double)(children: FuncPowerDoubleToDouble(col 54:double)(children: DoubleColDivideLongColumn(col 46:double, col 56:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 54:double)(children: DoubleColDivideLongColumn(col 46:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:
 double, col 1:double) -> 46:double) -> 54:double) -> 46:double, IfExprNullCondExpr(col 52:boolean, null, col 55:bigint)(children: LongColEqualLongScalar(col 2:bigint, val 1) -> 52:boolean, LongColSubtractLongScalar(col 2:bigint, val 1) -> 55:bigint) -> 56:bigint) -> 54:double) -> 46:double) -> 54:double, FuncPowerDoubleToDouble(col 57:double)(children: DoubleColDivideLongColumn(col 46:double, col 11:bigint)(children: DoubleColSubtractDoubleColumn(col 12:double, col 57:double)(children: DoubleColDivideLongColumn(col 46:double, col 11:bigint)(children: DoubleColMultiplyDoubleColumn(col 13:double, col 13:double) -> 46:double) -> 57:double) -> 46:double) -> 57:double) -> 46:double, DoubleColDivideDoubleColumn(col 58:double, col 57:double)(children: DoubleColDivideLongColumn(col 57:double, col 11:bigint)(children: CastLongToDouble(col 10:bigint) -> 57:double) -> 58:double, FuncPowerDoubleToDouble(col 59:double)(children: DoubleColDivideLongColumn(col 57:double, col 61:bigint)(children: D
 oubleColSubtractDoubleColumn(col 6:double, col 59:double)(children: DoubleColDivideLongColumn(col 57:double, col 8:bigint)(children: DoubleColMultiplyDoubleColumn(col 7:double, col 7:double) -> 57:double) -> 59:double) -> 57:double, IfExprNullCondExpr(col 56:boolean, null, col 60:bigint)(children: LongColEqualLongScalar(col 8:bigint, val 1) -> 56:boolean, LongColSubtractLongScalar(col 8:bigint, val 1) -> 60:bigint) -> 61:bigint) -> 59:double) -> 57:double) -> 59:double
                   Statistics: Num rows: 1 Data size: 128 Basic stats: COMPLETE Column stats: COMPLETE
                   File Output Operator
                     compressed: false

http://git-wip-us.apache.org/repos/asf/hive/blob/649d7c12/ql/src/test/results/clientpositive/llap/vectorization_pushdown.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/llap/vectorization_pushdown.q.out b/ql/src/test/results/clientpositive/llap/vectorization_pushdown.q.out
index fb5ff60..b566f2e 100644
--- a/ql/src/test/results/clientpositive/llap/vectorization_pushdown.q.out
+++ b/ql/src/test/results/clientpositive/llap/vectorization_pushdown.q.out
@@ -67,7 +67,7 @@ STAGE PLANS:
                 outputColumnNames: _col0, _col1
                 Statistics: Num rows: 1 Data size: 16 Basic stats: COMPLETE Column stats: COMPLETE
                 Select Operator
-                  expressions: (_col0 / _col1) (type: double)
+                  expressions: (UDFToDouble(_col0) / _col1) (type: double)
                   outputColumnNames: _col0
                   Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
                   File Output Operator


[4/8] hive git commit: HIVE-20391: HiveAggregateReduceFunctionsRule may infer wrong return type when decomposing aggregate function (Jesus Camacho Rodriguez, reviewed by Ashutosh Chauhan)

Posted by jc...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/649d7c12/ql/src/test/results/clientpositive/spark/parquet_vectorization_3.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/parquet_vectorization_3.q.out b/ql/src/test/results/clientpositive/spark/parquet_vectorization_3.q.out
index 8c2cf06..140f009 100644
--- a/ql/src/test/results/clientpositive/spark/parquet_vectorization_3.q.out
+++ b/ql/src/test/results/clientpositive/spark/parquet_vectorization_3.q.out
@@ -156,13 +156,13 @@ STAGE PLANS:
                 outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13
                 Statistics: Num rows: 1 Data size: 112 Basic stats: COMPLETE Column stats: NONE
                 Select Operator
-                  expressions: power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) (type: double), (power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) - 10.175D) (type: double), power(((_col3 - ((_col4 * _col4) / _col5)) / _col5), 0.5) (type: double), (power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) * (power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) - 10.175D)) (type: double), (- power(((_col3 - ((_col4 * _col4) / _col5)) / _col5), 0.5)) (type: double), (power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) % 79.553D) (type: double), (- (power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) * (power(((_col0 - ((_col1 * _col1
 ) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) - 10.175D))) (type: double), power(((_col6 - ((_col7 * _col7) / _col8)) / CASE WHEN ((_col8 = 1L)) THEN (null) ELSE ((_col8 - 1)) END), 0.5) (type: double), (- power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5)) (type: double), _col9 (type: double), ((- (power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) * (power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) - 10.175D))) / (power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) - 10.175D)) (type: double), (- (power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) - 10.175D)) (type: double), (_col10 / _col11) (type: double), (-3728.0D - power(((_col0 - ((_col1 * _
 col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5)) (type: double), power(((_col12 - ((_col13 * _col13) / _col11)) / _col11), 0.5) (type: double), ((_col10 / _col11) / power(((_col6 - ((_col7 * _col7) / _col8)) / CASE WHEN ((_col8 = 1L)) THEN (null) ELSE ((_col8 - 1)) END), 0.5)) (type: double)
+                  expressions: power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) (type: double), (power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) - 10.175D) (type: double), power(((_col3 - ((_col4 * _col4) / _col5)) / _col5), 0.5) (type: double), (power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) * (power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) - 10.175D)) (type: double), (- power(((_col3 - ((_col4 * _col4) / _col5)) / _col5), 0.5)) (type: double), (power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) % 79.553D) (type: double), (- (power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) * (power(((_col0 - ((_col1 * _col1
 ) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) - 10.175D))) (type: double), power(((_col6 - ((_col7 * _col7) / _col8)) / CASE WHEN ((_col8 = 1L)) THEN (null) ELSE ((_col8 - 1)) END), 0.5) (type: double), (- power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5)) (type: double), _col9 (type: double), ((- (power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) * (power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) - 10.175D))) / (power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) - 10.175D)) (type: double), (- (power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) - 10.175D)) (type: double), (UDFToDouble(_col10) / _col11) (type: double), (-3728.0D - power(((_col0 
 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5)) (type: double), power(((_col12 - ((_col13 * _col13) / _col11)) / _col11), 0.5) (type: double), ((UDFToDouble(_col10) / _col11) / power(((_col6 - ((_col7 * _col7) / _col8)) / CASE WHEN ((_col8 = 1L)) THEN (null) ELSE ((_col8 - 1)) END), 0.5)) (type: double)
                   outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13, _col14, _col15
                   Select Vectorization:
                       className: VectorSelectOperator
                       native: true
-                      projectedOutputColumnNums: [14, 19, 15, 23, 26, 29, 22, 32, 40, 9, 43, 35, 46, 54, 53, 59]
-                      selectExpressions: FuncPowerDoubleToDouble(col 15:double)(children: DoubleColDivideLongColumn(col 14:double, col 18:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 15:double)(children: DoubleColDivideLongColumn(col 14:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 14:double) -> 15:double) -> 14:double, IfExprNullCondExpr(col 16:boolean, null, col 17:bigint)(children: LongColEqualLongScalar(col 2:bigint, val 1) -> 16:boolean, LongColSubtractLongScalar(col 2:bigint, val 1) -> 17:bigint) -> 18:bigint) -> 15:double) -> 14:double, DoubleColSubtractDoubleScalar(col 15:double, val 10.175)(children: FuncPowerDoubleToDouble(col 19:double)(children: DoubleColDivideLongColumn(col 15:double, col 21:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 19:double)(children: DoubleColDivideLongColumn(col 15:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 15
 :double) -> 19:double) -> 15:double, IfExprNullCondExpr(col 18:boolean, null, col 20:bigint)(children: LongColEqualLongScalar(col 2:bigint, val 1) -> 18:boolean, LongColSubtractLongScalar(col 2:bigint, val 1) -> 20:bigint) -> 21:bigint) -> 19:double) -> 15:double) -> 19:double, FuncPowerDoubleToDouble(col 22:double)(children: DoubleColDivideLongColumn(col 15:double, col 5:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 22:double)(children: DoubleColDivideLongColumn(col 15:double, col 5:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 15:double) -> 22:double) -> 15:double) -> 22:double) -> 15:double, DoubleColMultiplyDoubleColumn(col 22:double, col 26:double)(children: FuncPowerDoubleToDouble(col 23:double)(children: DoubleColDivideLongColumn(col 22:double, col 25:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 23:double)(children: DoubleColDivideLongColumn(col 22:double, col 2:bigint)(children: DoubleColMultiplyDouble
 Column(col 1:double, col 1:double) -> 22:double) -> 23:double) -> 22:double, IfExprNullCondExpr(col 21:boolean, null, col 24:bigint)(children: LongColEqualLongScalar(col 2:bigint, val 1) -> 21:boolean, LongColSubtractLongScalar(col 2:bigint, val 1) -> 24:bigint) -> 25:bigint) -> 23:double) -> 22:double, DoubleColSubtractDoubleScalar(col 23:double, val 10.175)(children: FuncPowerDoubleToDouble(col 26:double)(children: DoubleColDivideLongColumn(col 23:double, col 28:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 26:double)(children: DoubleColDivideLongColumn(col 23:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 23:double) -> 26:double) -> 23:double, IfExprNullCondExpr(col 25:boolean, null, col 27:bigint)(children: LongColEqualLongScalar(col 2:bigint, val 1) -> 25:boolean, LongColSubtractLongScalar(col 2:bigint, val 1) -> 27:bigint) -> 28:bigint) -> 26:double) -> 23:double) -> 26:double) -> 23:double, DoubleColUnaryMinus(
 col 22:double)(children: FuncPowerDoubleToDouble(col 26:double)(children: DoubleColDivideLongColumn(col 22:double, col 5:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 26:double)(children: DoubleColDivideLongColumn(col 22:double, col 5:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 22:double) -> 26:double) -> 22:double) -> 26:double) -> 22:double) -> 26:double, DoubleColModuloDoubleScalar(col 22:double, val 79.553)(children: FuncPowerDoubleToDouble(col 29:double)(children: DoubleColDivideLongColumn(col 22:double, col 31:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 29:double)(children: DoubleColDivideLongColumn(col 22:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 22:double) -> 29:double) -> 22:double, IfExprNullCondExpr(col 28:boolean, null, col 30:bigint)(children: LongColEqualLongScalar(col 2:bigint, val 1) -> 28:boolean, LongColSubtractLongScalar(col 2:bigint, val
  1) -> 30:bigint) -> 31:bigint) -> 29:double) -> 22:double) -> 29:double, DoubleColUnaryMinus(col 32:double)(children: DoubleColMultiplyDoubleColumn(col 22:double, col 35:double)(children: FuncPowerDoubleToDouble(col 32:double)(children: DoubleColDivideLongColumn(col 22:double, col 34:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 32:double)(children: DoubleColDivideLongColumn(col 22:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 22:double) -> 32:double) -> 22:double, IfExprNullCondExpr(col 31:boolean, null, col 33:bigint)(children: LongColEqualLongScalar(col 2:bigint, val 1) -> 31:boolean, LongColSubtractLongScalar(col 2:bigint, val 1) -> 33:bigint) -> 34:bigint) -> 32:double) -> 22:double, DoubleColSubtractDoubleScalar(col 32:double, val 10.175)(children: FuncPowerDoubleToDouble(col 35:double)(children: DoubleColDivideLongColumn(col 32:double, col 37:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 3
 5:double)(children: DoubleColDivideLongColumn(col 32:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 32:double) -> 35:double) -> 32:double, IfExprNullCondExpr(col 34:boolean, null, col 36:bigint)(children: LongColEqualLongScalar(col 2:bigint, val 1) -> 34:boolean, LongColSubtractLongScalar(col 2:bigint, val 1) -> 36:bigint) -> 37:bigint) -> 35:double) -> 32:double) -> 35:double) -> 32:double) -> 22:double, FuncPowerDoubleToDouble(col 35:double)(children: DoubleColDivideLongColumn(col 32:double, col 39:bigint)(children: DoubleColSubtractDoubleColumn(col 6:double, col 35:double)(children: DoubleColDivideLongColumn(col 32:double, col 8:bigint)(children: DoubleColMultiplyDoubleColumn(col 7:double, col 7:double) -> 32:double) -> 35:double) -> 32:double, IfExprNullCondExpr(col 37:boolean, null, col 38:bigint)(children: LongColEqualLongScalar(col 8:bigint, val 1) -> 37:boolean, LongColSubtractLongScalar(col 8:bigint, val 1) -> 38:bigint) -> 39:b
 igint) -> 35:double) -> 32:double, DoubleColUnaryMinus(col 35:double)(children: FuncPowerDoubleToDouble(col 40:double)(children: DoubleColDivideLongColumn(col 35:double, col 42:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 40:double)(children: DoubleColDivideLongColumn(col 35:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 35:double) -> 40:double) -> 35:double, IfExprNullCondExpr(col 39:boolean, null, col 41:bigint)(children: LongColEqualLongScalar(col 2:bigint, val 1) -> 39:boolean, LongColSubtractLongScalar(col 2:bigint, val 1) -> 41:bigint) -> 42:bigint) -> 40:double) -> 35:double) -> 40:double, DoubleColDivideDoubleColumn(col 35:double, col 46:double)(children: DoubleColUnaryMinus(col 43:double)(children: DoubleColMultiplyDoubleColumn(col 35:double, col 46:double)(children: FuncPowerDoubleToDouble(col 43:double)(children: DoubleColDivideLongColumn(col 35:double, col 45:bigint)(children: DoubleColSubtractDoubleColum
 n(col 0:double, col 43:double)(children: DoubleColDivideLongColumn(col 35:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 35:double) -> 43:double) -> 35:double, IfExprNullCondExpr(col 42:boolean, null, col 44:bigint)(children: LongColEqualLongScalar(col 2:bigint, val 1) -> 42:boolean, LongColSubtractLongScalar(col 2:bigint, val 1) -> 44:bigint) -> 45:bigint) -> 43:double) -> 35:double, DoubleColSubtractDoubleScalar(col 43:double, val 10.175)(children: FuncPowerDoubleToDouble(col 46:double)(children: DoubleColDivideLongColumn(col 43:double, col 48:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 46:double)(children: DoubleColDivideLongColumn(col 43:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 43:double) -> 46:double) -> 43:double, IfExprNullCondExpr(col 45:boolean, null, col 47:bigint)(children: LongColEqualLongScalar(col 2:bigint, val 1) -> 45:boolean, LongColSubtractLongSca
 lar(col 2:bigint, val 1) -> 47:bigint) -> 48:bigint) -> 46:double) -> 43:double) -> 46:double) -> 43:double) -> 35:double, DoubleColSubtractDoubleScalar(col 43:double, val 10.175)(children: FuncPowerDoubleToDouble(col 46:double)(children: DoubleColDivideLongColumn(col 43:double, col 50:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 46:double)(children: DoubleColDivideLongColumn(col 43:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 43:double) -> 46:double) -> 43:double, IfExprNullCondExpr(col 48:boolean, null, col 49:bigint)(children: LongColEqualLongScalar(col 2:bigint, val 1) -> 48:boolean, LongColSubtractLongScalar(col 2:bigint, val 1) -> 49:bigint) -> 50:bigint) -> 46:double) -> 43:double) -> 46:double) -> 43:double, DoubleColUnaryMinus(col 46:double)(children: DoubleColSubtractDoubleScalar(col 35:double, val 10.175)(children: FuncPowerDoubleToDouble(col 46:double)(children: DoubleColDivideLongColumn(col 35:double, 
 col 52:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 46:double)(children: DoubleColDivideLongColumn(col 35:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 35:double) -> 46:double) -> 35:double, IfExprNullCondExpr(col 50:boolean, null, col 51:bigint)(children: LongColEqualLongScalar(col 2:bigint, val 1) -> 50:boolean, LongColSubtractLongScalar(col 2:bigint, val 1) -> 51:bigint) -> 52:bigint) -> 46:double) -> 35:double) -> 46:double) -> 35:double, LongColDivideLongColumn(col 10:bigint, col 11:bigint) -> 46:double, DoubleScalarSubtractDoubleColumn(val -3728.0, col 53:double)(children: FuncPowerDoubleToDouble(col 54:double)(children: DoubleColDivideLongColumn(col 53:double, col 56:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 54:double)(children: DoubleColDivideLongColumn(col 53:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 53:double) -> 54:double) -> 53:do
 uble, IfExprNullCondExpr(col 52:boolean, null, col 55:bigint)(children: LongColEqualLongScalar(col 2:bigint, val 1) -> 52:boolean, LongColSubtractLongScalar(col 2:bigint, val 1) -> 55:bigint) -> 56:bigint) -> 54:double) -> 53:double) -> 54:double, FuncPowerDoubleToDouble(col 57:double)(children: DoubleColDivideLongColumn(col 53:double, col 11:bigint)(children: DoubleColSubtractDoubleColumn(col 12:double, col 57:double)(children: DoubleColDivideLongColumn(col 53:double, col 11:bigint)(children: DoubleColMultiplyDoubleColumn(col 13:double, col 13:double) -> 53:double) -> 57:double) -> 53:double) -> 57:double) -> 53:double, DoubleColDivideDoubleColumn(col 57:double, col 58:double)(children: LongColDivideLongColumn(col 10:bigint, col 11:bigint) -> 57:double, FuncPowerDoubleToDouble(col 59:double)(children: DoubleColDivideLongColumn(col 58:double, col 61:bigint)(children: DoubleColSubtractDoubleColumn(col 6:double, col 59:double)(children: DoubleColDivideLongColumn(col 58:double, col 8:b
 igint)(children: DoubleColMultiplyDoubleColumn(col 7:double, col 7:double) -> 58:double) -> 59:double) -> 58:double, IfExprNullCondExpr(col 56:boolean, null, col 60:bigint)(children: LongColEqualLongScalar(col 8:bigint, val 1) -> 56:boolean, LongColSubtractLongScalar(col 8:bigint, val 1) -> 60:bigint) -> 61:bigint) -> 59:double) -> 58:double) -> 59:double
+                      projectedOutputColumnNums: [14, 19, 15, 23, 26, 29, 22, 32, 40, 9, 43, 35, 53, 54, 46, 59]
+                      selectExpressions: FuncPowerDoubleToDouble(col 15:double)(children: DoubleColDivideLongColumn(col 14:double, col 18:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 15:double)(children: DoubleColDivideLongColumn(col 14:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 14:double) -> 15:double) -> 14:double, IfExprNullCondExpr(col 16:boolean, null, col 17:bigint)(children: LongColEqualLongScalar(col 2:bigint, val 1) -> 16:boolean, LongColSubtractLongScalar(col 2:bigint, val 1) -> 17:bigint) -> 18:bigint) -> 15:double) -> 14:double, DoubleColSubtractDoubleScalar(col 15:double, val 10.175)(children: FuncPowerDoubleToDouble(col 19:double)(children: DoubleColDivideLongColumn(col 15:double, col 21:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 19:double)(children: DoubleColDivideLongColumn(col 15:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 15
 :double) -> 19:double) -> 15:double, IfExprNullCondExpr(col 18:boolean, null, col 20:bigint)(children: LongColEqualLongScalar(col 2:bigint, val 1) -> 18:boolean, LongColSubtractLongScalar(col 2:bigint, val 1) -> 20:bigint) -> 21:bigint) -> 19:double) -> 15:double) -> 19:double, FuncPowerDoubleToDouble(col 22:double)(children: DoubleColDivideLongColumn(col 15:double, col 5:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 22:double)(children: DoubleColDivideLongColumn(col 15:double, col 5:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 15:double) -> 22:double) -> 15:double) -> 22:double) -> 15:double, DoubleColMultiplyDoubleColumn(col 22:double, col 26:double)(children: FuncPowerDoubleToDouble(col 23:double)(children: DoubleColDivideLongColumn(col 22:double, col 25:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 23:double)(children: DoubleColDivideLongColumn(col 22:double, col 2:bigint)(children: DoubleColMultiplyDouble
 Column(col 1:double, col 1:double) -> 22:double) -> 23:double) -> 22:double, IfExprNullCondExpr(col 21:boolean, null, col 24:bigint)(children: LongColEqualLongScalar(col 2:bigint, val 1) -> 21:boolean, LongColSubtractLongScalar(col 2:bigint, val 1) -> 24:bigint) -> 25:bigint) -> 23:double) -> 22:double, DoubleColSubtractDoubleScalar(col 23:double, val 10.175)(children: FuncPowerDoubleToDouble(col 26:double)(children: DoubleColDivideLongColumn(col 23:double, col 28:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 26:double)(children: DoubleColDivideLongColumn(col 23:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 23:double) -> 26:double) -> 23:double, IfExprNullCondExpr(col 25:boolean, null, col 27:bigint)(children: LongColEqualLongScalar(col 2:bigint, val 1) -> 25:boolean, LongColSubtractLongScalar(col 2:bigint, val 1) -> 27:bigint) -> 28:bigint) -> 26:double) -> 23:double) -> 26:double) -> 23:double, DoubleColUnaryMinus(
 col 22:double)(children: FuncPowerDoubleToDouble(col 26:double)(children: DoubleColDivideLongColumn(col 22:double, col 5:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 26:double)(children: DoubleColDivideLongColumn(col 22:double, col 5:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 22:double) -> 26:double) -> 22:double) -> 26:double) -> 22:double) -> 26:double, DoubleColModuloDoubleScalar(col 22:double, val 79.553)(children: FuncPowerDoubleToDouble(col 29:double)(children: DoubleColDivideLongColumn(col 22:double, col 31:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 29:double)(children: DoubleColDivideLongColumn(col 22:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 22:double) -> 29:double) -> 22:double, IfExprNullCondExpr(col 28:boolean, null, col 30:bigint)(children: LongColEqualLongScalar(col 2:bigint, val 1) -> 28:boolean, LongColSubtractLongScalar(col 2:bigint, val
  1) -> 30:bigint) -> 31:bigint) -> 29:double) -> 22:double) -> 29:double, DoubleColUnaryMinus(col 32:double)(children: DoubleColMultiplyDoubleColumn(col 22:double, col 35:double)(children: FuncPowerDoubleToDouble(col 32:double)(children: DoubleColDivideLongColumn(col 22:double, col 34:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 32:double)(children: DoubleColDivideLongColumn(col 22:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 22:double) -> 32:double) -> 22:double, IfExprNullCondExpr(col 31:boolean, null, col 33:bigint)(children: LongColEqualLongScalar(col 2:bigint, val 1) -> 31:boolean, LongColSubtractLongScalar(col 2:bigint, val 1) -> 33:bigint) -> 34:bigint) -> 32:double) -> 22:double, DoubleColSubtractDoubleScalar(col 32:double, val 10.175)(children: FuncPowerDoubleToDouble(col 35:double)(children: DoubleColDivideLongColumn(col 32:double, col 37:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 3
 5:double)(children: DoubleColDivideLongColumn(col 32:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 32:double) -> 35:double) -> 32:double, IfExprNullCondExpr(col 34:boolean, null, col 36:bigint)(children: LongColEqualLongScalar(col 2:bigint, val 1) -> 34:boolean, LongColSubtractLongScalar(col 2:bigint, val 1) -> 36:bigint) -> 37:bigint) -> 35:double) -> 32:double) -> 35:double) -> 32:double) -> 22:double, FuncPowerDoubleToDouble(col 35:double)(children: DoubleColDivideLongColumn(col 32:double, col 39:bigint)(children: DoubleColSubtractDoubleColumn(col 6:double, col 35:double)(children: DoubleColDivideLongColumn(col 32:double, col 8:bigint)(children: DoubleColMultiplyDoubleColumn(col 7:double, col 7:double) -> 32:double) -> 35:double) -> 32:double, IfExprNullCondExpr(col 37:boolean, null, col 38:bigint)(children: LongColEqualLongScalar(col 8:bigint, val 1) -> 37:boolean, LongColSubtractLongScalar(col 8:bigint, val 1) -> 38:bigint) -> 39:b
 igint) -> 35:double) -> 32:double, DoubleColUnaryMinus(col 35:double)(children: FuncPowerDoubleToDouble(col 40:double)(children: DoubleColDivideLongColumn(col 35:double, col 42:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 40:double)(children: DoubleColDivideLongColumn(col 35:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 35:double) -> 40:double) -> 35:double, IfExprNullCondExpr(col 39:boolean, null, col 41:bigint)(children: LongColEqualLongScalar(col 2:bigint, val 1) -> 39:boolean, LongColSubtractLongScalar(col 2:bigint, val 1) -> 41:bigint) -> 42:bigint) -> 40:double) -> 35:double) -> 40:double, DoubleColDivideDoubleColumn(col 35:double, col 46:double)(children: DoubleColUnaryMinus(col 43:double)(children: DoubleColMultiplyDoubleColumn(col 35:double, col 46:double)(children: FuncPowerDoubleToDouble(col 43:double)(children: DoubleColDivideLongColumn(col 35:double, col 45:bigint)(children: DoubleColSubtractDoubleColum
 n(col 0:double, col 43:double)(children: DoubleColDivideLongColumn(col 35:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 35:double) -> 43:double) -> 35:double, IfExprNullCondExpr(col 42:boolean, null, col 44:bigint)(children: LongColEqualLongScalar(col 2:bigint, val 1) -> 42:boolean, LongColSubtractLongScalar(col 2:bigint, val 1) -> 44:bigint) -> 45:bigint) -> 43:double) -> 35:double, DoubleColSubtractDoubleScalar(col 43:double, val 10.175)(children: FuncPowerDoubleToDouble(col 46:double)(children: DoubleColDivideLongColumn(col 43:double, col 48:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 46:double)(children: DoubleColDivideLongColumn(col 43:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 43:double) -> 46:double) -> 43:double, IfExprNullCondExpr(col 45:boolean, null, col 47:bigint)(children: LongColEqualLongScalar(col 2:bigint, val 1) -> 45:boolean, LongColSubtractLongSca
 lar(col 2:bigint, val 1) -> 47:bigint) -> 48:bigint) -> 46:double) -> 43:double) -> 46:double) -> 43:double) -> 35:double, DoubleColSubtractDoubleScalar(col 43:double, val 10.175)(children: FuncPowerDoubleToDouble(col 46:double)(children: DoubleColDivideLongColumn(col 43:double, col 50:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 46:double)(children: DoubleColDivideLongColumn(col 43:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 43:double) -> 46:double) -> 43:double, IfExprNullCondExpr(col 48:boolean, null, col 49:bigint)(children: LongColEqualLongScalar(col 2:bigint, val 1) -> 48:boolean, LongColSubtractLongScalar(col 2:bigint, val 1) -> 49:bigint) -> 50:bigint) -> 46:double) -> 43:double) -> 46:double) -> 43:double, DoubleColUnaryMinus(col 46:double)(children: DoubleColSubtractDoubleScalar(col 35:double, val 10.175)(children: FuncPowerDoubleToDouble(col 46:double)(children: DoubleColDivideLongColumn(col 35:double, 
 col 52:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 46:double)(children: DoubleColDivideLongColumn(col 35:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:double, col 1:double) -> 35:double) -> 46:double) -> 35:double, IfExprNullCondExpr(col 50:boolean, null, col 51:bigint)(children: LongColEqualLongScalar(col 2:bigint, val 1) -> 50:boolean, LongColSubtractLongScalar(col 2:bigint, val 1) -> 51:bigint) -> 52:bigint) -> 46:double) -> 35:double) -> 46:double) -> 35:double, DoubleColDivideLongColumn(col 46:double, col 11:bigint)(children: CastLongToDouble(col 10:bigint) -> 46:double) -> 53:double, DoubleScalarSubtractDoubleColumn(val -3728.0, col 46:double)(children: FuncPowerDoubleToDouble(col 54:double)(children: DoubleColDivideLongColumn(col 46:double, col 56:bigint)(children: DoubleColSubtractDoubleColumn(col 0:double, col 54:double)(children: DoubleColDivideLongColumn(col 46:double, col 2:bigint)(children: DoubleColMultiplyDoubleColumn(col 1:
 double, col 1:double) -> 46:double) -> 54:double) -> 46:double, IfExprNullCondExpr(col 52:boolean, null, col 55:bigint)(children: LongColEqualLongScalar(col 2:bigint, val 1) -> 52:boolean, LongColSubtractLongScalar(col 2:bigint, val 1) -> 55:bigint) -> 56:bigint) -> 54:double) -> 46:double) -> 54:double, FuncPowerDoubleToDouble(col 57:double)(children: DoubleColDivideLongColumn(col 46:double, col 11:bigint)(children: DoubleColSubtractDoubleColumn(col 12:double, col 57:double)(children: DoubleColDivideLongColumn(col 46:double, col 11:bigint)(children: DoubleColMultiplyDoubleColumn(col 13:double, col 13:double) -> 46:double) -> 57:double) -> 46:double) -> 57:double) -> 46:double, DoubleColDivideDoubleColumn(col 58:double, col 57:double)(children: DoubleColDivideLongColumn(col 57:double, col 11:bigint)(children: CastLongToDouble(col 10:bigint) -> 57:double) -> 58:double, FuncPowerDoubleToDouble(col 59:double)(children: DoubleColDivideLongColumn(col 57:double, col 61:bigint)(children: D
 oubleColSubtractDoubleColumn(col 6:double, col 59:double)(children: DoubleColDivideLongColumn(col 57:double, col 8:bigint)(children: DoubleColMultiplyDoubleColumn(col 7:double, col 7:double) -> 57:double) -> 59:double) -> 57:double, IfExprNullCondExpr(col 56:boolean, null, col 60:bigint)(children: LongColEqualLongScalar(col 8:bigint, val 1) -> 56:boolean, LongColSubtractLongScalar(col 8:bigint, val 1) -> 60:bigint) -> 61:bigint) -> 59:double) -> 57:double) -> 59:double
                   Statistics: Num rows: 1 Data size: 112 Basic stats: COMPLETE Column stats: NONE
                   File Output Operator
                     compressed: false

http://git-wip-us.apache.org/repos/asf/hive/blob/649d7c12/ql/src/test/results/clientpositive/spark/parquet_vectorization_pushdown.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/parquet_vectorization_pushdown.q.out b/ql/src/test/results/clientpositive/spark/parquet_vectorization_pushdown.q.out
index 212a83e..c649a23 100644
--- a/ql/src/test/results/clientpositive/spark/parquet_vectorization_pushdown.q.out
+++ b/ql/src/test/results/clientpositive/spark/parquet_vectorization_pushdown.q.out
@@ -65,7 +65,7 @@ STAGE PLANS:
                 outputColumnNames: _col0, _col1
                 Statistics: Num rows: 1 Data size: 16 Basic stats: COMPLETE Column stats: NONE
                 Select Operator
-                  expressions: (_col0 / _col1) (type: double)
+                  expressions: (UDFToDouble(_col0) / _col1) (type: double)
                   outputColumnNames: _col0
                   Statistics: Num rows: 1 Data size: 16 Basic stats: COMPLETE Column stats: NONE
                   File Output Operator

http://git-wip-us.apache.org/repos/asf/hive/blob/649d7c12/ql/src/test/results/clientpositive/spark/subquery_in.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/subquery_in.q.out b/ql/src/test/results/clientpositive/spark/subquery_in.q.out
index 2f3a747..9a4fbc8 100644
--- a/ql/src/test/results/clientpositive/spark/subquery_in.q.out
+++ b/ql/src/test/results/clientpositive/spark/subquery_in.q.out
@@ -373,7 +373,7 @@ STAGE PLANS:
                   predicate: (_col0 is not null and _col1 is not null) (type: boolean)
                   Statistics: Num rows: 1 Data size: 16 Basic stats: COMPLETE Column stats: NONE
                   Select Operator
-                    expressions: (_col0 / _col1) (type: double)
+                    expressions: (UDFToDouble(_col0) / _col1) (type: double)
                     outputColumnNames: _col0
                     Statistics: Num rows: 1 Data size: 16 Basic stats: COMPLETE Column stats: NONE
                     Reduce Output Operator
@@ -4447,7 +4447,7 @@ STAGE PLANS:
                   predicate: (_col1 is not null and _col2 is not null) (type: boolean)
                   Statistics: Num rows: 13 Data size: 1573 Basic stats: COMPLETE Column stats: NONE
                   Select Operator
-                    expressions: _col0 (type: int), (_col1 / _col2) (type: double)
+                    expressions: _col0 (type: int), (UDFToDouble(_col1) / _col2) (type: double)
                     outputColumnNames: _col0, _col1
                     Statistics: Num rows: 13 Data size: 1573 Basic stats: COMPLETE Column stats: NONE
                     Group By Operator
@@ -5006,7 +5006,7 @@ STAGE PLANS:
                   predicate: (_col1 is not null and _col2 is not null) (type: boolean)
                   Statistics: Num rows: 13 Data size: 1573 Basic stats: COMPLETE Column stats: NONE
                   Select Operator
-                    expressions: (_col1 / _col2) (type: double), _col0 (type: int), true (type: boolean)
+                    expressions: (UDFToDouble(_col1) / _col2) (type: double), _col0 (type: int), true (type: boolean)
                     outputColumnNames: _col0, _col1, _col2
                     Statistics: Num rows: 13 Data size: 1573 Basic stats: COMPLETE Column stats: NONE
                     Reduce Output Operator
@@ -5108,7 +5108,7 @@ STAGE PLANS:
                 outputColumnNames: _col0, _col1, _col2
                 Statistics: Num rows: 13 Data size: 1573 Basic stats: COMPLETE Column stats: NONE
                 Select Operator
-                  expressions: _col0 (type: int), (_col1 / _col2) (type: double)
+                  expressions: _col0 (type: int), (UDFToDouble(_col1) / _col2) (type: double)
                   outputColumnNames: _col0, _col1
                   Statistics: Num rows: 13 Data size: 1573 Basic stats: COMPLETE Column stats: NONE
                   Group By Operator

http://git-wip-us.apache.org/repos/asf/hive/blob/649d7c12/ql/src/test/results/clientpositive/spark/subquery_notin.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/subquery_notin.q.out b/ql/src/test/results/clientpositive/spark/subquery_notin.q.out
index 9615450..2e12376 100644
--- a/ql/src/test/results/clientpositive/spark/subquery_notin.q.out
+++ b/ql/src/test/results/clientpositive/spark/subquery_notin.q.out
@@ -724,7 +724,7 @@ STAGE PLANS:
                 outputColumnNames: _col0, _col1
                 Statistics: Num rows: 1 Data size: 16 Basic stats: COMPLETE Column stats: NONE
                 Select Operator
-                  expressions: (_col0 / _col1) (type: double)
+                  expressions: (UDFToDouble(_col0) / _col1) (type: double)
                   outputColumnNames: _col0
                   Statistics: Num rows: 1 Data size: 16 Basic stats: COMPLETE Column stats: NONE
                   Group By Operator
@@ -789,7 +789,7 @@ STAGE PLANS:
                 outputColumnNames: _col0, _col1
                 Statistics: Num rows: 1 Data size: 16 Basic stats: COMPLETE Column stats: NONE
                 Select Operator
-                  expressions: (_col0 / _col1) (type: double), true (type: boolean)
+                  expressions: (UDFToDouble(_col0) / _col1) (type: double), true (type: boolean)
                   outputColumnNames: _col0, _col1
                   Statistics: Num rows: 1 Data size: 16 Basic stats: COMPLETE Column stats: NONE
                   Reduce Output Operator

http://git-wip-us.apache.org/repos/asf/hive/blob/649d7c12/ql/src/test/results/clientpositive/spark/subquery_scalar.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/subquery_scalar.q.out b/ql/src/test/results/clientpositive/spark/subquery_scalar.q.out
index 5064336..8666552 100644
--- a/ql/src/test/results/clientpositive/spark/subquery_scalar.q.out
+++ b/ql/src/test/results/clientpositive/spark/subquery_scalar.q.out
@@ -162,7 +162,7 @@ STAGE PLANS:
                 outputColumnNames: _col0, _col1
                 Statistics: Num rows: 1 Data size: 16 Basic stats: COMPLETE Column stats: NONE
                 Select Operator
-                  expressions: (_col0 / _col1) (type: double)
+                  expressions: (UDFToDouble(_col0) / _col1) (type: double)
                   outputColumnNames: _col0
                   Statistics: Num rows: 1 Data size: 16 Basic stats: COMPLETE Column stats: NONE
                   Reduce Output Operator
@@ -905,7 +905,7 @@ STAGE PLANS:
                 outputColumnNames: _col0, _col1
                 Statistics: Num rows: 1 Data size: 16 Basic stats: COMPLETE Column stats: NONE
                 Select Operator
-                  expressions: (_col0 / _col1) (type: double)
+                  expressions: (UDFToDouble(_col0) / _col1) (type: double)
                   outputColumnNames: _col0
                   Statistics: Num rows: 1 Data size: 16 Basic stats: COMPLETE Column stats: NONE
                   Reduce Output Operator
@@ -1664,7 +1664,7 @@ STAGE PLANS:
                 outputColumnNames: _col0, _col1, _col2
                 Statistics: Num rows: 1 Data size: 32560 Basic stats: COMPLETE Column stats: NONE
                 Select Operator
-                  expressions: (_col1 / _col2) (type: double), _col0 (type: string)
+                  expressions: (UDFToDouble(_col1) / _col2) (type: double), _col0 (type: string)
                   outputColumnNames: _col0, _col1
                   Statistics: Num rows: 1 Data size: 32560 Basic stats: COMPLETE Column stats: NONE
                   Reduce Output Operator
@@ -6281,7 +6281,7 @@ STAGE PLANS:
                 outputColumnNames: _col0, _col1, _col2
                 Statistics: Num rows: 1 Data size: 7 Basic stats: COMPLETE Column stats: NONE
                 Filter Operator
-                  predicate: (0.0D = (_col1 / _col2)) (type: boolean)
+                  predicate: (0.0D = (UDFToDouble(_col1) / _col2)) (type: boolean)
                   Statistics: Num rows: 1 Data size: 7 Basic stats: COMPLETE Column stats: NONE
                   Select Operator
                     expressions: _col0 (type: int)

http://git-wip-us.apache.org/repos/asf/hive/blob/649d7c12/ql/src/test/results/clientpositive/spark/subquery_select.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/subquery_select.q.out b/ql/src/test/results/clientpositive/spark/subquery_select.q.out
index e379ba9..dc7a510 100644
--- a/ql/src/test/results/clientpositive/spark/subquery_select.q.out
+++ b/ql/src/test/results/clientpositive/spark/subquery_select.q.out
@@ -3899,7 +3899,7 @@ STAGE PLANS:
                 outputColumnNames: _col0, _col1
                 Statistics: Num rows: 1 Data size: 16 Basic stats: COMPLETE Column stats: NONE
                 Select Operator
-                  expressions: (_col0 / _col1) (type: double)
+                  expressions: (UDFToDouble(_col0) / _col1) (type: double)
                   outputColumnNames: _col0
                   Statistics: Num rows: 1 Data size: 16 Basic stats: COMPLETE Column stats: NONE
                   Reduce Output Operator
@@ -4232,7 +4232,7 @@ STAGE PLANS:
                 outputColumnNames: _col0, _col1
                 Statistics: Num rows: 1 Data size: 16 Basic stats: COMPLETE Column stats: NONE
                 Select Operator
-                  expressions: (_col0 / _col1) (type: double)
+                  expressions: (UDFToDouble(_col0) / _col1) (type: double)
                   outputColumnNames: _col0
                   Statistics: Num rows: 1 Data size: 16 Basic stats: COMPLETE Column stats: NONE
                   Reduce Output Operator
@@ -4418,7 +4418,7 @@ STAGE PLANS:
                 outputColumnNames: _col0, _col1
                 Statistics: Num rows: 1 Data size: 16 Basic stats: COMPLETE Column stats: NONE
                 Select Operator
-                  expressions: (_col0 / _col1) (type: double)
+                  expressions: (UDFToDouble(_col0) / _col1) (type: double)
                   outputColumnNames: _col0
                   Statistics: Num rows: 1 Data size: 16 Basic stats: COMPLETE Column stats: NONE
                   Reduce Output Operator

http://git-wip-us.apache.org/repos/asf/hive/blob/649d7c12/ql/src/test/results/clientpositive/spark/union_remove_6_subq.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/union_remove_6_subq.q.out b/ql/src/test/results/clientpositive/spark/union_remove_6_subq.q.out
index ad561dd..e1f14d3 100644
--- a/ql/src/test/results/clientpositive/spark/union_remove_6_subq.q.out
+++ b/ql/src/test/results/clientpositive/spark/union_remove_6_subq.q.out
@@ -298,7 +298,7 @@ STAGE PLANS:
                 outputColumnNames: _col0, _col1
                 Statistics: Num rows: 1 Data size: 16 Basic stats: COMPLETE Column stats: COMPLETE
                 Select Operator
-                  expressions: (_col0 / _col1) (type: double)
+                  expressions: (UDFToDouble(_col0) / _col1) (type: double)
                   outputColumnNames: _col0
                   Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
                   File Output Operator

http://git-wip-us.apache.org/repos/asf/hive/blob/649d7c12/ql/src/test/results/clientpositive/spark/vector_cast_constant.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/vector_cast_constant.q.out b/ql/src/test/results/clientpositive/spark/vector_cast_constant.q.out
index 3e74a8f..5e0d60f 100644
--- a/ql/src/test/results/clientpositive/spark/vector_cast_constant.q.out
+++ b/ql/src/test/results/clientpositive/spark/vector_cast_constant.q.out
@@ -199,13 +199,13 @@ STAGE PLANS:
                 outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6
                 Statistics: Num rows: 524 Data size: 155436 Basic stats: COMPLETE Column stats: NONE
                 Select Operator
-                  expressions: _col0 (type: int), (_col1 / _col2) (type: double), (_col3 / _col4) (type: double), CAST( (_col5 / _col6) AS decimal(6,4)) (type: decimal(6,4))
+                  expressions: _col0 (type: int), (UDFToDouble(_col1) / _col2) (type: double), (_col3 / _col4) (type: double), CAST( (_col5 / _col6) AS decimal(6,4)) (type: decimal(6,4))
                   outputColumnNames: _col0, _col1, _col2, _col3
                   Select Vectorization:
                       className: VectorSelectOperator
                       native: true
-                      projectedOutputColumnNums: [0, 7, 8, 11]
-                      selectExpressions: LongColDivideLongColumn(col 1:bigint, col 2:bigint) -> 7:double, DoubleColDivideLongColumn(col 3:double, col 4:bigint) -> 8:double, CastDecimalToDecimal(col 10:decimal(32,20))(children: DecimalColDivideDecimalColumn(col 5:decimal(12,0), col 9:decimal(19,0))(children: CastLongToDecimal(col 6:bigint) -> 9:decimal(19,0)) -> 10:decimal(32,20)) -> 11:decimal(6,4)
+                      projectedOutputColumnNums: [0, 8, 7, 11]
+                      selectExpressions: DoubleColDivideLongColumn(col 7:double, col 2:bigint)(children: CastLongToDouble(col 1:bigint) -> 7:double) -> 8:double, DoubleColDivideLongColumn(col 3:double, col 4:bigint) -> 7:double, CastDecimalToDecimal(col 10:decimal(32,20))(children: DecimalColDivideDecimalColumn(col 5:decimal(12,0), col 9:decimal(19,0))(children: CastLongToDecimal(col 6:bigint) -> 9:decimal(19,0)) -> 10:decimal(32,20)) -> 11:decimal(6,4)
                   Statistics: Num rows: 524 Data size: 155436 Basic stats: COMPLETE Column stats: NONE
                   Reduce Output Operator
                     key expressions: _col0 (type: int)

http://git-wip-us.apache.org/repos/asf/hive/blob/649d7c12/ql/src/test/results/clientpositive/spark/vectorization_0.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/vectorization_0.q.out b/ql/src/test/results/clientpositive/spark/vectorization_0.q.out
index f1ce726..bd88187 100644
--- a/ql/src/test/results/clientpositive/spark/vectorization_0.q.out
+++ b/ql/src/test/results/clientpositive/spark/vectorization_0.q.out
@@ -440,7 +440,7 @@ STAGE PLANS:
                 outputColumnNames: _col0, _col1, _col2, _col3
                 Statistics: Num rows: 1 Data size: 32 Basic stats: COMPLETE Column stats: NONE
                 Select Operator
-                  expressions: (_col0 / _col1) (type: double), ((_col2 - ((_col3 * _col3) / _col1)) / _col1) (type: double), ((_col2 - ((_col3 * _col3) / _col1)) / CASE WHEN ((_col1 = 1L)) THEN (null) ELSE ((_col1 - 1)) END) (type: double), power(((_col2 - ((_col3 * _col3) / _col1)) / _col1), 0.5) (type: double), power(((_col2 - ((_col3 * _col3) / _col1)) / CASE WHEN ((_col1 = 1L)) THEN (null) ELSE ((_col1 - 1)) END), 0.5) (type: double)
+                  expressions: (UDFToDouble(_col0) / _col1) (type: double), ((_col2 - ((_col3 * _col3) / _col1)) / _col1) (type: double), ((_col2 - ((_col3 * _col3) / _col1)) / CASE WHEN ((_col1 = 1L)) THEN (null) ELSE ((_col1 - 1)) END) (type: double), power(((_col2 - ((_col3 * _col3) / _col1)) / _col1), 0.5) (type: double), power(((_col2 - ((_col3 * _col3) / _col1)) / CASE WHEN ((_col1 = 1L)) THEN (null) ELSE ((_col1 - 1)) END), 0.5) (type: double)
                   outputColumnNames: _col0, _col1, _col3, _col4, _col7
                   Statistics: Num rows: 1 Data size: 32 Basic stats: COMPLETE Column stats: NONE
                   Reduce Output Operator
@@ -946,7 +946,7 @@ STAGE PLANS:
                 outputColumnNames: _col0, _col1, _col2, _col3
                 Statistics: Num rows: 1 Data size: 32 Basic stats: COMPLETE Column stats: NONE
                 Select Operator
-                  expressions: (_col0 / _col1) (type: double), ((_col2 - ((_col3 * _col3) / _col1)) / _col1) (type: double), ((_col2 - ((_col3 * _col3) / _col1)) / CASE WHEN ((_col1 = 1L)) THEN (null) ELSE ((_col1 - 1)) END) (type: double), power(((_col2 - ((_col3 * _col3) / _col1)) / _col1), 0.5) (type: double), power(((_col2 - ((_col3 * _col3) / _col1)) / CASE WHEN ((_col1 = 1L)) THEN (null) ELSE ((_col1 - 1)) END), 0.5) (type: double)
+                  expressions: (UDFToDouble(_col0) / _col1) (type: double), ((_col2 - ((_col3 * _col3) / _col1)) / _col1) (type: double), ((_col2 - ((_col3 * _col3) / _col1)) / CASE WHEN ((_col1 = 1L)) THEN (null) ELSE ((_col1 - 1)) END) (type: double), power(((_col2 - ((_col3 * _col3) / _col1)) / _col1), 0.5) (type: double), power(((_col2 - ((_col3 * _col3) / _col1)) / CASE WHEN ((_col1 = 1L)) THEN (null) ELSE ((_col1 - 1)) END), 0.5) (type: double)
                   outputColumnNames: _col0, _col1, _col3, _col4, _col7
                   Statistics: Num rows: 1 Data size: 32 Basic stats: COMPLETE Column stats: NONE
                   Reduce Output Operator
@@ -1678,13 +1678,13 @@ STAGE PLANS:
                 outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6
                 Statistics: Num rows: 1 Data size: 52 Basic stats: COMPLETE Column stats: NONE
                 Select Operator
-                  expressions: (_col0 / _col1) (type: double), (- (_col0 / _col1)) (type: double), (-6432.0D + (_col0 / _col1)) (type: double), power(((_col2 - ((_col3 * _col3) / _col1)) / _col1), 0.5) (type: double), (- (-6432.0D + (_col0 / _col1))) (type: double), ((- (-6432.0D + (_col0 / _col1))) + (-6432.0D + (_col0 / _col1))) (type: double), ((_col2 - ((_col3 * _col3) / _col1)) / CASE WHEN ((_col1 = 1L)) THEN (null) ELSE ((_col1 - 1)) END) (type: double), (- (-6432.0D + (_col0 / _col1))) (type: double), (-6432.0D + (- (-6432.0D + (_col0 / _col1)))) (type: double), (- (-6432.0D + (_col0 / _col1))) (type: double), ((- (-6432.0D + (_col0 / _col1))) / (- (-6432.0D + (_col0 / _col1)))) (type: double), _col4 (type: bigint), _col5 (type: double), (((_col2 - ((_col3 * _col3) / _col1)) / CASE WHEN ((_col1 = 1L)) THEN (null) ELSE ((_col1 - 1)) END) % power(((_col2 - ((_col3 * _col3) / _col1)) / _col1), 0.5)) (type: double), (- ((_col2 - ((_col3 * _col3) / _col1)) / CASE WHEN ((_col1 = 1L
 )) THEN (null) ELSE ((_col1 - 1)) END)) (type: double), ((- (-6432.0D + (_col0 / _col1))) * (- (_col0 / _col1))) (type: double), _col6 (type: tinyint), (- _col6) (type: tinyint)
+                  expressions: (UDFToDouble(_col0) / _col1) (type: double), (- (UDFToDouble(_col0) / _col1)) (type: double), (-6432.0D + (UDFToDouble(_col0) / _col1)) (type: double), power(((_col2 - ((_col3 * _col3) / _col1)) / _col1), 0.5) (type: double), (- (-6432.0D + (UDFToDouble(_col0) / _col1))) (type: double), ((- (-6432.0D + (UDFToDouble(_col0) / _col1))) + (-6432.0D + (UDFToDouble(_col0) / _col1))) (type: double), ((_col2 - ((_col3 * _col3) / _col1)) / CASE WHEN ((_col1 = 1L)) THEN (null) ELSE ((_col1 - 1)) END) (type: double), (- (-6432.0D + (UDFToDouble(_col0) / _col1))) (type: double), (-6432.0D + (- (-6432.0D + (UDFToDouble(_col0) / _col1)))) (type: double), (- (-6432.0D + (UDFToDouble(_col0) / _col1))) (type: double), ((- (-6432.0D + (UDFToDouble(_col0) / _col1))) / (- (-6432.0D + (UDFToDouble(_col0) / _col1)))) (type: double), _col4 (type: bigint), _col5 (type: double), (((_col2 - ((_col3 * _col3) / _col1)) / CASE WHEN ((_col1 = 1L)) THEN (null) ELSE ((_col1 - 1)) END
 ) % power(((_col2 - ((_col3 * _col3) / _col1)) / _col1), 0.5)) (type: double), (- ((_col2 - ((_col3 * _col3) / _col1)) / CASE WHEN ((_col1 = 1L)) THEN (null) ELSE ((_col1 - 1)) END)) (type: double), ((- (-6432.0D + (UDFToDouble(_col0) / _col1))) * (- (UDFToDouble(_col0) / _col1))) (type: double), _col6 (type: tinyint), (- _col6) (type: tinyint)
                   outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13, _col14, _col15, _col16, _col17
                   Select Vectorization:
                       className: VectorSelectOperator
                       native: true
-                      projectedOutputColumnNums: [7, 9, 10, 8, 11, 13, 14, 12, 19, 18, 22, 4, 5, 25, 20, 28, 6, 27]
-                      selectExpressions: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 7:double, DoubleColUnaryMinus(col 8:double)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 8:double) -> 9:double, DoubleScalarAddDoubleColumn(val -6432.0, col 8:double)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 8:double) -> 10:double, FuncPowerDoubleToDouble(col 11:double)(children: DoubleColDivideLongColumn(col 8:double, col 1:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 11:double)(children: DoubleColDivideLongColumn(col 8:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 8:double) -> 11:double) -> 8:double) -> 11:double) -> 8:double, DoubleColUnaryMinus(col 12:double)(children: DoubleScalarAddDoubleColumn(val -6432.0, col 11:double)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 11:double) -> 12:double) -> 11:double, DoubleColAddDoubleColumn(col 12:double, col 14:do
 uble)(children: DoubleColUnaryMinus(col 13:double)(children: DoubleScalarAddDoubleColumn(val -6432.0, col 12:double)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 12:double) -> 13:double) -> 12:double, DoubleScalarAddDoubleColumn(val -6432.0, col 13:double)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 13:double) -> 14:double) -> 13:double, DoubleColDivideLongColumn(col 12:double, col 17:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 14:double)(children: DoubleColDivideLongColumn(col 12:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 12:double) -> 14:double) -> 12:double, IfExprNullCondExpr(col 15:boolean, null, col 16:bigint)(children: LongColEqualLongScalar(col 1:bigint, val 1) -> 15:boolean, LongColSubtractLongScalar(col 1:bigint, val 1) -> 16:bigint) -> 17:bigint) -> 14:double, DoubleColUnaryMinus(col 18:double)(children: DoubleScalarAddDoubleColumn(val -6432.0, col 12:double)(c
 hildren: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 12:double) -> 18:double) -> 12:double, DoubleScalarAddDoubleColumn(val -6432.0, col 18:double)(children: DoubleColUnaryMinus(col 19:double)(children: DoubleScalarAddDoubleColumn(val -6432.0, col 18:double)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 18:double) -> 19:double) -> 18:double) -> 19:double, DoubleColUnaryMinus(col 20:double)(children: DoubleScalarAddDoubleColumn(val -6432.0, col 18:double)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 18:double) -> 20:double) -> 18:double, DoubleColDivideDoubleColumn(col 20:double, col 21:double)(children: DoubleColUnaryMinus(col 21:double)(children: DoubleScalarAddDoubleColumn(val -6432.0, col 20:double)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 20:double) -> 21:double) -> 20:double, DoubleColUnaryMinus(col 22:double)(children: DoubleScalarAddDoubleColumn(val -6432.0, col 21:double)(children: LongColDivideLongCol
 umn(col 0:bigint, col 1:bigint) -> 21:double) -> 22:double) -> 21:double) -> 22:double, DoubleColModuloDoubleColumn(col 21:double, col 20:double)(children: DoubleColDivideLongColumn(col 20:double, col 24:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 21:double)(children: DoubleColDivideLongColumn(col 20:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 20:double) -> 21:double) -> 20:double, IfExprNullCondExpr(col 17:boolean, null, col 23:bigint)(children: LongColEqualLongScalar(col 1:bigint, val 1) -> 17:boolean, LongColSubtractLongScalar(col 1:bigint, val 1) -> 23:bigint) -> 24:bigint) -> 21:double, FuncPowerDoubleToDouble(col 25:double)(children: DoubleColDivideLongColumn(col 20:double, col 1:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 25:double)(children: DoubleColDivideLongColumn(col 20:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 20:double) -> 25:d
 ouble) -> 20:double) -> 25:double) -> 20:double) -> 25:double, DoubleColUnaryMinus(col 21:double)(children: DoubleColDivideLongColumn(col 20:double, col 27:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 21:double)(children: DoubleColDivideLongColumn(col 20:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 20:double) -> 21:double) -> 20:double, IfExprNullCondExpr(col 24:boolean, null, col 26:bigint)(children: LongColEqualLongScalar(col 1:bigint, val 1) -> 24:boolean, LongColSubtractLongScalar(col 1:bigint, val 1) -> 26:bigint) -> 27:bigint) -> 21:double) -> 20:double, DoubleColMultiplyDoubleColumn(col 21:double, col 29:double)(children: DoubleColUnaryMinus(col 28:double)(children: DoubleScalarAddDoubleColumn(val -6432.0, col 21:double)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 21:double) -> 28:double) -> 21:double, DoubleColUnaryMinus(col 28:double)(children: LongColDivideLongColumn(col 0:bigint, col
  1:bigint) -> 28:double) -> 29:double) -> 28:double, LongColUnaryMinus(col 6:tinyint) -> 27:tinyint
+                      projectedOutputColumnNums: [8, 7, 9, 10, 12, 14, 13, 18, 11, 20, 19, 4, 5, 25, 21, 29, 6, 27]
+                      selectExpressions: DoubleColDivideLongColumn(col 7:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 7:double) -> 8:double, DoubleColUnaryMinus(col 9:double)(children: DoubleColDivideLongColumn(col 7:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 7:double) -> 9:double) -> 7:double, DoubleScalarAddDoubleColumn(val -6432.0, col 10:double)(children: DoubleColDivideLongColumn(col 9:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 9:double) -> 10:double) -> 9:double, FuncPowerDoubleToDouble(col 11:double)(children: DoubleColDivideLongColumn(col 10:double, col 1:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 11:double)(children: DoubleColDivideLongColumn(col 10:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 10:double) -> 11:double) -> 10:double) -> 11:double) -> 10:double, DoubleColUnaryMinus(col 11:double)(children: DoubleScalarAddDoubleColumn(val -64
 32.0, col 12:double)(children: DoubleColDivideLongColumn(col 11:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 11:double) -> 12:double) -> 11:double) -> 12:double, DoubleColAddDoubleColumn(col 13:double, col 11:double)(children: DoubleColUnaryMinus(col 11:double)(children: DoubleScalarAddDoubleColumn(val -6432.0, col 13:double)(children: DoubleColDivideLongColumn(col 11:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 11:double) -> 13:double) -> 11:double) -> 13:double, DoubleScalarAddDoubleColumn(val -6432.0, col 14:double)(children: DoubleColDivideLongColumn(col 11:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 11:double) -> 14:double) -> 11:double) -> 14:double, DoubleColDivideLongColumn(col 11:double, col 17:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 13:double)(children: DoubleColDivideLongColumn(col 11:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 11:doub
 le) -> 13:double) -> 11:double, IfExprNullCondExpr(col 15:boolean, null, col 16:bigint)(children: LongColEqualLongScalar(col 1:bigint, val 1) -> 15:boolean, LongColSubtractLongScalar(col 1:bigint, val 1) -> 16:bigint) -> 17:bigint) -> 13:double, DoubleColUnaryMinus(col 11:double)(children: DoubleScalarAddDoubleColumn(val -6432.0, col 18:double)(children: DoubleColDivideLongColumn(col 11:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 11:double) -> 18:double) -> 11:double) -> 18:double, DoubleScalarAddDoubleColumn(val -6432.0, col 19:double)(children: DoubleColUnaryMinus(col 11:double)(children: DoubleScalarAddDoubleColumn(val -6432.0, col 19:double)(children: DoubleColDivideLongColumn(col 11:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 11:double) -> 19:double) -> 11:double) -> 19:double) -> 11:double, DoubleColUnaryMinus(col 19:double)(children: DoubleScalarAddDoubleColumn(val -6432.0, col 20:double)(children: DoubleColDivideLongColumn(col 19:d
 ouble, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 19:double) -> 20:double) -> 19:double) -> 20:double, DoubleColDivideDoubleColumn(col 21:double, col 22:double)(children: DoubleColUnaryMinus(col 19:double)(children: DoubleScalarAddDoubleColumn(val -6432.0, col 21:double)(children: DoubleColDivideLongColumn(col 19:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 19:double) -> 21:double) -> 19:double) -> 21:double, DoubleColUnaryMinus(col 19:double)(children: DoubleScalarAddDoubleColumn(val -6432.0, col 22:double)(children: DoubleColDivideLongColumn(col 19:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 19:double) -> 22:double) -> 19:double) -> 22:double) -> 19:double, DoubleColModuloDoubleColumn(col 22:double, col 21:double)(children: DoubleColDivideLongColumn(col 21:double, col 24:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 22:double)(children: DoubleColDivideLongColumn(col 21:double, col 1:bigint)(children: Dou
 bleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 21:double) -> 22:double) -> 21:double, IfExprNullCondExpr(col 17:boolean, null, col 23:bigint)(children: LongColEqualLongScalar(col 1:bigint, val 1) -> 17:boolean, LongColSubtractLongScalar(col 1:bigint, val 1) -> 23:bigint) -> 24:bigint) -> 22:double, FuncPowerDoubleToDouble(col 25:double)(children: DoubleColDivideLongColumn(col 21:double, col 1:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 25:double)(children: DoubleColDivideLongColumn(col 21:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 21:double) -> 25:double) -> 21:double) -> 25:double) -> 21:double) -> 25:double, DoubleColUnaryMinus(col 22:double)(children: DoubleColDivideLongColumn(col 21:double, col 27:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 22:double)(children: DoubleColDivideLongColumn(col 21:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:d
 ouble) -> 21:double) -> 22:double) -> 21:double, IfExprNullCondExpr(col 24:boolean, null, col 26:bigint)(children: LongColEqualLongScalar(col 1:bigint, val 1) -> 24:boolean, LongColSubtractLongScalar(col 1:bigint, val 1) -> 26:bigint) -> 27:bigint) -> 22:double) -> 21:double, DoubleColMultiplyDoubleColumn(col 28:double, col 22:double)(children: DoubleColUnaryMinus(col 22:double)(children: DoubleScalarAddDoubleColumn(val -6432.0, col 28:double)(children: DoubleColDivideLongColumn(col 22:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 22:double) -> 28:double) -> 22:double) -> 28:double, DoubleColUnaryMinus(col 29:double)(children: DoubleColDivideLongColumn(col 22:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 22:double) -> 29:double) -> 22:double) -> 29:double, LongColUnaryMinus(col 6:tinyint) -> 27:tinyint
                   Statistics: Num rows: 1 Data size: 52 Basic stats: COMPLETE Column stats: NONE
                   File Output Operator
                     compressed: false

http://git-wip-us.apache.org/repos/asf/hive/blob/649d7c12/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 3c0044b..b521c5b 100644
--- a/ql/src/test/results/clientpositive/spark/vectorization_2.q.out
+++ b/ql/src/test/results/clientpositive/spark/vectorization_2.q.out
@@ -151,13 +151,13 @@ STAGE PLANS:
                 outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9
                 Statistics: Num rows: 1 Data size: 76 Basic stats: COMPLETE Column stats: NONE
                 Select Operator
-                  expressions: (_col0 / _col1) (type: double), ((_col0 / _col1) % -563.0D) (type: double), ((_col0 / _col1) + 762.0D) (type: double), _col2 (type: double), ((_col3 - ((_col4 * _col4) / _col5)) / _col5) (type: double), (- ((_col3 - ((_col4 * _col4) / _col5)) / _col5)) (type: double), (_col2 - (_col0 / _col1)) (type: double), _col6 (type: bigint), (- (_col2 - (_col0 / _col1))) (type: double), (((_col3 - ((_col4 * _col4) / _col5)) / _col5) - 762.0D) (type: double), _col7 (type: tinyint), ((- ((_col3 - ((_col4 * _col4) / _col5)) / _col5)) + UDFToDouble(_col7)) (type: double), (_col8 / _col9) (type: double), (((- ((_col3 - ((_col4 * _col4) / _col5)) / _col5)) + UDFToDouble(_col7)) - _col2) (type: double)
+                  expressions: (UDFToDouble(_col0) / _col1) (type: double), ((UDFToDouble(_col0) / _col1) % -563.0D) (type: double), ((UDFToDouble(_col0) / _col1) + 762.0D) (type: double), _col2 (type: double), ((_col3 - ((_col4 * _col4) / _col5)) / _col5) (type: double), (- ((_col3 - ((_col4 * _col4) / _col5)) / _col5)) (type: double), (_col2 - (UDFToDouble(_col0) / _col1)) (type: double), _col6 (type: bigint), (- (_col2 - (UDFToDouble(_col0) / _col1))) (type: double), (((_col3 - ((_col4 * _col4) / _col5)) / _col5) - 762.0D) (type: double), _col7 (type: tinyint), ((- ((_col3 - ((_col4 * _col4) / _col5)) / _col5)) + UDFToDouble(_col7)) (type: double), (_col8 / _col9) (type: double), (((- ((_col3 - ((_col4 * _col4) / _col5)) / _col5)) + UDFToDouble(_col7)) - _col2) (type: double)
                   outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13
                   Select Vectorization:
                       className: VectorSelectOperator
                       native: true
-                      projectedOutputColumnNums: [10, 12, 13, 2, 14, 11, 16, 6, 15, 17, 7, 20, 18, 19]
-                      selectExpressions: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 10:double, DoubleColModuloDoubleScalar(col 11:double, val -563.0)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 11:double) -> 12:double, DoubleColAddDoubleScalar(col 11:double, val 762.0)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 11:double) -> 13:double, DoubleColDivideLongColumn(col 11:double, col 5:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 14:double)(children: DoubleColDivideLongColumn(col 11:double, col 5:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 11:double) -> 14:double) -> 11:double) -> 14:double, DoubleColUnaryMinus(col 15:double)(children: DoubleColDivideLongColumn(col 11:double, col 5:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 15:double)(children: DoubleColDivideLongColumn(col 11:double, col 5:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col
  4:double) -> 11:double) -> 15:double) -> 11:double) -> 15:double) -> 11:double, DoubleColSubtractDoubleColumn(col 2:double, col 15:double)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 15:double) -> 16:double, DoubleColUnaryMinus(col 17:double)(children: DoubleColSubtractDoubleColumn(col 2:double, col 15:double)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 15:double) -> 17:double) -> 15:double, DoubleColSubtractDoubleScalar(col 18:double, val 762.0)(children: DoubleColDivideLongColumn(col 17:double, col 5:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 18:double)(children: DoubleColDivideLongColumn(col 17:double, col 5:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 17:double) -> 18:double) -> 17:double) -> 18:double) -> 17:double, DoubleColAddDoubleColumn(col 18:double, col 19:double)(children: DoubleColUnaryMinus(col 19:double)(children: DoubleColDivideLongColumn(col 18:double, col 5:bigint)(c
 hildren: 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)(children: 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, 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
                   Statistics: Num rows: 1 Data size: 76 Basic stats: COMPLETE Column stats: NONE
                   File Output Operator
                     compressed: false


[5/8] hive git commit: HIVE-20391: HiveAggregateReduceFunctionsRule may infer wrong return type when decomposing aggregate function (Jesus Camacho Rodriguez, reviewed by Ashutosh Chauhan)

Posted by jc...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/649d7c12/ql/src/test/results/clientpositive/llap/vectorized_mapjoin.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/llap/vectorized_mapjoin.q.out b/ql/src/test/results/clientpositive/llap/vectorized_mapjoin.q.out
index c718ad0..41ca076 100644
--- a/ql/src/test/results/clientpositive/llap/vectorized_mapjoin.q.out
+++ b/ql/src/test/results/clientpositive/llap/vectorized_mapjoin.q.out
@@ -165,13 +165,13 @@ STAGE PLANS:
                 outputColumnNames: _col0, _col1, _col2, _col3, _col4
                 Statistics: Num rows: 1 Data size: 32 Basic stats: COMPLETE Column stats: COMPLETE
                 Select Operator
-                  expressions: _col0 (type: bigint), _col1 (type: int), _col2 (type: int), (_col3 / _col4) (type: double)
+                  expressions: _col0 (type: bigint), _col1 (type: int), _col2 (type: int), (UDFToDouble(_col3) / _col4) (type: double)
                   outputColumnNames: _col0, _col1, _col2, _col3
                   Select Vectorization:
                       className: VectorSelectOperator
                       native: true
-                      projectedOutputColumnNums: [0, 1, 2, 5]
-                      selectExpressions: LongColDivideLongColumn(col 3:bigint, col 4:bigint) -> 5:double
+                      projectedOutputColumnNums: [0, 1, 2, 6]
+                      selectExpressions: DoubleColDivideLongColumn(col 5:double, col 4:bigint)(children: CastLongToDouble(col 3:bigint) -> 5:double) -> 6:double
                   Statistics: Num rows: 1 Data size: 24 Basic stats: COMPLETE Column stats: COMPLETE
                   File Output Operator
                     compressed: false

http://git-wip-us.apache.org/repos/asf/hive/blob/649d7c12/ql/src/test/results/clientpositive/llap/vectorized_shufflejoin.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/llap/vectorized_shufflejoin.q.out b/ql/src/test/results/clientpositive/llap/vectorized_shufflejoin.q.out
index 8aea10a..6421650 100644
--- a/ql/src/test/results/clientpositive/llap/vectorized_shufflejoin.q.out
+++ b/ql/src/test/results/clientpositive/llap/vectorized_shufflejoin.q.out
@@ -156,13 +156,13 @@ STAGE PLANS:
                 outputColumnNames: _col0, _col1, _col2, _col3, _col4
                 Statistics: Num rows: 1 Data size: 32 Basic stats: COMPLETE Column stats: COMPLETE
                 Select Operator
-                  expressions: _col0 (type: bigint), _col1 (type: int), _col2 (type: int), (_col3 / _col4) (type: double)
+                  expressions: _col0 (type: bigint), _col1 (type: int), _col2 (type: int), (UDFToDouble(_col3) / _col4) (type: double)
                   outputColumnNames: _col0, _col1, _col2, _col3
                   Select Vectorization:
                       className: VectorSelectOperator
                       native: true
-                      projectedOutputColumnNums: [0, 1, 2, 5]
-                      selectExpressions: LongColDivideLongColumn(col 3:bigint, col 4:bigint) -> 5:double
+                      projectedOutputColumnNums: [0, 1, 2, 6]
+                      selectExpressions: DoubleColDivideLongColumn(col 5:double, col 4:bigint)(children: CastLongToDouble(col 3:bigint) -> 5:double) -> 6:double
                   Statistics: Num rows: 1 Data size: 24 Basic stats: COMPLETE Column stats: COMPLETE
                   Reduce Output Operator
                     key expressions: _col0 (type: bigint)

http://git-wip-us.apache.org/repos/asf/hive/blob/649d7c12/ql/src/test/results/clientpositive/parquet_vectorization_0.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/parquet_vectorization_0.q.out b/ql/src/test/results/clientpositive/parquet_vectorization_0.q.out
index d352509..6af7892 100644
--- a/ql/src/test/results/clientpositive/parquet_vectorization_0.q.out
+++ b/ql/src/test/results/clientpositive/parquet_vectorization_0.q.out
@@ -405,7 +405,7 @@ STAGE PLANS:
           outputColumnNames: _col0, _col1, _col2, _col3
           Statistics: Num rows: 1 Data size: 32 Basic stats: COMPLETE Column stats: NONE
           Select Operator
-            expressions: (_col0 / _col1) (type: double), ((_col2 - ((_col3 * _col3) / _col1)) / _col1) (type: double), ((_col2 - ((_col3 * _col3) / _col1)) / CASE WHEN ((_col1 = 1L)) THEN (null) ELSE ((_col1 - 1)) END) (type: double), power(((_col2 - ((_col3 * _col3) / _col1)) / _col1), 0.5) (type: double), power(((_col2 - ((_col3 * _col3) / _col1)) / CASE WHEN ((_col1 = 1L)) THEN (null) ELSE ((_col1 - 1)) END), 0.5) (type: double)
+            expressions: (UDFToDouble(_col0) / _col1) (type: double), ((_col2 - ((_col3 * _col3) / _col1)) / _col1) (type: double), ((_col2 - ((_col3 * _col3) / _col1)) / CASE WHEN ((_col1 = 1L)) THEN (null) ELSE ((_col1 - 1)) END) (type: double), power(((_col2 - ((_col3 * _col3) / _col1)) / _col1), 0.5) (type: double), power(((_col2 - ((_col3 * _col3) / _col1)) / CASE WHEN ((_col1 = 1L)) THEN (null) ELSE ((_col1 - 1)) END), 0.5) (type: double)
             outputColumnNames: _col0, _col1, _col3, _col4, _col7
             Statistics: Num rows: 1 Data size: 32 Basic stats: COMPLETE Column stats: NONE
             File Output Operator
@@ -893,7 +893,7 @@ STAGE PLANS:
           outputColumnNames: _col0, _col1, _col2, _col3
           Statistics: Num rows: 1 Data size: 32 Basic stats: COMPLETE Column stats: NONE
           Select Operator
-            expressions: (_col0 / _col1) (type: double), ((_col2 - ((_col3 * _col3) / _col1)) / _col1) (type: double), ((_col2 - ((_col3 * _col3) / _col1)) / CASE WHEN ((_col1 = 1L)) THEN (null) ELSE ((_col1 - 1)) END) (type: double), power(((_col2 - ((_col3 * _col3) / _col1)) / _col1), 0.5) (type: double), power(((_col2 - ((_col3 * _col3) / _col1)) / CASE WHEN ((_col1 = 1L)) THEN (null) ELSE ((_col1 - 1)) END), 0.5) (type: double)
+            expressions: (UDFToDouble(_col0) / _col1) (type: double), ((_col2 - ((_col3 * _col3) / _col1)) / _col1) (type: double), ((_col2 - ((_col3 * _col3) / _col1)) / CASE WHEN ((_col1 = 1L)) THEN (null) ELSE ((_col1 - 1)) END) (type: double), power(((_col2 - ((_col3 * _col3) / _col1)) / _col1), 0.5) (type: double), power(((_col2 - ((_col3 * _col3) / _col1)) / CASE WHEN ((_col1 = 1L)) THEN (null) ELSE ((_col1 - 1)) END), 0.5) (type: double)
             outputColumnNames: _col0, _col1, _col3, _col4, _col7
             Statistics: Num rows: 1 Data size: 32 Basic stats: COMPLETE Column stats: NONE
             File Output Operator
@@ -1600,7 +1600,7 @@ STAGE PLANS:
           outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6
           Statistics: Num rows: 1 Data size: 52 Basic stats: COMPLETE Column stats: NONE
           Select Operator
-            expressions: (_col0 / _col1) (type: double), (- (_col0 / _col1)) (type: double), (-6432.0D + (_col0 / _col1)) (type: double), power(((_col2 - ((_col3 * _col3) / _col1)) / _col1), 0.5) (type: double), (- (-6432.0D + (_col0 / _col1))) (type: double), ((- (-6432.0D + (_col0 / _col1))) + (-6432.0D + (_col0 / _col1))) (type: double), ((_col2 - ((_col3 * _col3) / _col1)) / CASE WHEN ((_col1 = 1L)) THEN (null) ELSE ((_col1 - 1)) END) (type: double), (- (-6432.0D + (_col0 / _col1))) (type: double), (-6432.0D + (- (-6432.0D + (_col0 / _col1)))) (type: double), (- (-6432.0D + (_col0 / _col1))) (type: double), ((- (-6432.0D + (_col0 / _col1))) / (- (-6432.0D + (_col0 / _col1)))) (type: double), _col4 (type: bigint), _col5 (type: double), (((_col2 - ((_col3 * _col3) / _col1)) / CASE WHEN ((_col1 = 1L)) THEN (null) ELSE ((_col1 - 1)) END) % power(((_col2 - ((_col3 * _col3) / _col1)) / _col1), 0.5)) (type: double), (- ((_col2 - ((_col3 * _col3) / _col1)) / CASE WHEN ((_col1 = 1L)) THE
 N (null) ELSE ((_col1 - 1)) END)) (type: double), ((- (-6432.0D + (_col0 / _col1))) * (- (_col0 / _col1))) (type: double), _col6 (type: tinyint), (- _col6) (type: tinyint)
+            expressions: (UDFToDouble(_col0) / _col1) (type: double), (- (UDFToDouble(_col0) / _col1)) (type: double), (-6432.0D + (UDFToDouble(_col0) / _col1)) (type: double), power(((_col2 - ((_col3 * _col3) / _col1)) / _col1), 0.5) (type: double), (- (-6432.0D + (UDFToDouble(_col0) / _col1))) (type: double), ((- (-6432.0D + (UDFToDouble(_col0) / _col1))) + (-6432.0D + (UDFToDouble(_col0) / _col1))) (type: double), ((_col2 - ((_col3 * _col3) / _col1)) / CASE WHEN ((_col1 = 1L)) THEN (null) ELSE ((_col1 - 1)) END) (type: double), (- (-6432.0D + (UDFToDouble(_col0) / _col1))) (type: double), (-6432.0D + (- (-6432.0D + (UDFToDouble(_col0) / _col1)))) (type: double), (- (-6432.0D + (UDFToDouble(_col0) / _col1))) (type: double), ((- (-6432.0D + (UDFToDouble(_col0) / _col1))) / (- (-6432.0D + (UDFToDouble(_col0) / _col1)))) (type: double), _col4 (type: bigint), _col5 (type: double), (((_col2 - ((_col3 * _col3) / _col1)) / CASE WHEN ((_col1 = 1L)) THEN (null) ELSE ((_col1 - 1)) END) % po
 wer(((_col2 - ((_col3 * _col3) / _col1)) / _col1), 0.5)) (type: double), (- ((_col2 - ((_col3 * _col3) / _col1)) / CASE WHEN ((_col1 = 1L)) THEN (null) ELSE ((_col1 - 1)) END)) (type: double), ((- (-6432.0D + (UDFToDouble(_col0) / _col1))) * (- (UDFToDouble(_col0) / _col1))) (type: double), _col6 (type: tinyint), (- _col6) (type: tinyint)
             outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13, _col14, _col15, _col16, _col17
             Statistics: Num rows: 1 Data size: 52 Basic stats: COMPLETE Column stats: NONE
             File Output Operator

http://git-wip-us.apache.org/repos/asf/hive/blob/649d7c12/ql/src/test/results/clientpositive/parquet_vectorization_2.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/parquet_vectorization_2.q.out b/ql/src/test/results/clientpositive/parquet_vectorization_2.q.out
index cb984bc..a5af87c 100644
--- a/ql/src/test/results/clientpositive/parquet_vectorization_2.q.out
+++ b/ql/src/test/results/clientpositive/parquet_vectorization_2.q.out
@@ -127,7 +127,7 @@ STAGE PLANS:
           outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9
           Statistics: Num rows: 1 Data size: 76 Basic stats: COMPLETE Column stats: NONE
           Select Operator
-            expressions: (_col0 / _col1) (type: double), ((_col0 / _col1) % -563.0D) (type: double), ((_col0 / _col1) + 762.0D) (type: double), _col2 (type: double), ((_col3 - ((_col4 * _col4) / _col5)) / _col5) (type: double), (- ((_col3 - ((_col4 * _col4) / _col5)) / _col5)) (type: double), (_col2 - (_col0 / _col1)) (type: double), _col6 (type: bigint), (- (_col2 - (_col0 / _col1))) (type: double), (((_col3 - ((_col4 * _col4) / _col5)) / _col5) - 762.0D) (type: double), _col7 (type: tinyint), ((- ((_col3 - ((_col4 * _col4) / _col5)) / _col5)) + UDFToDouble(_col7)) (type: double), (_col8 / _col9) (type: double), (((- ((_col3 - ((_col4 * _col4) / _col5)) / _col5)) + UDFToDouble(_col7)) - _col2) (type: double)
+            expressions: (UDFToDouble(_col0) / _col1) (type: double), ((UDFToDouble(_col0) / _col1) % -563.0D) (type: double), ((UDFToDouble(_col0) / _col1) + 762.0D) (type: double), _col2 (type: double), ((_col3 - ((_col4 * _col4) / _col5)) / _col5) (type: double), (- ((_col3 - ((_col4 * _col4) / _col5)) / _col5)) (type: double), (_col2 - (UDFToDouble(_col0) / _col1)) (type: double), _col6 (type: bigint), (- (_col2 - (UDFToDouble(_col0) / _col1))) (type: double), (((_col3 - ((_col4 * _col4) / _col5)) / _col5) - 762.0D) (type: double), _col7 (type: tinyint), ((- ((_col3 - ((_col4 * _col4) / _col5)) / _col5)) + UDFToDouble(_col7)) (type: double), (_col8 / _col9) (type: double), (((- ((_col3 - ((_col4 * _col4) / _col5)) / _col5)) + UDFToDouble(_col7)) - _col2) (type: double)
             outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13
             Statistics: Num rows: 1 Data size: 76 Basic stats: COMPLETE Column stats: NONE
             File Output Operator

http://git-wip-us.apache.org/repos/asf/hive/blob/649d7c12/ql/src/test/results/clientpositive/parquet_vectorization_3.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/parquet_vectorization_3.q.out b/ql/src/test/results/clientpositive/parquet_vectorization_3.q.out
index c7672a3..ffdb68e 100644
--- a/ql/src/test/results/clientpositive/parquet_vectorization_3.q.out
+++ b/ql/src/test/results/clientpositive/parquet_vectorization_3.q.out
@@ -132,7 +132,7 @@ STAGE PLANS:
           outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13
           Statistics: Num rows: 1 Data size: 112 Basic stats: COMPLETE Column stats: NONE
           Select Operator
-            expressions: power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) (type: double), (power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) - 10.175D) (type: double), power(((_col3 - ((_col4 * _col4) / _col5)) / _col5), 0.5) (type: double), (power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) * (power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) - 10.175D)) (type: double), (- power(((_col3 - ((_col4 * _col4) / _col5)) / _col5), 0.5)) (type: double), (power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) % 79.553D) (type: double), (- (power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) * (power(((_col0 - ((_col1 * _col1) / _c
 ol2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) - 10.175D))) (type: double), power(((_col6 - ((_col7 * _col7) / _col8)) / CASE WHEN ((_col8 = 1L)) THEN (null) ELSE ((_col8 - 1)) END), 0.5) (type: double), (- power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5)) (type: double), _col9 (type: double), ((- (power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) * (power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) - 10.175D))) / (power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) - 10.175D)) (type: double), (- (power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) - 10.175D)) (type: double), (_col10 / _col11) (type: double), (-3728.0D - power(((_col0 - ((_col1 * _col1) 
 / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5)) (type: double), power(((_col12 - ((_col13 * _col13) / _col11)) / _col11), 0.5) (type: double), ((_col10 / _col11) / power(((_col6 - ((_col7 * _col7) / _col8)) / CASE WHEN ((_col8 = 1L)) THEN (null) ELSE ((_col8 - 1)) END), 0.5)) (type: double)
+            expressions: power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) (type: double), (power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) - 10.175D) (type: double), power(((_col3 - ((_col4 * _col4) / _col5)) / _col5), 0.5) (type: double), (power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) * (power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) - 10.175D)) (type: double), (- power(((_col3 - ((_col4 * _col4) / _col5)) / _col5), 0.5)) (type: double), (power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) % 79.553D) (type: double), (- (power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) * (power(((_col0 - ((_col1 * _col1) / _c
 ol2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) - 10.175D))) (type: double), power(((_col6 - ((_col7 * _col7) / _col8)) / CASE WHEN ((_col8 = 1L)) THEN (null) ELSE ((_col8 - 1)) END), 0.5) (type: double), (- power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5)) (type: double), _col9 (type: double), ((- (power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) * (power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) - 10.175D))) / (power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) - 10.175D)) (type: double), (- (power(((_col0 - ((_col1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5) - 10.175D)) (type: double), (UDFToDouble(_col10) / _col11) (type: double), (-3728.0D - power(((_col0 - ((_c
 ol1 * _col1) / _col2)) / CASE WHEN ((_col2 = 1L)) THEN (null) ELSE ((_col2 - 1)) END), 0.5)) (type: double), power(((_col12 - ((_col13 * _col13) / _col11)) / _col11), 0.5) (type: double), ((UDFToDouble(_col10) / _col11) / power(((_col6 - ((_col7 * _col7) / _col8)) / CASE WHEN ((_col8 = 1L)) THEN (null) ELSE ((_col8 - 1)) END), 0.5)) (type: double)
             outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13, _col14, _col15
             Statistics: Num rows: 1 Data size: 112 Basic stats: COMPLETE Column stats: NONE
             File Output Operator

http://git-wip-us.apache.org/repos/asf/hive/blob/649d7c12/ql/src/test/results/clientpositive/parquet_vectorization_pushdown.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/parquet_vectorization_pushdown.q.out b/ql/src/test/results/clientpositive/parquet_vectorization_pushdown.q.out
index b29ca9a..2995721 100644
--- a/ql/src/test/results/clientpositive/parquet_vectorization_pushdown.q.out
+++ b/ql/src/test/results/clientpositive/parquet_vectorization_pushdown.q.out
@@ -56,7 +56,7 @@ STAGE PLANS:
           outputColumnNames: _col0, _col1
           Statistics: Num rows: 1 Data size: 16 Basic stats: COMPLETE Column stats: NONE
           Select Operator
-            expressions: (_col0 / _col1) (type: double)
+            expressions: (UDFToDouble(_col0) / _col1) (type: double)
             outputColumnNames: _col0
             Statistics: Num rows: 1 Data size: 16 Basic stats: COMPLETE Column stats: NONE
             File Output Operator

http://git-wip-us.apache.org/repos/asf/hive/blob/649d7c12/ql/src/test/results/clientpositive/perf/spark/query13.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/perf/spark/query13.q.out b/ql/src/test/results/clientpositive/perf/spark/query13.q.out
index c9fcb88..4073113 100644
--- a/ql/src/test/results/clientpositive/perf/spark/query13.q.out
+++ b/ql/src/test/results/clientpositive/perf/spark/query13.q.out
@@ -333,7 +333,7 @@ STAGE PLANS:
                 outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5
                 Statistics: Num rows: 1 Data size: 256 Basic stats: COMPLETE Column stats: NONE
                 Select Operator
-                  expressions: (_col0 / _col1) (type: double), (_col2 / _col3) (type: decimal(37,22)), (_col4 / _col5) (type: decimal(37,22)), CAST( _col4 AS decimal(17,2)) (type: decimal(17,2))
+                  expressions: (UDFToDouble(_col0) / _col1) (type: double), (_col2 / _col3) (type: decimal(37,22)), (_col4 / _col5) (type: decimal(37,22)), CAST( _col4 AS decimal(17,2)) (type: decimal(17,2))
                   outputColumnNames: _col0, _col1, _col2, _col3
                   Statistics: Num rows: 1 Data size: 256 Basic stats: COMPLETE Column stats: NONE
                   File Output Operator

http://git-wip-us.apache.org/repos/asf/hive/blob/649d7c12/ql/src/test/results/clientpositive/perf/spark/query17.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/perf/spark/query17.q.out b/ql/src/test/results/clientpositive/perf/spark/query17.q.out
index 35405a7..d0fa81d 100644
--- a/ql/src/test/results/clientpositive/perf/spark/query17.q.out
+++ b/ql/src/test/results/clientpositive/perf/spark/query17.q.out
@@ -396,7 +396,7 @@ STAGE PLANS:
                 outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13, _col14
                 Statistics: Num rows: 421657640 Data size: 37198759433 Basic stats: COMPLETE Column stats: NONE
                 Select Operator
-                  expressions: _col0 (type: string), _col1 (type: string), _col2 (type: string), _col3 (type: bigint), (_col4 / _col3) (type: double), power(((_col5 - ((_col6 * _col6) / _col3)) / CASE WHEN ((_col3 = 1L)) THEN (null) ELSE ((_col3 - 1)) END), 0.5) (type: double), (power(((_col5 - ((_col6 * _col6) / _col3)) / CASE WHEN ((_col3 = 1L)) THEN (null) ELSE ((_col3 - 1)) END), 0.5) / (_col4 / _col3)) (type: double), _col7 (type: bigint), (_col8 / _col7) (type: double), power(((_col9 - ((_col10 * _col10) / _col7)) / CASE WHEN ((_col7 = 1L)) THEN (null) ELSE ((_col7 - 1)) END), 0.5) (type: double), (power(((_col9 - ((_col10 * _col10) / _col7)) / CASE WHEN ((_col7 = 1L)) THEN (null) ELSE ((_col7 - 1)) END), 0.5) / (_col8 / _col7)) (type: double), _col11 (type: bigint), (_col12 / _col11) (type: double), (power(((_col13 - ((_col14 * _col14) / _col11)) / CASE WHEN ((_col11 = 1L)) THEN (null) ELSE ((_col11 - 1)) END), 0.5) / (_col12 / _col11)) (type: double)
+                  expressions: _col0 (type: string), _col1 (type: string), _col2 (type: string), _col3 (type: bigint), (UDFToDouble(_col4) / _col3) (type: double), power(((_col5 - ((_col6 * _col6) / _col3)) / CASE WHEN ((_col3 = 1L)) THEN (null) ELSE ((_col3 - 1)) END), 0.5) (type: double), (power(((_col5 - ((_col6 * _col6) / _col3)) / CASE WHEN ((_col3 = 1L)) THEN (null) ELSE ((_col3 - 1)) END), 0.5) / (UDFToDouble(_col4) / _col3)) (type: double), _col7 (type: bigint), (UDFToDouble(_col8) / _col7) (type: double), power(((_col9 - ((_col10 * _col10) / _col7)) / CASE WHEN ((_col7 = 1L)) THEN (null) ELSE ((_col7 - 1)) END), 0.5) (type: double), (power(((_col9 - ((_col10 * _col10) / _col7)) / CASE WHEN ((_col7 = 1L)) THEN (null) ELSE ((_col7 - 1)) END), 0.5) / (UDFToDouble(_col8) / _col7)) (type: double), _col11 (type: bigint), (UDFToDouble(_col12) / _col11) (type: double), (power(((_col13 - ((_col14 * _col14) / _col11)) / CASE WHEN ((_col11 = 1L)) THEN (null) ELSE ((_col11 - 1)) END), 
 0.5) / (UDFToDouble(_col12) / _col11)) (type: double)
                   outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13
                   Statistics: Num rows: 421657640 Data size: 37198759433 Basic stats: COMPLETE Column stats: NONE
                   Reduce Output Operator

http://git-wip-us.apache.org/repos/asf/hive/blob/649d7c12/ql/src/test/results/clientpositive/perf/spark/query22.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/perf/spark/query22.q.out b/ql/src/test/results/clientpositive/perf/spark/query22.q.out
index 2a99cc3..d0970bb 100644
--- a/ql/src/test/results/clientpositive/perf/spark/query22.q.out
+++ b/ql/src/test/results/clientpositive/perf/spark/query22.q.out
@@ -194,7 +194,7 @@ STAGE PLANS:
                 Statistics: Num rows: 125060762 Data size: 1975939839 Basic stats: COMPLETE Column stats: NONE
                 pruneGroupingSetId: true
                 Select Operator
-                  expressions: _col3 (type: string), _col0 (type: string), _col1 (type: string), _col2 (type: string), (_col5 / _col6) (type: double)
+                  expressions: _col3 (type: string), _col0 (type: string), _col1 (type: string), _col2 (type: string), (UDFToDouble(_col5) / _col6) (type: double)
                   outputColumnNames: _col0, _col1, _col2, _col3, _col4
                   Statistics: Num rows: 125060762 Data size: 1975939839 Basic stats: COMPLETE Column stats: NONE
                   Reduce Output Operator

http://git-wip-us.apache.org/repos/asf/hive/blob/649d7c12/ql/src/test/results/clientpositive/perf/spark/query26.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/perf/spark/query26.q.out b/ql/src/test/results/clientpositive/perf/spark/query26.q.out
index 17bbc6a..1ef5753 100644
--- a/ql/src/test/results/clientpositive/perf/spark/query26.q.out
+++ b/ql/src/test/results/clientpositive/perf/spark/query26.q.out
@@ -234,7 +234,7 @@ STAGE PLANS:
                 outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8
                 Statistics: Num rows: 210822976 Data size: 28549666139 Basic stats: COMPLETE Column stats: NONE
                 Select Operator
-                  expressions: _col0 (type: string), (_col1 / _col2) (type: double), (_col3 / _col4) (type: decimal(37,22)), (_col5 / _col6) (type: decimal(37,22)), (_col7 / _col8) (type: decimal(37,22))
+                  expressions: _col0 (type: string), (UDFToDouble(_col1) / _col2) (type: double), (_col3 / _col4) (type: decimal(37,22)), (_col5 / _col6) (type: decimal(37,22)), (_col7 / _col8) (type: decimal(37,22))
                   outputColumnNames: _col0, _col1, _col2, _col3, _col4
                   Statistics: Num rows: 210822976 Data size: 28549666139 Basic stats: COMPLETE Column stats: NONE
                   Reduce Output Operator

http://git-wip-us.apache.org/repos/asf/hive/blob/649d7c12/ql/src/test/results/clientpositive/perf/spark/query27.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/perf/spark/query27.q.out b/ql/src/test/results/clientpositive/perf/spark/query27.q.out
index 294222e..8be0ca9 100644
--- a/ql/src/test/results/clientpositive/perf/spark/query27.q.out
+++ b/ql/src/test/results/clientpositive/perf/spark/query27.q.out
@@ -242,7 +242,7 @@ STAGE PLANS:
                 outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10
                 Statistics: Num rows: 1264972921 Data size: 111596278389 Basic stats: COMPLETE Column stats: NONE
                 Select Operator
-                  expressions: _col0 (type: string), _col1 (type: string), grouping(_col2, 0) (type: bigint), (_col3 / _col4) (type: double), (_col5 / _col6) (type: decimal(37,22)), (_col7 / _col8) (type: decimal(37,22)), (_col9 / _col10) (type: decimal(37,22))
+                  expressions: _col0 (type: string), _col1 (type: string), grouping(_col2, 0) (type: bigint), (UDFToDouble(_col3) / _col4) (type: double), (_col5 / _col6) (type: decimal(37,22)), (_col7 / _col8) (type: decimal(37,22)), (_col9 / _col10) (type: decimal(37,22))
                   outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6
                   Statistics: Num rows: 1264972921 Data size: 111596278389 Basic stats: COMPLETE Column stats: NONE
                   Reduce Output Operator

http://git-wip-us.apache.org/repos/asf/hive/blob/649d7c12/ql/src/test/results/clientpositive/perf/spark/query35.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/perf/spark/query35.q.out b/ql/src/test/results/clientpositive/perf/spark/query35.q.out
index 6d1ea9b..22e007d 100644
--- a/ql/src/test/results/clientpositive/perf/spark/query35.q.out
+++ b/ql/src/test/results/clientpositive/perf/spark/query35.q.out
@@ -483,7 +483,7 @@ STAGE PLANS:
                 outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13, _col14, _col15
                 Statistics: Num rows: 1045432122 Data size: 92228325287 Basic stats: COMPLETE Column stats: NONE
                 Select Operator
-                  expressions: _col0 (type: string), _col1 (type: string), _col2 (type: string), _col6 (type: bigint), (_col7 / _col8) (type: double), _col9 (type: int), _col7 (type: bigint), _col4 (type: int), (_col10 / _col11) (type: double), _col12 (type: int), _col10 (type: bigint), _col5 (type: int), (_col13 / _col14) (type: double), _col15 (type: int), _col13 (type: bigint), _col3 (type: int)
+                  expressions: _col0 (type: string), _col1 (type: string), _col2 (type: string), _col6 (type: bigint), (UDFToDouble(_col7) / _col8) (type: double), _col9 (type: int), _col7 (type: bigint), _col4 (type: int), (UDFToDouble(_col10) / _col11) (type: double), _col12 (type: int), _col10 (type: bigint), _col5 (type: int), (UDFToDouble(_col13) / _col14) (type: double), _col15 (type: int), _col13 (type: bigint), _col3 (type: int)
                   outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col9, _col10, _col11, _col12, _col14, _col15, _col16, _col17
                   Statistics: Num rows: 1045432122 Data size: 92228325287 Basic stats: COMPLETE Column stats: NONE
                   Reduce Output Operator

http://git-wip-us.apache.org/repos/asf/hive/blob/649d7c12/ql/src/test/results/clientpositive/perf/spark/query39.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/perf/spark/query39.q.out b/ql/src/test/results/clientpositive/perf/spark/query39.q.out
index cab0feb..71c029b 100644
--- a/ql/src/test/results/clientpositive/perf/spark/query39.q.out
+++ b/ql/src/test/results/clientpositive/perf/spark/query39.q.out
@@ -304,10 +304,10 @@ STAGE PLANS:
                   outputColumnNames: _col0, _col1, _col3, _col4, _col5, _col6
                   Statistics: Num rows: 25012152 Data size: 395187961 Basic stats: COMPLETE Column stats: NONE
                   Filter Operator
-                    predicate: CASE WHEN (((_col3 / _col4) = 0)) THEN (false) ELSE (((power(((_col5 - ((_col6 * _col6) / _col4)) / CASE WHEN ((_col4 = 1L)) THEN (null) ELSE ((_col4 - 1)) END), 0.5) / (_col3 / _col4)) > 1.0D)) END (type: boolean)
+                    predicate: CASE WHEN (((UDFToDouble(_col3) / _col4) = 0)) THEN (false) ELSE (((power(((_col5 - ((_col6 * _col6) / _col4)) / CASE WHEN ((_col4 = 1L)) THEN (null) ELSE ((_col4 - 1)) END), 0.5) / (UDFToDouble(_col3) / _col4)) > 1.0D)) END (type: boolean)
                     Statistics: Num rows: 12506076 Data size: 197593980 Basic stats: COMPLETE Column stats: NONE
                     Select Operator
-                      expressions: _col0 (type: int), _col1 (type: int), (_col3 / _col4) (type: double), CASE WHEN (((_col3 / _col4) = 0)) THEN (null) ELSE ((power(((_col5 - ((_col6 * _col6) / _col4)) / CASE WHEN ((_col4 = 1L)) THEN (null) ELSE ((_col4 - 1)) END), 0.5) / (_col3 / _col4))) END (type: double)
+                      expressions: _col0 (type: int), _col1 (type: int), (UDFToDouble(_col3) / _col4) (type: double), CASE WHEN (((UDFToDouble(_col3) / _col4) = 0)) THEN (null) ELSE ((power(((_col5 - ((_col6 * _col6) / _col4)) / CASE WHEN ((_col4 = 1L)) THEN (null) ELSE ((_col4 - 1)) END), 0.5) / (UDFToDouble(_col3) / _col4))) END (type: double)
                       outputColumnNames: _col0, _col1, _col2, _col3
                       Statistics: Num rows: 12506076 Data size: 197593980 Basic stats: COMPLETE Column stats: NONE
                       Reduce Output Operator
@@ -384,10 +384,10 @@ STAGE PLANS:
                   outputColumnNames: _col0, _col1, _col3, _col4, _col5, _col6
                   Statistics: Num rows: 25012152 Data size: 395187961 Basic stats: COMPLETE Column stats: NONE
                   Filter Operator
-                    predicate: CASE WHEN (((_col3 / _col4) = 0)) THEN (false) ELSE (((power(((_col5 - ((_col6 * _col6) / _col4)) / CASE WHEN ((_col4 = 1L)) THEN (null) ELSE ((_col4 - 1)) END), 0.5) / (_col3 / _col4)) > 1.0D)) END (type: boolean)
+                    predicate: CASE WHEN (((UDFToDouble(_col3) / _col4) = 0)) THEN (false) ELSE (((power(((_col5 - ((_col6 * _col6) / _col4)) / CASE WHEN ((_col4 = 1L)) THEN (null) ELSE ((_col4 - 1)) END), 0.5) / (UDFToDouble(_col3) / _col4)) > 1.0D)) END (type: boolean)
                     Statistics: Num rows: 12506076 Data size: 197593980 Basic stats: COMPLETE Column stats: NONE
                     Select Operator
-                      expressions: _col0 (type: int), _col1 (type: int), (_col3 / _col4) (type: double), CASE WHEN (((_col3 / _col4) = 0)) THEN (null) ELSE ((power(((_col5 - ((_col6 * _col6) / _col4)) / CASE WHEN ((_col4 = 1L)) THEN (null) ELSE ((_col4 - 1)) END), 0.5) / (_col3 / _col4))) END (type: double)
+                      expressions: _col0 (type: int), _col1 (type: int), (UDFToDouble(_col3) / _col4) (type: double), CASE WHEN (((UDFToDouble(_col3) / _col4) = 0)) THEN (null) ELSE ((power(((_col5 - ((_col6 * _col6) / _col4)) / CASE WHEN ((_col4 = 1L)) THEN (null) ELSE ((_col4 - 1)) END), 0.5) / (UDFToDouble(_col3) / _col4))) END (type: double)
                       outputColumnNames: _col0, _col1, _col2, _col3
                       Statistics: Num rows: 12506076 Data size: 197593980 Basic stats: COMPLETE Column stats: NONE
                       Reduce Output Operator

http://git-wip-us.apache.org/repos/asf/hive/blob/649d7c12/ql/src/test/results/clientpositive/perf/spark/query7.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/perf/spark/query7.q.out b/ql/src/test/results/clientpositive/perf/spark/query7.q.out
index 2ae847b..e11fee6 100644
--- a/ql/src/test/results/clientpositive/perf/spark/query7.q.out
+++ b/ql/src/test/results/clientpositive/perf/spark/query7.q.out
@@ -234,7 +234,7 @@ STAGE PLANS:
                 outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8
                 Statistics: Num rows: 421657640 Data size: 37198759433 Basic stats: COMPLETE Column stats: NONE
                 Select Operator
-                  expressions: _col0 (type: string), (_col1 / _col2) (type: double), (_col3 / _col4) (type: decimal(37,22)), (_col5 / _col6) (type: decimal(37,22)), (_col7 / _col8) (type: decimal(37,22))
+                  expressions: _col0 (type: string), (UDFToDouble(_col1) / _col2) (type: double), (_col3 / _col4) (type: decimal(37,22)), (_col5 / _col6) (type: decimal(37,22)), (_col7 / _col8) (type: decimal(37,22))
                   outputColumnNames: _col0, _col1, _col2, _col3, _col4
                   Statistics: Num rows: 421657640 Data size: 37198759433 Basic stats: COMPLETE Column stats: NONE
                   Reduce Output Operator

http://git-wip-us.apache.org/repos/asf/hive/blob/649d7c12/ql/src/test/results/clientpositive/perf/spark/query85.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/perf/spark/query85.q.out b/ql/src/test/results/clientpositive/perf/spark/query85.q.out
index d1b3a2c..af4a835 100644
--- a/ql/src/test/results/clientpositive/perf/spark/query85.q.out
+++ b/ql/src/test/results/clientpositive/perf/spark/query85.q.out
@@ -469,7 +469,7 @@ STAGE PLANS:
                 outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6
                 Statistics: Num rows: 4436665 Data size: 4502682709 Basic stats: COMPLETE Column stats: NONE
                 Select Operator
-                  expressions: (_col1 / _col2) (type: double), (_col3 / _col4) (type: decimal(37,22)), (_col5 / _col6) (type: decimal(37,22)), substr(_col0, 1, 20) (type: string)
+                  expressions: (UDFToDouble(_col1) / _col2) (type: double), (_col3 / _col4) (type: decimal(37,22)), (_col5 / _col6) (type: decimal(37,22)), substr(_col0, 1, 20) (type: string)
                   outputColumnNames: _col4, _col5, _col6, _col7
                   Statistics: Num rows: 4436665 Data size: 4502682709 Basic stats: COMPLETE Column stats: NONE
                   Reduce Output Operator

http://git-wip-us.apache.org/repos/asf/hive/blob/649d7c12/ql/src/test/results/clientpositive/perf/tez/query39.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/perf/tez/query39.q.out b/ql/src/test/results/clientpositive/perf/tez/query39.q.out
index 514f5d4..3677fba 100644
--- a/ql/src/test/results/clientpositive/perf/tez/query39.q.out
+++ b/ql/src/test/results/clientpositive/perf/tez/query39.q.out
@@ -82,7 +82,7 @@ Stage-0
                 Select Operator [SEL_229] (rows=12506076 width=15)
                   Output:["_col0","_col1","_col2","_col3"]
                   Filter Operator [FIL_228] (rows=12506076 width=15)
-                    predicate:CASE WHEN (((_col3 / _col4) = 0)) THEN (false) ELSE (((power(((_col5 - ((_col6 * _col6) / _col4)) / CASE WHEN ((_col4 = 1L)) THEN (null) ELSE ((_col4 - 1)) END), 0.5) / (_col3 / _col4)) > 1.0D)) END
+                    predicate:CASE WHEN (((UDFToDouble(_col3) / _col4) = 0)) THEN (false) ELSE (((power(((_col5 - ((_col6 * _col6) / _col4)) / CASE WHEN ((_col4 = 1L)) THEN (null) ELSE ((_col4 - 1)) END), 0.5) / (UDFToDouble(_col3) / _col4)) > 1.0D)) END
                     Select Operator [SEL_227] (rows=25012152 width=15)
                       Output:["_col0","_col1","_col3","_col4","_col5","_col6"]
                       Group By Operator [GBY_226] (rows=25012152 width=15)
@@ -148,7 +148,7 @@ Stage-0
                 Select Operator [SEL_224] (rows=12506076 width=15)
                   Output:["_col0","_col1","_col2","_col3"]
                   Filter Operator [FIL_223] (rows=12506076 width=15)
-                    predicate:CASE WHEN (((_col3 / _col4) = 0)) THEN (false) ELSE (((power(((_col5 - ((_col6 * _col6) / _col4)) / CASE WHEN ((_col4 = 1L)) THEN (null) ELSE ((_col4 - 1)) END), 0.5) / (_col3 / _col4)) > 1.0D)) END
+                    predicate:CASE WHEN (((UDFToDouble(_col3) / _col4) = 0)) THEN (false) ELSE (((power(((_col5 - ((_col6 * _col6) / _col4)) / CASE WHEN ((_col4 = 1L)) THEN (null) ELSE ((_col4 - 1)) END), 0.5) / (UDFToDouble(_col3) / _col4)) > 1.0D)) END
                     Select Operator [SEL_222] (rows=25012152 width=15)
                       Output:["_col0","_col1","_col3","_col4","_col5","_col6"]
                       Group By Operator [GBY_221] (rows=25012152 width=15)

http://git-wip-us.apache.org/repos/asf/hive/blob/649d7c12/ql/src/test/results/clientpositive/spark/dynamic_rdd_cache.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/dynamic_rdd_cache.q.out b/ql/src/test/results/clientpositive/spark/dynamic_rdd_cache.q.out
index 88bb031..9388bde 100644
--- a/ql/src/test/results/clientpositive/spark/dynamic_rdd_cache.q.out
+++ b/ql/src/test/results/clientpositive/spark/dynamic_rdd_cache.q.out
@@ -940,10 +940,10 @@ STAGE PLANS:
                   outputColumnNames: _col0, _col1, _col3, _col4, _col5, _col6
                   Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
                   Filter Operator
-                    predicate: CASE WHEN (((_col3 / _col4) = 0)) THEN (false) ELSE (((power(((_col5 - ((_col6 * _col6) / _col4)) / CASE WHEN ((_col4 = 1L)) THEN (null) ELSE ((_col4 - 1)) END), 0.5) / (_col3 / _col4)) > 1.0D)) END (type: boolean)
+                    predicate: CASE WHEN (((UDFToDouble(_col3) / _col4) = 0)) THEN (false) ELSE (((power(((_col5 - ((_col6 * _col6) / _col4)) / CASE WHEN ((_col4 = 1L)) THEN (null) ELSE ((_col4 - 1)) END), 0.5) / (UDFToDouble(_col3) / _col4)) > 1.0D)) END (type: boolean)
                     Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
                     Select Operator
-                      expressions: _col0 (type: int), _col1 (type: int), (_col3 / _col4) (type: double), CASE WHEN (((_col3 / _col4) = 0)) THEN (null) ELSE ((power(((_col5 - ((_col6 * _col6) / _col4)) / CASE WHEN ((_col4 = 1L)) THEN (null) ELSE ((_col4 - 1)) END), 0.5) / (_col3 / _col4))) END (type: double)
+                      expressions: _col0 (type: int), _col1 (type: int), (UDFToDouble(_col3) / _col4) (type: double), CASE WHEN (((UDFToDouble(_col3) / _col4) = 0)) THEN (null) ELSE ((power(((_col5 - ((_col6 * _col6) / _col4)) / CASE WHEN ((_col4 = 1L)) THEN (null) ELSE ((_col4 - 1)) END), 0.5) / (UDFToDouble(_col3) / _col4))) END (type: double)
                       outputColumnNames: _col0, _col1, _col2, _col3
                       Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
                       Reduce Output Operator
@@ -1024,10 +1024,10 @@ STAGE PLANS:
                   outputColumnNames: _col0, _col1, _col3, _col4, _col5, _col6
                   Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
                   Filter Operator
-                    predicate: CASE WHEN (((_col3 / _col4) = 0)) THEN (false) ELSE (((power(((_col5 - ((_col6 * _col6) / _col4)) / CASE WHEN ((_col4 = 1L)) THEN (null) ELSE ((_col4 - 1)) END), 0.5) / (_col3 / _col4)) > 1.0D)) END (type: boolean)
+                    predicate: CASE WHEN (((UDFToDouble(_col3) / _col4) = 0)) THEN (false) ELSE (((power(((_col5 - ((_col6 * _col6) / _col4)) / CASE WHEN ((_col4 = 1L)) THEN (null) ELSE ((_col4 - 1)) END), 0.5) / (UDFToDouble(_col3) / _col4)) > 1.0D)) END (type: boolean)
                     Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
                     Select Operator
-                      expressions: _col0 (type: int), _col1 (type: int), (_col3 / _col4) (type: double), CASE WHEN (((_col3 / _col4) = 0)) THEN (null) ELSE ((power(((_col5 - ((_col6 * _col6) / _col4)) / CASE WHEN ((_col4 = 1L)) THEN (null) ELSE ((_col4 - 1)) END), 0.5) / (_col3 / _col4))) END (type: double)
+                      expressions: _col0 (type: int), _col1 (type: int), (UDFToDouble(_col3) / _col4) (type: double), CASE WHEN (((UDFToDouble(_col3) / _col4) = 0)) THEN (null) ELSE ((power(((_col5 - ((_col6 * _col6) / _col4)) / CASE WHEN ((_col4 = 1L)) THEN (null) ELSE ((_col4 - 1)) END), 0.5) / (UDFToDouble(_col3) / _col4))) END (type: double)
                       outputColumnNames: _col0, _col1, _col2, _col3
                       Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
                       Reduce Output Operator

http://git-wip-us.apache.org/repos/asf/hive/blob/649d7c12/ql/src/test/results/clientpositive/spark/parquet_vectorization_0.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/parquet_vectorization_0.q.out b/ql/src/test/results/clientpositive/spark/parquet_vectorization_0.q.out
index 9b34b25..268790a 100644
--- a/ql/src/test/results/clientpositive/spark/parquet_vectorization_0.q.out
+++ b/ql/src/test/results/clientpositive/spark/parquet_vectorization_0.q.out
@@ -440,7 +440,7 @@ STAGE PLANS:
                 outputColumnNames: _col0, _col1, _col2, _col3
                 Statistics: Num rows: 1 Data size: 32 Basic stats: COMPLETE Column stats: NONE
                 Select Operator
-                  expressions: (_col0 / _col1) (type: double), ((_col2 - ((_col3 * _col3) / _col1)) / _col1) (type: double), ((_col2 - ((_col3 * _col3) / _col1)) / CASE WHEN ((_col1 = 1L)) THEN (null) ELSE ((_col1 - 1)) END) (type: double), power(((_col2 - ((_col3 * _col3) / _col1)) / _col1), 0.5) (type: double), power(((_col2 - ((_col3 * _col3) / _col1)) / CASE WHEN ((_col1 = 1L)) THEN (null) ELSE ((_col1 - 1)) END), 0.5) (type: double)
+                  expressions: (UDFToDouble(_col0) / _col1) (type: double), ((_col2 - ((_col3 * _col3) / _col1)) / _col1) (type: double), ((_col2 - ((_col3 * _col3) / _col1)) / CASE WHEN ((_col1 = 1L)) THEN (null) ELSE ((_col1 - 1)) END) (type: double), power(((_col2 - ((_col3 * _col3) / _col1)) / _col1), 0.5) (type: double), power(((_col2 - ((_col3 * _col3) / _col1)) / CASE WHEN ((_col1 = 1L)) THEN (null) ELSE ((_col1 - 1)) END), 0.5) (type: double)
                   outputColumnNames: _col0, _col1, _col3, _col4, _col7
                   Statistics: Num rows: 1 Data size: 32 Basic stats: COMPLETE Column stats: NONE
                   Reduce Output Operator
@@ -946,7 +946,7 @@ STAGE PLANS:
                 outputColumnNames: _col0, _col1, _col2, _col3
                 Statistics: Num rows: 1 Data size: 32 Basic stats: COMPLETE Column stats: NONE
                 Select Operator
-                  expressions: (_col0 / _col1) (type: double), ((_col2 - ((_col3 * _col3) / _col1)) / _col1) (type: double), ((_col2 - ((_col3 * _col3) / _col1)) / CASE WHEN ((_col1 = 1L)) THEN (null) ELSE ((_col1 - 1)) END) (type: double), power(((_col2 - ((_col3 * _col3) / _col1)) / _col1), 0.5) (type: double), power(((_col2 - ((_col3 * _col3) / _col1)) / CASE WHEN ((_col1 = 1L)) THEN (null) ELSE ((_col1 - 1)) END), 0.5) (type: double)
+                  expressions: (UDFToDouble(_col0) / _col1) (type: double), ((_col2 - ((_col3 * _col3) / _col1)) / _col1) (type: double), ((_col2 - ((_col3 * _col3) / _col1)) / CASE WHEN ((_col1 = 1L)) THEN (null) ELSE ((_col1 - 1)) END) (type: double), power(((_col2 - ((_col3 * _col3) / _col1)) / _col1), 0.5) (type: double), power(((_col2 - ((_col3 * _col3) / _col1)) / CASE WHEN ((_col1 = 1L)) THEN (null) ELSE ((_col1 - 1)) END), 0.5) (type: double)
                   outputColumnNames: _col0, _col1, _col3, _col4, _col7
                   Statistics: Num rows: 1 Data size: 32 Basic stats: COMPLETE Column stats: NONE
                   Reduce Output Operator
@@ -1678,13 +1678,13 @@ STAGE PLANS:
                 outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6
                 Statistics: Num rows: 1 Data size: 52 Basic stats: COMPLETE Column stats: NONE
                 Select Operator
-                  expressions: (_col0 / _col1) (type: double), (- (_col0 / _col1)) (type: double), (-6432.0D + (_col0 / _col1)) (type: double), power(((_col2 - ((_col3 * _col3) / _col1)) / _col1), 0.5) (type: double), (- (-6432.0D + (_col0 / _col1))) (type: double), ((- (-6432.0D + (_col0 / _col1))) + (-6432.0D + (_col0 / _col1))) (type: double), ((_col2 - ((_col3 * _col3) / _col1)) / CASE WHEN ((_col1 = 1L)) THEN (null) ELSE ((_col1 - 1)) END) (type: double), (- (-6432.0D + (_col0 / _col1))) (type: double), (-6432.0D + (- (-6432.0D + (_col0 / _col1)))) (type: double), (- (-6432.0D + (_col0 / _col1))) (type: double), ((- (-6432.0D + (_col0 / _col1))) / (- (-6432.0D + (_col0 / _col1)))) (type: double), _col4 (type: bigint), _col5 (type: double), (((_col2 - ((_col3 * _col3) / _col1)) / CASE WHEN ((_col1 = 1L)) THEN (null) ELSE ((_col1 - 1)) END) % power(((_col2 - ((_col3 * _col3) / _col1)) / _col1), 0.5)) (type: double), (- ((_col2 - ((_col3 * _col3) / _col1)) / CASE WHEN ((_col1 = 1L
 )) THEN (null) ELSE ((_col1 - 1)) END)) (type: double), ((- (-6432.0D + (_col0 / _col1))) * (- (_col0 / _col1))) (type: double), _col6 (type: tinyint), (- _col6) (type: tinyint)
+                  expressions: (UDFToDouble(_col0) / _col1) (type: double), (- (UDFToDouble(_col0) / _col1)) (type: double), (-6432.0D + (UDFToDouble(_col0) / _col1)) (type: double), power(((_col2 - ((_col3 * _col3) / _col1)) / _col1), 0.5) (type: double), (- (-6432.0D + (UDFToDouble(_col0) / _col1))) (type: double), ((- (-6432.0D + (UDFToDouble(_col0) / _col1))) + (-6432.0D + (UDFToDouble(_col0) / _col1))) (type: double), ((_col2 - ((_col3 * _col3) / _col1)) / CASE WHEN ((_col1 = 1L)) THEN (null) ELSE ((_col1 - 1)) END) (type: double), (- (-6432.0D + (UDFToDouble(_col0) / _col1))) (type: double), (-6432.0D + (- (-6432.0D + (UDFToDouble(_col0) / _col1)))) (type: double), (- (-6432.0D + (UDFToDouble(_col0) / _col1))) (type: double), ((- (-6432.0D + (UDFToDouble(_col0) / _col1))) / (- (-6432.0D + (UDFToDouble(_col0) / _col1)))) (type: double), _col4 (type: bigint), _col5 (type: double), (((_col2 - ((_col3 * _col3) / _col1)) / CASE WHEN ((_col1 = 1L)) THEN (null) ELSE ((_col1 - 1)) END
 ) % power(((_col2 - ((_col3 * _col3) / _col1)) / _col1), 0.5)) (type: double), (- ((_col2 - ((_col3 * _col3) / _col1)) / CASE WHEN ((_col1 = 1L)) THEN (null) ELSE ((_col1 - 1)) END)) (type: double), ((- (-6432.0D + (UDFToDouble(_col0) / _col1))) * (- (UDFToDouble(_col0) / _col1))) (type: double), _col6 (type: tinyint), (- _col6) (type: tinyint)
                   outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13, _col14, _col15, _col16, _col17
                   Select Vectorization:
                       className: VectorSelectOperator
                       native: true
-                      projectedOutputColumnNums: [7, 9, 10, 8, 11, 13, 14, 12, 19, 18, 22, 4, 5, 25, 20, 28, 6, 27]
-                      selectExpressions: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 7:double, DoubleColUnaryMinus(col 8:double)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 8:double) -> 9:double, DoubleScalarAddDoubleColumn(val -6432.0, col 8:double)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 8:double) -> 10:double, FuncPowerDoubleToDouble(col 11:double)(children: DoubleColDivideLongColumn(col 8:double, col 1:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 11:double)(children: DoubleColDivideLongColumn(col 8:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 8:double) -> 11:double) -> 8:double) -> 11:double) -> 8:double, DoubleColUnaryMinus(col 12:double)(children: DoubleScalarAddDoubleColumn(val -6432.0, col 11:double)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 11:double) -> 12:double) -> 11:double, DoubleColAddDoubleColumn(col 12:double, col 14:do
 uble)(children: DoubleColUnaryMinus(col 13:double)(children: DoubleScalarAddDoubleColumn(val -6432.0, col 12:double)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 12:double) -> 13:double) -> 12:double, DoubleScalarAddDoubleColumn(val -6432.0, col 13:double)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 13:double) -> 14:double) -> 13:double, DoubleColDivideLongColumn(col 12:double, col 17:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 14:double)(children: DoubleColDivideLongColumn(col 12:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 12:double) -> 14:double) -> 12:double, IfExprNullCondExpr(col 15:boolean, null, col 16:bigint)(children: LongColEqualLongScalar(col 1:bigint, val 1) -> 15:boolean, LongColSubtractLongScalar(col 1:bigint, val 1) -> 16:bigint) -> 17:bigint) -> 14:double, DoubleColUnaryMinus(col 18:double)(children: DoubleScalarAddDoubleColumn(val -6432.0, col 12:double)(c
 hildren: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 12:double) -> 18:double) -> 12:double, DoubleScalarAddDoubleColumn(val -6432.0, col 18:double)(children: DoubleColUnaryMinus(col 19:double)(children: DoubleScalarAddDoubleColumn(val -6432.0, col 18:double)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 18:double) -> 19:double) -> 18:double) -> 19:double, DoubleColUnaryMinus(col 20:double)(children: DoubleScalarAddDoubleColumn(val -6432.0, col 18:double)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 18:double) -> 20:double) -> 18:double, DoubleColDivideDoubleColumn(col 20:double, col 21:double)(children: DoubleColUnaryMinus(col 21:double)(children: DoubleScalarAddDoubleColumn(val -6432.0, col 20:double)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 20:double) -> 21:double) -> 20:double, DoubleColUnaryMinus(col 22:double)(children: DoubleScalarAddDoubleColumn(val -6432.0, col 21:double)(children: LongColDivideLongCol
 umn(col 0:bigint, col 1:bigint) -> 21:double) -> 22:double) -> 21:double) -> 22:double, DoubleColModuloDoubleColumn(col 21:double, col 20:double)(children: DoubleColDivideLongColumn(col 20:double, col 24:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 21:double)(children: DoubleColDivideLongColumn(col 20:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 20:double) -> 21:double) -> 20:double, IfExprNullCondExpr(col 17:boolean, null, col 23:bigint)(children: LongColEqualLongScalar(col 1:bigint, val 1) -> 17:boolean, LongColSubtractLongScalar(col 1:bigint, val 1) -> 23:bigint) -> 24:bigint) -> 21:double, FuncPowerDoubleToDouble(col 25:double)(children: DoubleColDivideLongColumn(col 20:double, col 1:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 25:double)(children: DoubleColDivideLongColumn(col 20:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 20:double) -> 25:d
 ouble) -> 20:double) -> 25:double) -> 20:double) -> 25:double, DoubleColUnaryMinus(col 21:double)(children: DoubleColDivideLongColumn(col 20:double, col 27:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 21:double)(children: DoubleColDivideLongColumn(col 20:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 20:double) -> 21:double) -> 20:double, IfExprNullCondExpr(col 24:boolean, null, col 26:bigint)(children: LongColEqualLongScalar(col 1:bigint, val 1) -> 24:boolean, LongColSubtractLongScalar(col 1:bigint, val 1) -> 26:bigint) -> 27:bigint) -> 21:double) -> 20:double, DoubleColMultiplyDoubleColumn(col 21:double, col 29:double)(children: DoubleColUnaryMinus(col 28:double)(children: DoubleScalarAddDoubleColumn(val -6432.0, col 21:double)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 21:double) -> 28:double) -> 21:double, DoubleColUnaryMinus(col 28:double)(children: LongColDivideLongColumn(col 0:bigint, col
  1:bigint) -> 28:double) -> 29:double) -> 28:double, LongColUnaryMinus(col 6:tinyint) -> 27:tinyint
+                      projectedOutputColumnNums: [8, 7, 9, 10, 12, 14, 13, 18, 11, 20, 19, 4, 5, 25, 21, 29, 6, 27]
+                      selectExpressions: DoubleColDivideLongColumn(col 7:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 7:double) -> 8:double, DoubleColUnaryMinus(col 9:double)(children: DoubleColDivideLongColumn(col 7:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 7:double) -> 9:double) -> 7:double, DoubleScalarAddDoubleColumn(val -6432.0, col 10:double)(children: DoubleColDivideLongColumn(col 9:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 9:double) -> 10:double) -> 9:double, FuncPowerDoubleToDouble(col 11:double)(children: DoubleColDivideLongColumn(col 10:double, col 1:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 11:double)(children: DoubleColDivideLongColumn(col 10:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 10:double) -> 11:double) -> 10:double) -> 11:double) -> 10:double, DoubleColUnaryMinus(col 11:double)(children: DoubleScalarAddDoubleColumn(val -64
 32.0, col 12:double)(children: DoubleColDivideLongColumn(col 11:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 11:double) -> 12:double) -> 11:double) -> 12:double, DoubleColAddDoubleColumn(col 13:double, col 11:double)(children: DoubleColUnaryMinus(col 11:double)(children: DoubleScalarAddDoubleColumn(val -6432.0, col 13:double)(children: DoubleColDivideLongColumn(col 11:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 11:double) -> 13:double) -> 11:double) -> 13:double, DoubleScalarAddDoubleColumn(val -6432.0, col 14:double)(children: DoubleColDivideLongColumn(col 11:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 11:double) -> 14:double) -> 11:double) -> 14:double, DoubleColDivideLongColumn(col 11:double, col 17:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 13:double)(children: DoubleColDivideLongColumn(col 11:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 11:doub
 le) -> 13:double) -> 11:double, IfExprNullCondExpr(col 15:boolean, null, col 16:bigint)(children: LongColEqualLongScalar(col 1:bigint, val 1) -> 15:boolean, LongColSubtractLongScalar(col 1:bigint, val 1) -> 16:bigint) -> 17:bigint) -> 13:double, DoubleColUnaryMinus(col 11:double)(children: DoubleScalarAddDoubleColumn(val -6432.0, col 18:double)(children: DoubleColDivideLongColumn(col 11:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 11:double) -> 18:double) -> 11:double) -> 18:double, DoubleScalarAddDoubleColumn(val -6432.0, col 19:double)(children: DoubleColUnaryMinus(col 11:double)(children: DoubleScalarAddDoubleColumn(val -6432.0, col 19:double)(children: DoubleColDivideLongColumn(col 11:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 11:double) -> 19:double) -> 11:double) -> 19:double) -> 11:double, DoubleColUnaryMinus(col 19:double)(children: DoubleScalarAddDoubleColumn(val -6432.0, col 20:double)(children: DoubleColDivideLongColumn(col 19:d
 ouble, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 19:double) -> 20:double) -> 19:double) -> 20:double, DoubleColDivideDoubleColumn(col 21:double, col 22:double)(children: DoubleColUnaryMinus(col 19:double)(children: DoubleScalarAddDoubleColumn(val -6432.0, col 21:double)(children: DoubleColDivideLongColumn(col 19:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 19:double) -> 21:double) -> 19:double) -> 21:double, DoubleColUnaryMinus(col 19:double)(children: DoubleScalarAddDoubleColumn(val -6432.0, col 22:double)(children: DoubleColDivideLongColumn(col 19:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 19:double) -> 22:double) -> 19:double) -> 22:double) -> 19:double, DoubleColModuloDoubleColumn(col 22:double, col 21:double)(children: DoubleColDivideLongColumn(col 21:double, col 24:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 22:double)(children: DoubleColDivideLongColumn(col 21:double, col 1:bigint)(children: Dou
 bleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 21:double) -> 22:double) -> 21:double, IfExprNullCondExpr(col 17:boolean, null, col 23:bigint)(children: LongColEqualLongScalar(col 1:bigint, val 1) -> 17:boolean, LongColSubtractLongScalar(col 1:bigint, val 1) -> 23:bigint) -> 24:bigint) -> 22:double, FuncPowerDoubleToDouble(col 25:double)(children: DoubleColDivideLongColumn(col 21:double, col 1:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 25:double)(children: DoubleColDivideLongColumn(col 21:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 21:double) -> 25:double) -> 21:double) -> 25:double) -> 21:double) -> 25:double, DoubleColUnaryMinus(col 22:double)(children: DoubleColDivideLongColumn(col 21:double, col 27:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 22:double)(children: DoubleColDivideLongColumn(col 21:double, col 1:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:d
 ouble) -> 21:double) -> 22:double) -> 21:double, IfExprNullCondExpr(col 24:boolean, null, col 26:bigint)(children: LongColEqualLongScalar(col 1:bigint, val 1) -> 24:boolean, LongColSubtractLongScalar(col 1:bigint, val 1) -> 26:bigint) -> 27:bigint) -> 22:double) -> 21:double, DoubleColMultiplyDoubleColumn(col 28:double, col 22:double)(children: DoubleColUnaryMinus(col 22:double)(children: DoubleScalarAddDoubleColumn(val -6432.0, col 28:double)(children: DoubleColDivideLongColumn(col 22:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 22:double) -> 28:double) -> 22:double) -> 28:double, DoubleColUnaryMinus(col 29:double)(children: DoubleColDivideLongColumn(col 22:double, col 1:bigint)(children: CastLongToDouble(col 0:bigint) -> 22:double) -> 29:double) -> 22:double) -> 29:double, LongColUnaryMinus(col 6:tinyint) -> 27:tinyint
                   Statistics: Num rows: 1 Data size: 52 Basic stats: COMPLETE Column stats: NONE
                   File Output Operator
                     compressed: false

http://git-wip-us.apache.org/repos/asf/hive/blob/649d7c12/ql/src/test/results/clientpositive/spark/parquet_vectorization_2.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/parquet_vectorization_2.q.out b/ql/src/test/results/clientpositive/spark/parquet_vectorization_2.q.out
index e5a8209..390b1df 100644
--- a/ql/src/test/results/clientpositive/spark/parquet_vectorization_2.q.out
+++ b/ql/src/test/results/clientpositive/spark/parquet_vectorization_2.q.out
@@ -151,13 +151,13 @@ STAGE PLANS:
                 outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9
                 Statistics: Num rows: 1 Data size: 76 Basic stats: COMPLETE Column stats: NONE
                 Select Operator
-                  expressions: (_col0 / _col1) (type: double), ((_col0 / _col1) % -563.0D) (type: double), ((_col0 / _col1) + 762.0D) (type: double), _col2 (type: double), ((_col3 - ((_col4 * _col4) / _col5)) / _col5) (type: double), (- ((_col3 - ((_col4 * _col4) / _col5)) / _col5)) (type: double), (_col2 - (_col0 / _col1)) (type: double), _col6 (type: bigint), (- (_col2 - (_col0 / _col1))) (type: double), (((_col3 - ((_col4 * _col4) / _col5)) / _col5) - 762.0D) (type: double), _col7 (type: tinyint), ((- ((_col3 - ((_col4 * _col4) / _col5)) / _col5)) + UDFToDouble(_col7)) (type: double), (_col8 / _col9) (type: double), (((- ((_col3 - ((_col4 * _col4) / _col5)) / _col5)) + UDFToDouble(_col7)) - _col2) (type: double)
+                  expressions: (UDFToDouble(_col0) / _col1) (type: double), ((UDFToDouble(_col0) / _col1) % -563.0D) (type: double), ((UDFToDouble(_col0) / _col1) + 762.0D) (type: double), _col2 (type: double), ((_col3 - ((_col4 * _col4) / _col5)) / _col5) (type: double), (- ((_col3 - ((_col4 * _col4) / _col5)) / _col5)) (type: double), (_col2 - (UDFToDouble(_col0) / _col1)) (type: double), _col6 (type: bigint), (- (_col2 - (UDFToDouble(_col0) / _col1))) (type: double), (((_col3 - ((_col4 * _col4) / _col5)) / _col5) - 762.0D) (type: double), _col7 (type: tinyint), ((- ((_col3 - ((_col4 * _col4) / _col5)) / _col5)) + UDFToDouble(_col7)) (type: double), (_col8 / _col9) (type: double), (((- ((_col3 - ((_col4 * _col4) / _col5)) / _col5)) + UDFToDouble(_col7)) - _col2) (type: double)
                   outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13
                   Select Vectorization:
                       className: VectorSelectOperator
                       native: true
-                      projectedOutputColumnNums: [10, 12, 13, 2, 14, 11, 16, 6, 15, 17, 7, 20, 18, 19]
-                      selectExpressions: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 10:double, DoubleColModuloDoubleScalar(col 11:double, val -563.0)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 11:double) -> 12:double, DoubleColAddDoubleScalar(col 11:double, val 762.0)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 11:double) -> 13:double, DoubleColDivideLongColumn(col 11:double, col 5:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 14:double)(children: DoubleColDivideLongColumn(col 11:double, col 5:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 11:double) -> 14:double) -> 11:double) -> 14:double, DoubleColUnaryMinus(col 15:double)(children: DoubleColDivideLongColumn(col 11:double, col 5:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 15:double)(children: DoubleColDivideLongColumn(col 11:double, col 5:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col
  4:double) -> 11:double) -> 15:double) -> 11:double) -> 15:double) -> 11:double, DoubleColSubtractDoubleColumn(col 2:double, col 15:double)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 15:double) -> 16:double, DoubleColUnaryMinus(col 17:double)(children: DoubleColSubtractDoubleColumn(col 2:double, col 15:double)(children: LongColDivideLongColumn(col 0:bigint, col 1:bigint) -> 15:double) -> 17:double) -> 15:double, DoubleColSubtractDoubleScalar(col 18:double, val 762.0)(children: DoubleColDivideLongColumn(col 17:double, col 5:bigint)(children: DoubleColSubtractDoubleColumn(col 3:double, col 18:double)(children: DoubleColDivideLongColumn(col 17:double, col 5:bigint)(children: DoubleColMultiplyDoubleColumn(col 4:double, col 4:double) -> 17:double) -> 18:double) -> 17:double) -> 18:double) -> 17:double, DoubleColAddDoubleColumn(col 18:double, col 19:double)(children: DoubleColUnaryMinus(col 19:double)(children: DoubleColDivideLongColumn(col 18:double, col 5:bigint)(c
 hildren: 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)(children: 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, 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
                   Statistics: Num rows: 1 Data size: 76 Basic stats: COMPLETE Column stats: NONE
                   File Output Operator
                     compressed: false