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:16 UTC

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

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