diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/TopNKeyOperator.java ql/src/java/org/apache/hadoop/hive/ql/exec/TopNKeyOperator.java index bd8ff6285e..dd66dfcd72 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/TopNKeyOperator.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/TopNKeyOperator.java @@ -79,7 +79,7 @@ protected void initializeOp(Configuration hconf) throws HiveException { partitionKeyObjectInspectors, partitionCurrentKeyObjectInspectors); keyWrapperComparator = new KeyWrapperComparator( - keyObjectInspectors, currentKeyObjectInspectors, columnSortOrder.toString(), nullSortOrder.toString()); + keyObjectInspectors, currentKeyObjectInspectors, columnSortOrder, nullSortOrder); this.topNKeyFilters = new HashMap<>(); } diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorTopNKeyOperator.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorTopNKeyOperator.java index f03d65030d..7feadd3137 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorTopNKeyOperator.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorTopNKeyOperator.java @@ -17,9 +17,15 @@ */ package org.apache.hadoop.hive.ql.exec.vector; +import java.util.Comparator; +import java.util.HashMap; +import java.util.Map; + import com.google.common.annotations.VisibleForTesting; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hive.ql.CompilationOpContext; +import org.apache.hadoop.hive.ql.exec.KeyWrapper; +import org.apache.hadoop.hive.ql.exec.KeyWrapperComparator; import org.apache.hadoop.hive.ql.exec.Operator; import org.apache.hadoop.hive.ql.exec.TopNKeyFilter; import org.apache.hadoop.hive.ql.exec.TopNKeyOperator; @@ -45,8 +51,11 @@ // Batch processing private transient int[] temporarySelected; + private transient VectorHashKeyWrapperBatch partitionKeyWrapperBatch; private transient VectorHashKeyWrapperBatch keyWrappersBatch; - private transient TopNKeyFilter topNKeyFilter; + private transient Map topNKeyFilters; + private transient Comparator keyWrapperComparator; + public VectorTopNKeyOperator(CompilationOpContext ctx, OperatorDesc conf, VectorizationContext vContext, VectorDesc vectorDesc) { @@ -72,17 +81,24 @@ protected void initializeOp(Configuration hconf) throws HiveException { super.initializeOp(hconf); VectorExpression[] keyExpressions = vectorDesc.getKeyExpressions(); - VectorExpression.doTransientInit(keyExpressions, hconf); - for (VectorExpression keyExpression : keyExpressions) { - keyExpression.init(hconf); - } + initKeyExpressions(hconf, keyExpressions); + + VectorExpression[] partitionKeyExpressions = vectorDesc.getPartitionKeyColumns(); + initKeyExpressions(hconf, partitionKeyExpressions); temporarySelected = new int [VectorizedRowBatch.DEFAULT_SIZE]; keyWrappersBatch = VectorHashKeyWrapperBatch.compileKeyWrapperBatch(keyExpressions); - this.topNKeyFilter = new TopNKeyFilter(conf.getTopN(), keyWrappersBatch.getComparator( - conf.getColumnSortOrder(), - conf.getNullOrder())); + keyWrapperComparator = keyWrappersBatch.getComparator(conf.getColumnSortOrder(), conf.getNullOrder()); + partitionKeyWrapperBatch = VectorHashKeyWrapperBatch.compileKeyWrapperBatch(partitionKeyExpressions); + topNKeyFilters = new HashMap<>(); + } + + private void initKeyExpressions(Configuration hconf, VectorExpression[] keyExpressions) throws HiveException { + VectorExpression.doTransientInit(keyExpressions, hconf); + for (VectorExpression keyExpression : keyExpressions) { + keyExpression.init(hconf); + } } @Override @@ -101,6 +117,9 @@ public void process(Object data, int tag) throws HiveException { keyExpression.evaluate(batch); } + partitionKeyWrapperBatch.evaluateBatch(batch); + VectorHashKeyWrapperBase[] partitionKeyWrappers = partitionKeyWrapperBatch.getVectorHashKeyWrappers(); + keyWrappersBatch.evaluateBatch(batch); VectorHashKeyWrapperBase[] keyWrappers = keyWrappersBatch.getVectorHashKeyWrappers(); @@ -116,6 +135,12 @@ public void process(Object data, int tag) throws HiveException { } // Select a row in the priority queue + TopNKeyFilter topNKeyFilter = topNKeyFilters.get(partitionKeyWrappers[i]); + if (topNKeyFilter == null) { + topNKeyFilter = new TopNKeyFilter(conf.getTopN(), keyWrapperComparator); + topNKeyFilters.put(partitionKeyWrappers[i].copyKey(), topNKeyFilter); + } + if (topNKeyFilter.canForward(keyWrappers[i])) { selected[size++] = j; } @@ -169,8 +194,10 @@ public OperatorType getType() { @Override protected void closeOp(boolean abort) throws HiveException { - LOG.info("Closing TopNKeyFilter: {}.", topNKeyFilter); - topNKeyFilter.clear(); +// LOG.info("Closing TopNKeyFilter: {}.", topNKeyFilter); + for (TopNKeyFilter topNKeyFilter : topNKeyFilters.values()) { + topNKeyFilter.clear(); + } super.closeOp(abort); } diff --git ql/src/java/org/apache/hadoop/hive/ql/optimizer/physical/Vectorizer.java ql/src/java/org/apache/hadoop/hive/ql/optimizer/physical/Vectorizer.java index 27ff0c2484..d7d8b6fee1 100644 --- ql/src/java/org/apache/hadoop/hive/ql/optimizer/physical/Vectorizer.java +++ ql/src/java/org/apache/hadoop/hive/ql/optimizer/physical/Vectorizer.java @@ -4332,21 +4332,26 @@ private boolean usesVectorUDFAdaptor(VectorExpression[] vecExprs) { VectorTopNKeyDesc vectorTopNKeyDesc) throws HiveException { TopNKeyDesc topNKeyDesc = (TopNKeyDesc) topNKeyOperator.getConf(); + VectorExpression[] keyExpressions = getVectorExpressions(vContext, topNKeyDesc.getKeyColumns()); + VectorExpression[] partitionKeyExpressions = getVectorExpressions(vContext, topNKeyDesc.getPartitionKeyColumns()); + + vectorTopNKeyDesc.setKeyExpressions(keyExpressions); + vectorTopNKeyDesc.setPartitionKeyColumns(partitionKeyExpressions); + return OperatorFactory.getVectorOperator( + topNKeyOperator.getCompilationOpContext(), topNKeyDesc, + vContext, vectorTopNKeyDesc); + } + + private static VectorExpression[] getVectorExpressions(VectorizationContext vContext, List keyColumns) throws HiveException { VectorExpression[] keyExpressions; - // this will mark all actual computed columns vContext.markActualScratchColumns(); try { - List keyColumns = topNKeyDesc.getKeyColumns(); keyExpressions = vContext.getVectorExpressionsUpConvertDecimal64(keyColumns); fixDecimalDataTypePhysicalVariations(vContext, keyExpressions); } finally { vContext.freeMarkedScratchColumns(); } - - vectorTopNKeyDesc.setKeyExpressions(keyExpressions); - return OperatorFactory.getVectorOperator( - topNKeyOperator.getCompilationOpContext(), topNKeyDesc, - vContext, vectorTopNKeyDesc); + return keyExpressions; } private static Class findVecAggrClass( diff --git ql/src/java/org/apache/hadoop/hive/ql/plan/VectorTopNKeyDesc.java ql/src/java/org/apache/hadoop/hive/ql/plan/VectorTopNKeyDesc.java index 9a266a0c57..ee5229368e 100644 --- ql/src/java/org/apache/hadoop/hive/ql/plan/VectorTopNKeyDesc.java +++ ql/src/java/org/apache/hadoop/hive/ql/plan/VectorTopNKeyDesc.java @@ -25,6 +25,7 @@ private static final long serialVersionUID = 1L; private VectorExpression[] keyExpressions; + private VectorExpression[] partitionKeyColumns; public VectorTopNKeyDesc() { } @@ -36,4 +37,12 @@ public VectorTopNKeyDesc() { public void setKeyExpressions(VectorExpression[] keyExpressions) { this.keyExpressions = keyExpressions; } + + public VectorExpression[] getPartitionKeyColumns() { + return partitionKeyColumns; + } + + public void setPartitionKeyColumns(VectorExpression[] partitionKeyColumns) { + this.partitionKeyColumns = partitionKeyColumns; + } } diff --git ql/src/test/queries/clientpositive/subquery_in.q ql/src/test/queries/clientpositive/subquery_in.q index 96ed1bae41..a5b3ce7951 100644 --- ql/src/test/queries/clientpositive/subquery_in.q +++ ql/src/test/queries/clientpositive/subquery_in.q @@ -3,7 +3,6 @@ --! qt:dataset:lineitem set hive.mapred.mode=nonstrict; set hive.explain.user=false; -set hive.optimize.topnkey=false; -- SORT_QUERY_RESULTS diff --git ql/src/test/queries/clientpositive/subquery_notin.q ql/src/test/queries/clientpositive/subquery_notin.q index f25168ab77..f8636453c2 100644 --- ql/src/test/queries/clientpositive/subquery_notin.q +++ ql/src/test/queries/clientpositive/subquery_notin.q @@ -2,7 +2,6 @@ --! qt:dataset:part --! qt:dataset:lineitem set hive.mapred.mode=nonstrict; -set hive.optimize.topnkey=false; -- SORT_QUERY_RESULTS diff --git ql/src/test/queries/clientpositive/topnkey_windowing.q ql/src/test/queries/clientpositive/topnkey_windowing.q index a5352d2d6c..8ac85c6dcd 100644 --- ql/src/test/queries/clientpositive/topnkey_windowing.q +++ ql/src/test/queries/clientpositive/topnkey_windowing.q @@ -1,6 +1,5 @@ SET hive.auto.convert.join.noconditionaltask=true; SET hive.auto.convert.join.noconditionaltask.size=1431655765; -SET hive.vectorized.execution.enabled=false; CREATE TABLE topnkey_windowing (tw_code string, tw_value double); @@ -33,6 +32,23 @@ INSERT INTO topnkey_windowing VALUES ('A', 109); SET hive.optimize.topnkey=true; +SET hive.vectorized.execution.enabled=false; +EXPLAIN +SELECT tw_code, ranking +FROM ( + SELECT tw_code AS tw_code, + rank() OVER (PARTITION BY tw_code ORDER BY tw_value) AS ranking + FROM topnkey_windowing) tmp1 + WHERE ranking <= 3; + +SELECT tw_code, ranking +FROM ( + SELECT tw_code AS tw_code, + rank() OVER (PARTITION BY tw_code ORDER BY tw_value) AS ranking + FROM topnkey_windowing) tmp1 + WHERE ranking <= 3; + +SET hive.vectorized.execution.enabled=true; EXPLAIN SELECT tw_code, ranking FROM ( @@ -58,6 +74,23 @@ FROM ( SET hive.optimize.topnkey=true; +SET hive.vectorized.execution.enabled=false; +EXPLAIN extended +SELECT tw_code, ranking +FROM ( + SELECT tw_code as tw_code, + rank() OVER (ORDER BY tw_value) AS ranking + FROM topnkey_windowing) tmp1 + WHERE ranking <= 3; + +SELECT tw_code, ranking +FROM ( + SELECT tw_code as tw_code, + rank() OVER (ORDER BY tw_value) AS ranking + FROM topnkey_windowing) tmp1 + WHERE ranking <= 3; + +SET hive.vectorized.execution.enabled=true; EXPLAIN extended SELECT tw_code, ranking FROM ( @@ -84,6 +117,7 @@ FROM ( SET hive.optimize.topnkey=true; +SET hive.vectorized.execution.enabled=true; EXPLAIN SELECT tw_code, ranking FROM ( diff --git ql/src/test/queries/clientpositive/vector_windowing_streaming.q ql/src/test/queries/clientpositive/vector_windowing_streaming.q index 2f7b628db3..e1011f9949 100644 --- ql/src/test/queries/clientpositive/vector_windowing_streaming.q +++ ql/src/test/queries/clientpositive/vector_windowing_streaming.q @@ -5,7 +5,6 @@ SET hive.vectorized.execution.enabled=true; SET hive.vectorized.execution.reduce.enabled=true; set hive.vectorized.execution.ptf.enabled=true; set hive.fetch.task.conversion=none; -set hive.optimize.topnkey=false; drop table over10k_n8; diff --git ql/src/test/queries/clientpositive/windowing_filter.q ql/src/test/queries/clientpositive/windowing_filter.q index 14d0c5a7c8..2483c18416 100644 --- ql/src/test/queries/clientpositive/windowing_filter.q +++ ql/src/test/queries/clientpositive/windowing_filter.q @@ -1,6 +1,5 @@ set hive.auto.convert.join.noconditionaltask=true; set hive.auto.convert.join.noconditionaltask.size=1431655765; -set hive.optimize.topnkey=false; create table testtable_n1000 (s_state string, ss_net_profit double); diff --git ql/src/test/results/clientpositive/llap/subquery_in.q.out ql/src/test/results/clientpositive/llap/subquery_in.q.out index ea8fe5ea96..d14dbb1145 100644 --- ql/src/test/results/clientpositive/llap/subquery_in.q.out +++ ql/src/test/results/clientpositive/llap/subquery_in.q.out @@ -322,13 +322,20 @@ STAGE PLANS: TableScan alias: part Statistics: Num rows: 26 Data size: 2652 Basic stats: COMPLETE Column stats: COMPLETE - Reduce Output Operator - key expressions: p_mfgr (type: string), p_size (type: int) - null sort order: az + Top N Key Operator sort order: ++ + keys: p_mfgr (type: string), p_size (type: int) + null sort order: az Map-reduce partition columns: p_mfgr (type: string) Statistics: Num rows: 26 Data size: 2652 Basic stats: COMPLETE Column stats: COMPLETE - TopN Hash Memory Usage: 0.1 + top n: 3 + Reduce Output Operator + key expressions: p_mfgr (type: string), p_size (type: int) + null sort order: az + sort order: ++ + Map-reduce partition columns: p_mfgr (type: string) + Statistics: Num rows: 26 Data size: 2652 Basic stats: COMPLETE Column stats: COMPLETE + TopN Hash Memory Usage: 0.1 Execution mode: vectorized, llap LLAP IO: no inputs Reducer 2 @@ -510,13 +517,20 @@ STAGE PLANS: Filter Operator predicate: p_mfgr is not null (type: boolean) Statistics: Num rows: 26 Data size: 2652 Basic stats: COMPLETE Column stats: COMPLETE - Reduce Output Operator - key expressions: p_mfgr (type: string), p_size (type: int) - null sort order: az + Top N Key Operator sort order: ++ + keys: p_mfgr (type: string), p_size (type: int) + null sort order: az Map-reduce partition columns: p_mfgr (type: string) Statistics: Num rows: 26 Data size: 2652 Basic stats: COMPLETE Column stats: COMPLETE - TopN Hash Memory Usage: 0.1 + top n: 3 + Reduce Output Operator + key expressions: p_mfgr (type: string), p_size (type: int) + null sort order: az + sort order: ++ + Map-reduce partition columns: p_mfgr (type: string) + Statistics: Num rows: 26 Data size: 2652 Basic stats: COMPLETE Column stats: COMPLETE + TopN Hash Memory Usage: 0.1 Execution mode: vectorized, llap LLAP IO: no inputs Reducer 2 @@ -3434,13 +3448,19 @@ STAGE PLANS: 1 _col0 (type: int) outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8 Statistics: Num rows: 7 Data size: 4333 Basic stats: COMPLETE Column stats: COMPLETE - Reduce Output Operator - key expressions: _col3 (type: string) - null sort order: z + Top N Key Operator sort order: + + keys: _col3 (type: string) + null sort order: z Statistics: Num rows: 7 Data size: 4333 Basic stats: COMPLETE Column stats: COMPLETE - TopN Hash Memory Usage: 0.1 - value expressions: _col0 (type: int), _col1 (type: string), _col2 (type: string), _col4 (type: string), _col5 (type: int), _col6 (type: string), _col7 (type: double), _col8 (type: string) + top n: 4 + Reduce Output Operator + key expressions: _col3 (type: string) + null sort order: z + sort order: + + Statistics: Num rows: 7 Data size: 4333 Basic stats: COMPLETE Column stats: COMPLETE + TopN Hash Memory Usage: 0.1 + value expressions: _col0 (type: int), _col1 (type: string), _col2 (type: string), _col4 (type: string), _col5 (type: int), _col6 (type: string), _col7 (type: double), _col8 (type: string) Reducer 3 Execution mode: vectorized, llap Reduce Operator Tree: diff --git ql/src/test/results/clientpositive/llap/subquery_notin.q.out ql/src/test/results/clientpositive/llap/subquery_notin.q.out index c24b79db86..36cbcb7e1b 100644 --- ql/src/test/results/clientpositive/llap/subquery_notin.q.out +++ ql/src/test/results/clientpositive/llap/subquery_notin.q.out @@ -365,25 +365,39 @@ STAGE PLANS: Filter Operator predicate: p_mfgr is not null (type: boolean) Statistics: Num rows: 26 Data size: 5798 Basic stats: COMPLETE Column stats: COMPLETE - Reduce Output Operator - key expressions: p_mfgr (type: string), p_size (type: int) - null sort order: az + Top N Key Operator sort order: ++ + keys: p_mfgr (type: string), p_size (type: int) + null sort order: az Map-reduce partition columns: p_mfgr (type: string) Statistics: Num rows: 26 Data size: 5798 Basic stats: COMPLETE Column stats: COMPLETE - TopN Hash Memory Usage: 0.1 - value expressions: p_name (type: string) + top n: 3 + Reduce Output Operator + key expressions: p_mfgr (type: string), p_size (type: int) + null sort order: az + sort order: ++ + Map-reduce partition columns: p_mfgr (type: string) + Statistics: Num rows: 26 Data size: 5798 Basic stats: COMPLETE Column stats: COMPLETE + TopN Hash Memory Usage: 0.1 + value expressions: p_name (type: string) Filter Operator predicate: p_mfgr is not null (type: boolean) Statistics: Num rows: 26 Data size: 5798 Basic stats: COMPLETE Column stats: COMPLETE - Reduce Output Operator - key expressions: p_mfgr (type: string), p_size (type: int) - null sort order: az + Top N Key Operator sort order: ++ + keys: p_mfgr (type: string), p_size (type: int) + null sort order: az Map-reduce partition columns: p_mfgr (type: string) Statistics: Num rows: 26 Data size: 5798 Basic stats: COMPLETE Column stats: COMPLETE - TopN Hash Memory Usage: 0.1 - value expressions: p_name (type: string) + top n: 3 + Reduce Output Operator + key expressions: p_mfgr (type: string), p_size (type: int) + null sort order: az + sort order: ++ + Map-reduce partition columns: p_mfgr (type: string) + Statistics: Num rows: 26 Data size: 5798 Basic stats: COMPLETE Column stats: COMPLETE + TopN Hash Memory Usage: 0.1 + value expressions: p_name (type: string) Execution mode: vectorized, llap LLAP IO: no inputs Reducer 2 @@ -605,7 +619,7 @@ Manufacturer#4 almond azure aquamarine papaya violet 12 Manufacturer#5 almond antique blue firebrick mint 31 Manufacturer#5 almond aquamarine dodger light gainsboro 46 Manufacturer#5 almond azure blanched chiffon midnight 23 -Warning: Shuffle Join MERGEJOIN[48][tables = [$hdt$_0, $hdt$_1, $hdt$_2]] in Stage 'Reducer 3' is a cross product +Warning: Shuffle Join MERGEJOIN[50][tables = [$hdt$_0, $hdt$_1, $hdt$_2]] in Stage 'Reducer 3' is a cross product PREHOOK: query: explain select p_name, p_size from @@ -667,13 +681,20 @@ STAGE PLANS: TableScan alias: part Statistics: Num rows: 26 Data size: 2652 Basic stats: COMPLETE Column stats: COMPLETE - Reduce Output Operator - key expressions: p_mfgr (type: string), p_size (type: int) - null sort order: az + Top N Key Operator sort order: ++ + keys: p_mfgr (type: string), p_size (type: int) + null sort order: az Map-reduce partition columns: p_mfgr (type: string) Statistics: Num rows: 26 Data size: 2652 Basic stats: COMPLETE Column stats: COMPLETE - TopN Hash Memory Usage: 0.1 + top n: 3 + Reduce Output Operator + key expressions: p_mfgr (type: string), p_size (type: int) + null sort order: az + sort order: ++ + Map-reduce partition columns: p_mfgr (type: string) + Statistics: Num rows: 26 Data size: 2652 Basic stats: COMPLETE Column stats: COMPLETE + TopN Hash Memory Usage: 0.1 Execution mode: vectorized, llap LLAP IO: no inputs Reducer 2 @@ -857,7 +878,7 @@ STAGE PLANS: Processor Tree: ListSink -Warning: Shuffle Join MERGEJOIN[50][tables = [$hdt$_0, $hdt$_1, $hdt$_2]] in Stage 'Reducer 3' is a cross product +Warning: Shuffle Join MERGEJOIN[52][tables = [$hdt$_0, $hdt$_1, $hdt$_2]] in Stage 'Reducer 3' is a cross product PREHOOK: query: select p_name, p_size from part where part.p_size not in @@ -969,13 +990,20 @@ STAGE PLANS: Filter Operator predicate: p_mfgr is not null (type: boolean) Statistics: Num rows: 26 Data size: 2652 Basic stats: COMPLETE Column stats: COMPLETE - Reduce Output Operator - key expressions: p_mfgr (type: string), p_size (type: int) - null sort order: az + Top N Key Operator sort order: ++ + keys: p_mfgr (type: string), p_size (type: int) + null sort order: az Map-reduce partition columns: p_mfgr (type: string) Statistics: Num rows: 26 Data size: 2652 Basic stats: COMPLETE Column stats: COMPLETE - TopN Hash Memory Usage: 0.1 + top n: 3 + Reduce Output Operator + key expressions: p_mfgr (type: string), p_size (type: int) + null sort order: az + sort order: ++ + Map-reduce partition columns: p_mfgr (type: string) + Statistics: Num rows: 26 Data size: 2652 Basic stats: COMPLETE Column stats: COMPLETE + TopN Hash Memory Usage: 0.1 Execution mode: vectorized, llap LLAP IO: no inputs Reducer 2 @@ -4512,7 +4540,7 @@ POSTHOOK: Input: default@part 78486 almond azure blanched chiffon midnight Manufacturer#5 Brand#52 LARGE BRUSHED BRASS 23 MED BAG 1464.48 hely blith 85768 almond antique chartreuse lavender yellow Manufacturer#1 Brand#12 LARGE BRUSHED STEEL 34 SM BAG 1753.76 refull 90681 almond antique chartreuse khaki white Manufacturer#3 Brand#31 MEDIUM BURNISHED TIN 17 SM CASE 1671.68 are slyly after the sl -Warning: Shuffle Join MERGEJOIN[42][tables = [$hdt$_0, $hdt$_1, $hdt$_2]] in Stage 'Reducer 3' is a cross product +Warning: Shuffle Join MERGEJOIN[43][tables = [$hdt$_0, $hdt$_1, $hdt$_2]] in Stage 'Reducer 3' is a cross product PREHOOK: query: explain select * from part where (p_size-1) NOT IN (select min(p_size) from part group by p_type) order by p_brand, p_partkey limit 4 PREHOOK: type: QUERY PREHOOK: Input: default@part @@ -4615,17 +4643,23 @@ STAGE PLANS: Filter Operator predicate: ((_col12 is null or (_col9 = 0L)) and ((_col10 >= _col9) or (_col9 = 0L) or _col12 is not null or _col5 is null) and (_col5 is not null or (_col9 = 0L) or _col12 is not null)) (type: boolean) Statistics: Num rows: 33 Data size: 20987 Basic stats: COMPLETE Column stats: COMPLETE - Select Operator - expressions: _col0 (type: int), _col1 (type: string), _col2 (type: string), _col3 (type: string), _col4 (type: string), _col5 (type: int), _col6 (type: string), _col7 (type: double), _col8 (type: string) - outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8 - Statistics: Num rows: 33 Data size: 20427 Basic stats: COMPLETE Column stats: COMPLETE - Reduce Output Operator - key expressions: _col3 (type: string), _col0 (type: int) - null sort order: zz - sort order: ++ + Top N Key Operator + sort order: ++ + keys: _col3 (type: string), _col0 (type: int) + null sort order: zz + Statistics: Num rows: 33 Data size: 20987 Basic stats: COMPLETE Column stats: COMPLETE + top n: 4 + Select Operator + expressions: _col0 (type: int), _col1 (type: string), _col2 (type: string), _col3 (type: string), _col4 (type: string), _col5 (type: int), _col6 (type: string), _col7 (type: double), _col8 (type: string) + outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8 Statistics: Num rows: 33 Data size: 20427 Basic stats: COMPLETE Column stats: COMPLETE - TopN Hash Memory Usage: 0.1 - value expressions: _col1 (type: string), _col2 (type: string), _col4 (type: string), _col5 (type: int), _col6 (type: string), _col7 (type: double), _col8 (type: string) + Reduce Output Operator + key expressions: _col3 (type: string), _col0 (type: int) + null sort order: zz + sort order: ++ + Statistics: Num rows: 33 Data size: 20427 Basic stats: COMPLETE Column stats: COMPLETE + TopN Hash Memory Usage: 0.1 + value expressions: _col1 (type: string), _col2 (type: string), _col4 (type: string), _col5 (type: int), _col6 (type: string), _col7 (type: double), _col8 (type: string) Reducer 4 Execution mode: vectorized, llap Reduce Operator Tree: @@ -4721,7 +4755,7 @@ STAGE PLANS: Processor Tree: ListSink -Warning: Shuffle Join MERGEJOIN[42][tables = [$hdt$_0, $hdt$_1, $hdt$_2]] in Stage 'Reducer 3' is a cross product +Warning: Shuffle Join MERGEJOIN[43][tables = [$hdt$_0, $hdt$_1, $hdt$_2]] in Stage 'Reducer 3' is a cross product PREHOOK: query: select * from part where (p_size-1) NOT IN (select min(p_size) from part group by p_type) order by p_brand, p_partkey limit 4 PREHOOK: type: QUERY PREHOOK: Input: default@part diff --git ql/src/test/results/clientpositive/llap/topnkey_windowing.q.out ql/src/test/results/clientpositive/llap/topnkey_windowing.q.out index 52ba490c01..80aa189ef8 100644 --- ql/src/test/results/clientpositive/llap/topnkey_windowing.q.out +++ ql/src/test/results/clientpositive/llap/topnkey_windowing.q.out @@ -170,6 +170,136 @@ STAGE PLANS: Processor Tree: ListSink +PREHOOK: query: SELECT tw_code, ranking +FROM ( + SELECT tw_code AS tw_code, + rank() OVER (PARTITION BY tw_code ORDER BY tw_value) AS ranking + FROM topnkey_windowing) tmp1 + WHERE ranking <= 3 +PREHOOK: type: QUERY +PREHOOK: Input: default@topnkey_windowing +#### A masked pattern was here #### +POSTHOOK: query: SELECT tw_code, ranking +FROM ( + SELECT tw_code AS tw_code, + rank() OVER (PARTITION BY tw_code ORDER BY tw_value) AS ranking + FROM topnkey_windowing) tmp1 + WHERE ranking <= 3 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@topnkey_windowing +#### A masked pattern was here #### +NULL 1 +NULL 1 +NULL 1 +A 1 +A 1 +A 3 +B 1 +B 2 +B 2 +B 2 +PREHOOK: query: EXPLAIN +SELECT tw_code, ranking +FROM ( + SELECT tw_code AS tw_code, + rank() OVER (PARTITION BY tw_code ORDER BY tw_value) AS ranking + FROM topnkey_windowing) tmp1 + WHERE ranking <= 3 +PREHOOK: type: QUERY +PREHOOK: Input: default@topnkey_windowing +#### A masked pattern was here #### +POSTHOOK: query: EXPLAIN +SELECT tw_code, ranking +FROM ( + SELECT tw_code AS tw_code, + rank() OVER (PARTITION BY tw_code ORDER BY tw_value) AS ranking + FROM topnkey_windowing) tmp1 + WHERE ranking <= 3 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@topnkey_windowing +#### A masked pattern was here #### +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 (SIMPLE_EDGE) +#### A masked pattern was here #### + Vertices: + Map 1 + Map Operator Tree: + TableScan + alias: topnkey_windowing + Statistics: Num rows: 26 Data size: 1969 Basic stats: COMPLETE Column stats: COMPLETE + Top N Key Operator + sort order: ++ + keys: tw_code (type: string), tw_value (type: double) + null sort order: az + Map-reduce partition columns: tw_code (type: string) + Statistics: Num rows: 26 Data size: 1969 Basic stats: COMPLETE Column stats: COMPLETE + top n: 4 + Reduce Output Operator + key expressions: tw_code (type: string), tw_value (type: double) + null sort order: az + sort order: ++ + Map-reduce partition columns: tw_code (type: string) + Statistics: Num rows: 26 Data size: 1969 Basic stats: COMPLETE Column stats: COMPLETE + TopN Hash Memory Usage: 0.1 + Execution mode: llap + LLAP IO: no inputs + Reducer 2 + Execution mode: vectorized, llap + Reduce Operator Tree: + Select Operator + expressions: KEY.reducesinkkey0 (type: string), KEY.reducesinkkey1 (type: double) + outputColumnNames: _col0, _col1 + Statistics: Num rows: 26 Data size: 8395 Basic stats: COMPLETE Column stats: COMPLETE + PTF Operator + Function definitions: + Input definition + input alias: ptf_0 + output shape: _col0: string, _col1: double + type: WINDOWING + Windowing table definition + input alias: ptf_1 + name: windowingtablefunction + order by: _col1 ASC NULLS LAST + partition by: _col0 + raw input shape: + window functions: + window function definition + alias: rank_window_0 + arguments: _col1 + name: rank + window function: GenericUDAFRankEvaluator + window frame: ROWS PRECEDING(MAX)~FOLLOWING(MAX) + isPivotResult: true + Statistics: Num rows: 26 Data size: 8395 Basic stats: COMPLETE Column stats: COMPLETE + Filter Operator + predicate: (rank_window_0 <= 3) (type: boolean) + Statistics: Num rows: 8 Data size: 2346 Basic stats: COMPLETE Column stats: COMPLETE + Select Operator + expressions: _col0 (type: string), rank_window_0 (type: int) + outputColumnNames: _col0, _col1 + Statistics: Num rows: 8 Data size: 202 Basic stats: COMPLETE Column stats: COMPLETE + File Output Operator + compressed: false + Statistics: Num rows: 8 Data size: 202 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 tw_code, ranking FROM ( SELECT tw_code AS tw_code, @@ -406,6 +536,207 @@ STAGE PLANS: Processor Tree: ListSink +PREHOOK: query: SELECT tw_code, ranking +FROM ( + SELECT tw_code as tw_code, + rank() OVER (ORDER BY tw_value) AS ranking + FROM topnkey_windowing) tmp1 + WHERE ranking <= 3 +PREHOOK: type: QUERY +PREHOOK: Input: default@topnkey_windowing +#### A masked pattern was here #### +POSTHOOK: query: SELECT tw_code, ranking +FROM ( + SELECT tw_code as tw_code, + rank() OVER (ORDER BY tw_value) AS ranking + FROM topnkey_windowing) tmp1 + WHERE ranking <= 3 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@topnkey_windowing +#### A masked pattern was here #### +A 1 +A 1 +A 3 +PREHOOK: query: EXPLAIN extended +SELECT tw_code, ranking +FROM ( + SELECT tw_code as tw_code, + rank() OVER (ORDER BY tw_value) AS ranking + FROM topnkey_windowing) tmp1 + WHERE ranking <= 3 +PREHOOK: type: QUERY +PREHOOK: Input: default@topnkey_windowing +#### A masked pattern was here #### +POSTHOOK: query: EXPLAIN extended +SELECT tw_code, ranking +FROM ( + SELECT tw_code as tw_code, + rank() OVER (ORDER BY tw_value) AS ranking + FROM topnkey_windowing) tmp1 + WHERE ranking <= 3 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@topnkey_windowing +#### A masked pattern was here #### +OPTIMIZED SQL: SELECT * +FROM (SELECT `tw_code`, RANK() OVER (PARTITION BY 0 ORDER BY `tw_value` ROWS BETWEEN 2147483647 FOLLOWING AND 2147483647 PRECEDING) AS `rank_window_0` +FROM `default`.`topnkey_windowing`) AS `t` +WHERE `rank_window_0` <= 3 +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 (SIMPLE_EDGE) +#### A masked pattern was here #### + Vertices: + Map 1 + Map Operator Tree: + TableScan + alias: topnkey_windowing + Statistics: Num rows: 26 Data size: 1969 Basic stats: COMPLETE Column stats: COMPLETE + GatherStats: false + Top N Key Operator + sort order: + + keys: tw_value (type: double) + null sort order: z + Statistics: Num rows: 26 Data size: 1969 Basic stats: COMPLETE Column stats: COMPLETE + top n: 4 + Reduce Output Operator + key expressions: 0 (type: int), tw_value (type: double) + null sort order: az + sort order: ++ + Map-reduce partition columns: 0 (type: int) + Statistics: Num rows: 26 Data size: 1969 Basic stats: COMPLETE Column stats: COMPLETE + tag: -1 + TopN: 4 + TopN Hash Memory Usage: 0.1 + value expressions: tw_code (type: string) + auto parallelism: true + Execution mode: llap + LLAP IO: no inputs + Path -> Alias: +#### A masked pattern was here #### + Path -> Partition: +#### A masked pattern was here #### + Partition + base file name: topnkey_windowing + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + properties: + COLUMN_STATS_ACCURATE {"BASIC_STATS":"true","COLUMN_STATS":{"tw_code":"true","tw_value":"true"}} + bucket_count -1 + bucketing_version 2 + column.name.delimiter , + columns tw_code,tw_value + columns.comments + columns.types string:double +#### A masked pattern was here #### + name default.topnkey_windowing + numFiles 1 + numRows 26 + rawDataSize 176 + serialization.ddl struct topnkey_windowing { string tw_code, double tw_value} + serialization.format 1 + serialization.lib org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + totalSize 202 +#### A masked pattern was here #### + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + properties: + COLUMN_STATS_ACCURATE {"BASIC_STATS":"true","COLUMN_STATS":{"tw_code":"true","tw_value":"true"}} + bucket_count -1 + bucketing_version 2 + column.name.delimiter , + columns tw_code,tw_value + columns.comments + columns.types string:double +#### A masked pattern was here #### + name default.topnkey_windowing + numFiles 1 + numRows 26 + rawDataSize 176 + serialization.ddl struct topnkey_windowing { string tw_code, double tw_value} + serialization.format 1 + serialization.lib org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + totalSize 202 +#### A masked pattern was here #### + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + name: default.topnkey_windowing + name: default.topnkey_windowing + Truncated Path -> Alias: + /topnkey_windowing [topnkey_windowing] + Reducer 2 + Execution mode: vectorized, llap + Needs Tagging: false + Reduce Operator Tree: + Select Operator + expressions: VALUE._col0 (type: string), KEY.reducesinkkey1 (type: double) + outputColumnNames: _col0, _col1 + Statistics: Num rows: 26 Data size: 8395 Basic stats: COMPLETE Column stats: COMPLETE + PTF Operator + Function definitions: + Input definition + input alias: ptf_0 + output shape: _col0: string, _col1: double + type: WINDOWING + Windowing table definition + input alias: ptf_1 + name: windowingtablefunction + order by: _col1 ASC NULLS LAST + partition by: 0 + raw input shape: + window functions: + window function definition + alias: rank_window_0 + arguments: _col1 + name: rank + window function: GenericUDAFRankEvaluator + window frame: ROWS PRECEDING(MAX)~FOLLOWING(MAX) + isPivotResult: true + Statistics: Num rows: 26 Data size: 8395 Basic stats: COMPLETE Column stats: COMPLETE + Filter Operator + isSamplingPred: false + predicate: (rank_window_0 <= 3) (type: boolean) + Statistics: Num rows: 8 Data size: 2346 Basic stats: COMPLETE Column stats: COMPLETE + Select Operator + expressions: _col0 (type: string), rank_window_0 (type: int) + outputColumnNames: _col0, _col1 + Statistics: Num rows: 8 Data size: 202 Basic stats: COMPLETE Column stats: COMPLETE + File Output Operator + compressed: false + GlobalTableId: 0 +#### A masked pattern was here #### + NumFilesPerFileSink: 1 + Statistics: Num rows: 8 Data size: 202 Basic stats: COMPLETE Column stats: COMPLETE +#### A masked pattern was here #### + table: + input format: org.apache.hadoop.mapred.SequenceFileInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat + properties: + columns _col0,_col1 + columns.types string:int + escape.delim \ + hive.serialization.extend.additional.nesting.levels true + serialization.escape.crlf true + serialization.format 1 + serialization.lib org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + TotalFiles: 1 + GatherStats: false + MultiFileSpray: false + + Stage: Stage-0 + Fetch Operator + limit: -1 + Processor Tree: + ListSink + PREHOOK: query: SELECT tw_code, ranking FROM ( SELECT tw_code as tw_code, @@ -502,7 +833,7 @@ STAGE PLANS: Execution mode: llap LLAP IO: no inputs Reducer 2 - Execution mode: llap + Execution mode: vectorized, llap Reduce Operator Tree: Select Operator expressions: KEY.reducesinkkey0 (type: string), KEY.reducesinkkey1 (type: double) diff --git ql/src/test/results/clientpositive/llap/vector_case_when_conversion.q.out ql/src/test/results/clientpositive/llap/vector_case_when_conversion.q.out index 74899062a5..9faab38e19 100644 --- ql/src/test/results/clientpositive/llap/vector_case_when_conversion.q.out +++ ql/src/test/results/clientpositive/llap/vector_case_when_conversion.q.out @@ -217,8 +217,8 @@ STAGE PLANS: Select Vectorization: className: VectorSelectOperator native: true - projectedOutputColumnNums: [6, 2, 4, 1, 29] - selectExpressions: VectorUDFAdaptor(CASE WHEN (cstring1 is not null) THEN (cstring1) WHEN (cint is not null) THEN (CAST( cint AS STRING)) WHEN (cfloat is not null) THEN (CAST( cfloat AS STRING)) WHEN (csmallint is not null) THEN (CAST( csmallint AS STRING)) ELSE ('none') END)(children: VectorUDFAdaptor(cstring1 is not null) -> 22:boolean, VectorUDFAdaptor(cint is not null) -> 23:boolean, VectorUDFAdaptor(CAST( cint AS STRING)) -> 24:string, VectorUDFAdaptor(cfloat is not null) -> 25:boolean, VectorUDFAdaptor(CAST( cfloat AS STRING)) -> 26:string, VectorUDFAdaptor(csmallint is not null) -> 27:boolean, VectorUDFAdaptor(CAST( csmallint AS STRING)) -> 28:string) -> 29:string + projectedOutputColumnNums: [6, 2, 4, 1, 22] + selectExpressions: VectorUDFAdaptor(CASE WHEN (cstring1 is not null) THEN (cstring1) WHEN (cint is not null) THEN (CAST( cint AS STRING)) WHEN (cfloat is not null) THEN (CAST( cfloat AS STRING)) WHEN (csmallint is not null) THEN (CAST( csmallint AS STRING)) ELSE ('none') END)(children: VectorUDFAdaptor(cstring1 is not null) -> 14:boolean, VectorUDFAdaptor(cint is not null) -> 15:boolean, VectorUDFAdaptor(CAST( cint AS STRING)) -> 16:string, VectorUDFAdaptor(cfloat is not null) -> 17:boolean, VectorUDFAdaptor(CAST( cfloat AS STRING)) -> 18:string, VectorUDFAdaptor(csmallint is not null) -> 19:boolean, VectorUDFAdaptor(CAST( csmallint AS STRING)) -> 20:string) -> 22:string Reduce Sink Vectorization: className: VectorReduceSinkObjectHashOperator native: true @@ -533,8 +533,8 @@ STAGE PLANS: Select Vectorization: className: VectorSelectOperator native: true - projectedOutputColumnNums: [6, 2, 4, 1, 29] - selectExpressions: VectorUDFAdaptor(CASE WHEN (cstring1 is not null) THEN (cstring1) WHEN (cint is not null) THEN (CAST( cint AS STRING)) WHEN (cfloat is not null) THEN (CAST( cfloat AS STRING)) WHEN (csmallint is not null) THEN (CAST( csmallint AS STRING)) ELSE (null) END)(children: VectorUDFAdaptor(cstring1 is not null) -> 22:boolean, VectorUDFAdaptor(cint is not null) -> 23:boolean, VectorUDFAdaptor(CAST( cint AS STRING)) -> 24:string, VectorUDFAdaptor(cfloat is not null) -> 25:boolean, VectorUDFAdaptor(CAST( cfloat AS STRING)) -> 26:string, VectorUDFAdaptor(csmallint is not null) -> 27:boolean, VectorUDFAdaptor(CAST( csmallint AS STRING)) -> 28:string) -> 29:string + projectedOutputColumnNums: [6, 2, 4, 1, 22] + selectExpressions: VectorUDFAdaptor(CASE WHEN (cstring1 is not null) THEN (cstring1) WHEN (cint is not null) THEN (CAST( cint AS STRING)) WHEN (cfloat is not null) THEN (CAST( cfloat AS STRING)) WHEN (csmallint is not null) THEN (CAST( csmallint AS STRING)) ELSE (null) END)(children: VectorUDFAdaptor(cstring1 is not null) -> 14:boolean, VectorUDFAdaptor(cint is not null) -> 15:boolean, VectorUDFAdaptor(CAST( cint AS STRING)) -> 16:string, VectorUDFAdaptor(cfloat is not null) -> 17:boolean, VectorUDFAdaptor(CAST( cfloat AS STRING)) -> 18:string, VectorUDFAdaptor(csmallint is not null) -> 19:boolean, VectorUDFAdaptor(CAST( csmallint AS STRING)) -> 20:string) -> 22:string Reduce Sink Vectorization: className: VectorReduceSinkObjectHashOperator native: true diff --git ql/src/test/results/clientpositive/llap/vector_coalesce.q.out ql/src/test/results/clientpositive/llap/vector_coalesce.q.out index d767d7dc21..abd84ff6e8 100644 --- ql/src/test/results/clientpositive/llap/vector_coalesce.q.out +++ ql/src/test/results/clientpositive/llap/vector_coalesce.q.out @@ -159,8 +159,8 @@ STAGE PLANS: Select Vectorization: className: VectorSelectOperator native: true - projectedOutputColumnNums: [5, 2, 28] - selectExpressions: IfExprCondExprColumn(col 24:boolean, col 26:double, col 27:double)(children: ColAndCol(col 21:boolean, col 23:boolean)(children: IsNotNull(col 5:double) -> 21:boolean, IsNotNull(col 22:double)(children: FuncLog2LongToDouble(col 2:int) -> 22:double) -> 23:boolean) -> 24:boolean, DoubleColAddDoubleColumn(col 5:double, col 25:double)(children: FuncLog2LongToDouble(col 2:int) -> 25:double) -> 26:double, ConstantVectorExpression(val 0.0) -> 27:double) -> 28:double + projectedOutputColumnNums: [5, 2, 22] + selectExpressions: IfExprCondExprColumn(col 21:boolean, col 17:double, col 14:double)(children: ColAndCol(col 13:boolean, col 15:boolean)(children: IsNotNull(col 5:double) -> 13:boolean, IsNotNull(col 14:double)(children: FuncLog2LongToDouble(col 2:int) -> 14:double) -> 15:boolean) -> 21:boolean, DoubleColAddDoubleColumn(col 5:double, col 14:double)(children: FuncLog2LongToDouble(col 2:int) -> 14:double) -> 17:double, ConstantVectorExpression(val 0.0) -> 14:double) -> 22:double Reduce Sink Vectorization: className: VectorReduceSinkObjectHashOperator native: true @@ -363,8 +363,8 @@ STAGE PLANS: Select Vectorization: className: VectorSelectOperator native: true - projectedOutputColumnNums: [8, 9, 16] - selectExpressions: IfExprTimestampColumnColumn(col 15:boolean, col 8:timestampcol 9:timestamp)(children: IsNotNull(col 8:timestamp) -> 15:boolean) -> 16:timestamp + projectedOutputColumnNums: [8, 9, 15] + selectExpressions: IfExprTimestampColumnColumn(col 13:boolean, col 8:timestampcol 9:timestamp)(children: IsNotNull(col 8:timestamp) -> 13:boolean) -> 15:timestamp Reduce Sink Vectorization: className: VectorReduceSinkObjectHashOperator native: true diff --git ql/src/test/results/clientpositive/llap/vector_decimal_expressions.q.out ql/src/test/results/clientpositive/llap/vector_decimal_expressions.q.out index 84ce5882e2..fddd126ea7 100644 --- ql/src/test/results/clientpositive/llap/vector_decimal_expressions.q.out +++ ql/src/test/results/clientpositive/llap/vector_decimal_expressions.q.out @@ -90,8 +90,8 @@ STAGE PLANS: Select Vectorization: className: VectorSelectOperator native: true - projectedOutputColumnNums: [21, 23, 25, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37] - selectExpressions: DecimalColAddDecimalColumn(col 1:decimal(20,10), col 2:decimal(23,14)) -> 21:decimal(25,14), DecimalColSubtractDecimalColumn(col 1:decimal(20,10), col 22:decimal(25,14))(children: DecimalScalarMultiplyDecimalColumn(val 2, col 2:decimal(23,14)) -> 22:decimal(25,14)) -> 23:decimal(26,14), DecimalColDivideDecimalColumn(col 24:decimal(21,10), col 2:decimal(23,14))(children: DecimalColAddDecimalScalar(col 1:decimal(20,10), val 2.34) -> 24:decimal(21,10)) -> 25:decimal(38,13), DecimalColMultiplyDecimalColumn(col 1:decimal(20,10), col 26:decimal(27,17))(children: DecimalColDivideDecimalScalar(col 2:decimal(23,14), val 3.4) -> 26:decimal(27,17)) -> 27:decimal(38,17), DecimalColModuloDecimalScalar(col 1:decimal(20,10), val 10) -> 28:decimal(12,10), CastDecimalToLong(col 1:decimal(20,10)) -> 29:int, CastDecimalToLong(col 2:decimal(23,14)) -> 30:smallint, CastDecimalToLong(col 2:decimal(23,14)) -> 31:tinyint, CastDecimalToLong(col 1:decimal(20,10)) -> 32:bigint, CastDecimalToBoolean(col 1:decimal(20,10)) -> 33:boolean, CastDecimalToDouble(col 2:decimal(23,14)) -> 34:double, CastDecimalToFloat(col 1:decimal(20,10)) -> 35:float, CastDecimalToString(col 2:decimal(23,14)) -> 36:string, CastDecimalToTimestamp(col 1:decimal(20,10)) -> 37:timestamp + projectedOutputColumnNums: [5, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34] + selectExpressions: DecimalColAddDecimalColumn(col 1:decimal(20,10), col 2:decimal(23,14)) -> 5:decimal(25,14), DecimalColSubtractDecimalColumn(col 1:decimal(20,10), col 21:decimal(25,14))(children: DecimalScalarMultiplyDecimalColumn(val 2, col 2:decimal(23,14)) -> 21:decimal(25,14)) -> 22:decimal(26,14), DecimalColDivideDecimalColumn(col 7:decimal(21,10), col 2:decimal(23,14))(children: DecimalColAddDecimalScalar(col 1:decimal(20,10), val 2.34) -> 7:decimal(21,10)) -> 23:decimal(38,13), DecimalColMultiplyDecimalColumn(col 1:decimal(20,10), col 9:decimal(27,17))(children: DecimalColDivideDecimalScalar(col 2:decimal(23,14), val 3.4) -> 9:decimal(27,17)) -> 24:decimal(38,17), DecimalColModuloDecimalScalar(col 1:decimal(20,10), val 10) -> 25:decimal(12,10), CastDecimalToLong(col 1:decimal(20,10)) -> 26:int, CastDecimalToLong(col 2:decimal(23,14)) -> 27:smallint, CastDecimalToLong(col 2:decimal(23,14)) -> 28:tinyint, CastDecimalToLong(col 1:decimal(20,10)) -> 29:bigint, CastDecimalToBoolean(col 1:decimal(20,10)) -> 30:boolean, CastDecimalToDouble(col 2:decimal(23,14)) -> 31:double, CastDecimalToFloat(col 1:decimal(20,10)) -> 32:float, CastDecimalToString(col 2:decimal(23,14)) -> 33:string, CastDecimalToTimestamp(col 1:decimal(20,10)) -> 34:timestamp Statistics: Num rows: 1 Data size: 220 Basic stats: COMPLETE Column stats: NONE Reduce Output Operator key expressions: _col0 (type: decimal(25,14)), _col1 (type: decimal(26,14)), _col2 (type: decimal(38,13)), _col3 (type: decimal(38,17)), _col4 (type: decimal(12,10)), _col5 (type: int), _col6 (type: smallint), _col7 (type: tinyint), _col8 (type: bigint), _col9 (type: boolean), _col10 (type: double), _col11 (type: float), _col12 (type: string), _col13 (type: timestamp) @@ -99,7 +99,7 @@ STAGE PLANS: sort order: ++++++++++++++ Reduce Sink Vectorization: className: VectorReduceSinkObjectHashOperator - keyColumns: 21:decimal(25,14), 23:decimal(26,14), 25:decimal(38,13), 27:decimal(38,17), 28:decimal(12,10), 29:int, 30:smallint, 31:tinyint, 32:bigint, 33:boolean, 34:double, 35:float, 36:string, 37:timestamp + keyColumns: 5:decimal(25,14), 22:decimal(26,14), 23:decimal(38,13), 24:decimal(38,17), 25:decimal(12,10), 26:int, 27:smallint, 28:tinyint, 29:bigint, 30:boolean, 31:double, 32:float, 33:string, 34:timestamp native: true nativeConditionsMet: hive.vectorized.execution.reducesink.new.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, No PTF TopN IS true, No DISTINCT columns IS true, BinarySortableSerDe for keys IS true, LazyBinarySerDe for values IS true Statistics: Num rows: 1 Data size: 220 Basic stats: COMPLETE Column stats: NONE @@ -120,7 +120,7 @@ STAGE PLANS: includeColumns: [0, 1, 2] dataColumns: cdouble:double, cdecimal1:decimal(20,10), cdecimal2:decimal(23,14) partitionColumnCount: 0 - scratchColumnTypeNames: [decimal(25,14), decimal(25,14), decimal(26,14), decimal(21,10), decimal(38,13), decimal(27,17), decimal(38,17), decimal(12,10), bigint, bigint, bigint, bigint, bigint, double, double, string, timestamp, decimal(25,14), decimal(25,14), decimal(26,14), decimal(21,10), decimal(38,13), decimal(27,17), decimal(38,17), decimal(12,10), bigint, bigint, bigint, bigint, bigint, double, double, string, timestamp] + scratchColumnTypeNames: [decimal(25,14), decimal(25,14), decimal(26,14), decimal(21,10), decimal(38,13), decimal(27,17), decimal(38,17), decimal(12,10), bigint, bigint, bigint, bigint, bigint, double, double, string, timestamp, decimal(25,14), decimal(26,14), decimal(38,13), decimal(38,17), decimal(12,10), bigint, bigint, bigint, bigint, bigint, double, double, string, timestamp] Reducer 2 Execution mode: vectorized, llap Reduce Vectorization: @@ -278,8 +278,8 @@ STAGE PLANS: Select Vectorization: className: VectorSelectOperator native: true - projectedOutputColumnNums: [41, 44, 47, 49, 50, 51, 53, 55, 56, 57, 59, 60, 62, 63] - selectExpressions: Decimal64ColAddDecimal64Column(col 1:decimal(10,3)/DECIMAL_64, col 40:decimal(8,3)/DECIMAL_64)(children: Decimal64ColScaleUp(col 2:decimal(7,2)/DECIMAL_64, decimal64Val 10, decimalVal 10) -> 40:decimal(8,3)/DECIMAL_64) -> 41:decimal(11,3)/DECIMAL_64, Decimal64ColSubtractDecimal64Column(col 1:decimal(10,3)/DECIMAL_64, col 43:decimal(10,3)/DECIMAL_64)(children: Decimal64ColScaleUp(col 42:decimal(9,2)/DECIMAL_64, decimal64Val 10, decimalVal 10)(children: Decimal64ScalarMultiplyDecimal64ColumnUnscaled(decimal64Val 2, decimalVal 2, col 2:decimal(7,2)/DECIMAL_64) -> 42:decimal(9,2)/DECIMAL_64) -> 43:decimal(10,3)/DECIMAL_64) -> 44:decimal(11,3)/DECIMAL_64, DecimalColDivideDecimalColumn(col 64:decimal(11,3), col 46:decimal(7,2))(children: ConvertDecimal64ToDecimal(col 45:decimal(11,3)/DECIMAL_64)(children: Decimal64ColAddDecimal64Scalar(col 1:decimal(10,3)/DECIMAL_64, decimal64Val 2340, decimalVal 2.34) -> 45:decimal(11,3)/DECIMAL_64) -> 64:decimal(11,3), ConvertDecimal64ToDecimal(col 2:decimal(7,2)/DECIMAL_64) -> 46:decimal(7,2)) -> 47:decimal(21,11), DecimalColMultiplyDecimalColumn(col 4:decimal(10,3), col 65:decimal(12,6))(children: ConvertDecimal64ToDecimal(col 1:decimal(10,3)/DECIMAL_64) -> 4:decimal(10,3), ConvertDecimal64ToDecimal(col 48:decimal(12,6)/DECIMAL_64)(children: Decimal64ColDivideDecimal64Scalar(col 2:decimal(7,2)/DECIMAL_64, decimal64Val 340, decimalVal 3.4) -> 48:decimal(12,6)/DECIMAL_64) -> 65:decimal(12,6)) -> 49:decimal(23,9), DecimalColModuloDecimalScalar(col 4:decimal(10,3), val 10)(children: ConvertDecimal64ToDecimal(col 1:decimal(10,3)/DECIMAL_64) -> 4:decimal(10,3)) -> 50:decimal(5,3), CastDecimalToLong(col 4:decimal(10,3))(children: ConvertDecimal64ToDecimal(col 1:decimal(10,3)/DECIMAL_64) -> 4:decimal(10,3)) -> 51:int, CastDecimalToLong(col 52:decimal(7,2))(children: ConvertDecimal64ToDecimal(col 2:decimal(7,2)/DECIMAL_64) -> 52:decimal(7,2)) -> 53:smallint, CastDecimalToLong(col 54:decimal(7,2))(children: ConvertDecimal64ToDecimal(col 2:decimal(7,2)/DECIMAL_64) -> 54:decimal(7,2)) -> 55:tinyint, CastDecimalToLong(col 4:decimal(10,3))(children: ConvertDecimal64ToDecimal(col 1:decimal(10,3)/DECIMAL_64) -> 4:decimal(10,3)) -> 56:bigint, CastDecimalToBoolean(col 4:decimal(10,3))(children: ConvertDecimal64ToDecimal(col 1:decimal(10,3)/DECIMAL_64) -> 4:decimal(10,3)) -> 57:boolean, CastDecimalToDouble(col 58:decimal(7,2))(children: ConvertDecimal64ToDecimal(col 2:decimal(7,2)/DECIMAL_64) -> 58:decimal(7,2)) -> 59:double, CastDecimalToFloat(col 4:decimal(10,3))(children: ConvertDecimal64ToDecimal(col 1:decimal(10,3)/DECIMAL_64) -> 4:decimal(10,3)) -> 60:float, CastDecimalToString(col 61:decimal(7,2))(children: ConvertDecimal64ToDecimal(col 2:decimal(7,2)/DECIMAL_64) -> 61:decimal(7,2)) -> 62:string, CastDecimalToTimestamp(col 4:decimal(10,3))(children: ConvertDecimal64ToDecimal(col 1:decimal(10,3)/DECIMAL_64) -> 4:decimal(10,3)) -> 63:timestamp + projectedOutputColumnNums: [10, 43, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56] + selectExpressions: Decimal64ColAddDecimal64Column(col 1:decimal(10,3)/DECIMAL_64, col 40:decimal(8,3)/DECIMAL_64)(children: Decimal64ColScaleUp(col 2:decimal(7,2)/DECIMAL_64, decimal64Val 10, decimalVal 10) -> 40:decimal(8,3)/DECIMAL_64) -> 10:decimal(11,3)/DECIMAL_64, Decimal64ColSubtractDecimal64Column(col 1:decimal(10,3)/DECIMAL_64, col 42:decimal(10,3)/DECIMAL_64)(children: Decimal64ColScaleUp(col 41:decimal(9,2)/DECIMAL_64, decimal64Val 10, decimalVal 10)(children: Decimal64ScalarMultiplyDecimal64ColumnUnscaled(decimal64Val 2, decimalVal 2, col 2:decimal(7,2)/DECIMAL_64) -> 41:decimal(9,2)/DECIMAL_64) -> 42:decimal(10,3)/DECIMAL_64) -> 43:decimal(11,3)/DECIMAL_64, DecimalColDivideDecimalColumn(col 57:decimal(11,3), col 11:decimal(7,2))(children: ConvertDecimal64ToDecimal(col 44:decimal(11,3)/DECIMAL_64)(children: Decimal64ColAddDecimal64Scalar(col 1:decimal(10,3)/DECIMAL_64, decimal64Val 2340, decimalVal 2.34) -> 44:decimal(11,3)/DECIMAL_64) -> 57:decimal(11,3), ConvertDecimal64ToDecimal(col 2:decimal(7,2)/DECIMAL_64) -> 11:decimal(7,2)) -> 45:decimal(21,11), DecimalColMultiplyDecimalColumn(col 4:decimal(10,3), col 58:decimal(12,6))(children: ConvertDecimal64ToDecimal(col 1:decimal(10,3)/DECIMAL_64) -> 4:decimal(10,3), ConvertDecimal64ToDecimal(col 14:decimal(12,6)/DECIMAL_64)(children: Decimal64ColDivideDecimal64Scalar(col 2:decimal(7,2)/DECIMAL_64, decimal64Val 340, decimalVal 3.4) -> 14:decimal(12,6)/DECIMAL_64) -> 58:decimal(12,6)) -> 46:decimal(23,9), DecimalColModuloDecimalScalar(col 4:decimal(10,3), val 10)(children: ConvertDecimal64ToDecimal(col 1:decimal(10,3)/DECIMAL_64) -> 4:decimal(10,3)) -> 47:decimal(5,3), CastDecimalToLong(col 4:decimal(10,3))(children: ConvertDecimal64ToDecimal(col 1:decimal(10,3)/DECIMAL_64) -> 4:decimal(10,3)) -> 48:int, CastDecimalToLong(col 11:decimal(7,2))(children: ConvertDecimal64ToDecimal(col 2:decimal(7,2)/DECIMAL_64) -> 11:decimal(7,2)) -> 49:smallint, CastDecimalToLong(col 11:decimal(7,2))(children: ConvertDecimal64ToDecimal(col 2:decimal(7,2)/DECIMAL_64) -> 11:decimal(7,2)) -> 50:tinyint, CastDecimalToLong(col 4:decimal(10,3))(children: ConvertDecimal64ToDecimal(col 1:decimal(10,3)/DECIMAL_64) -> 4:decimal(10,3)) -> 51:bigint, CastDecimalToBoolean(col 4:decimal(10,3))(children: ConvertDecimal64ToDecimal(col 1:decimal(10,3)/DECIMAL_64) -> 4:decimal(10,3)) -> 52:boolean, CastDecimalToDouble(col 11:decimal(7,2))(children: ConvertDecimal64ToDecimal(col 2:decimal(7,2)/DECIMAL_64) -> 11:decimal(7,2)) -> 53:double, CastDecimalToFloat(col 4:decimal(10,3))(children: ConvertDecimal64ToDecimal(col 1:decimal(10,3)/DECIMAL_64) -> 4:decimal(10,3)) -> 54:float, CastDecimalToString(col 11:decimal(7,2))(children: ConvertDecimal64ToDecimal(col 2:decimal(7,2)/DECIMAL_64) -> 11:decimal(7,2)) -> 55:string, CastDecimalToTimestamp(col 4:decimal(10,3))(children: ConvertDecimal64ToDecimal(col 1:decimal(10,3)/DECIMAL_64) -> 4:decimal(10,3)) -> 56:timestamp Statistics: Num rows: 1 Data size: 220 Basic stats: COMPLETE Column stats: NONE Reduce Output Operator key expressions: _col0 (type: decimal(11,3)), _col1 (type: decimal(11,3)), _col2 (type: decimal(21,11)), _col3 (type: decimal(23,9)), _col4 (type: decimal(5,3)), _col5 (type: int), _col6 (type: smallint), _col7 (type: tinyint), _col8 (type: bigint), _col9 (type: boolean), _col10 (type: double), _col11 (type: float), _col12 (type: string), _col13 (type: timestamp) @@ -287,7 +287,7 @@ STAGE PLANS: sort order: ++++++++++++++ Reduce Sink Vectorization: className: VectorReduceSinkObjectHashOperator - keyColumns: 41:decimal(11,3), 44:decimal(11,3), 47:decimal(21,11), 49:decimal(23,9), 50:decimal(5,3), 51:int, 53:smallint, 55:tinyint, 56:bigint, 57:boolean, 59:double, 60:float, 62:string, 63:timestamp + keyColumns: 10:decimal(11,3), 43:decimal(11,3), 45:decimal(21,11), 46:decimal(23,9), 47:decimal(5,3), 48:int, 49:smallint, 50:tinyint, 51:bigint, 52:boolean, 53:double, 54:float, 55:string, 56:timestamp native: true nativeConditionsMet: hive.vectorized.execution.reducesink.new.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, No PTF TopN IS true, No DISTINCT columns IS true, BinarySortableSerDe for keys IS true, LazyBinarySerDe for values IS true Statistics: Num rows: 1 Data size: 220 Basic stats: COMPLETE Column stats: NONE @@ -308,7 +308,7 @@ STAGE PLANS: includeColumns: [0, 1, 2] dataColumns: cdouble:double, cdecimal1:decimal(10,3)/DECIMAL_64, cdecimal2:decimal(7,2)/DECIMAL_64 partitionColumnCount: 0 - scratchColumnTypeNames: [decimal(10,3), decimal(8,3)/DECIMAL_64, decimal(11,3)/DECIMAL_64, decimal(9,2)/DECIMAL_64, decimal(10,3)/DECIMAL_64, decimal(11,3)/DECIMAL_64, decimal(11,3)/DECIMAL_64, decimal(7,2), decimal(21,11), decimal(10,3), decimal(12,6)/DECIMAL_64, decimal(23,9), decimal(10,3), decimal(5,3), decimal(10,3), bigint, decimal(7,2), bigint, decimal(7,2), bigint, decimal(10,3), bigint, decimal(10,3), bigint, decimal(7,2), double, decimal(10,3), double, decimal(7,2), string, decimal(10,3), timestamp, decimal(11,3), decimal(11,3), decimal(11,3), decimal(12,6), decimal(8,3)/DECIMAL_64, decimal(11,3)/DECIMAL_64, decimal(9,2)/DECIMAL_64, decimal(10,3)/DECIMAL_64, decimal(11,3)/DECIMAL_64, decimal(11,3)/DECIMAL_64, decimal(7,2), decimal(21,11), decimal(12,6)/DECIMAL_64, decimal(23,9), decimal(5,3), bigint, decimal(7,2), bigint, decimal(7,2), bigint, bigint, bigint, decimal(7,2), double, double, decimal(7,2), string, timestamp, decimal(11,3), decimal(12,6)] + scratchColumnTypeNames: [decimal(10,3), decimal(8,3)/DECIMAL_64, decimal(11,3)/DECIMAL_64, decimal(9,2)/DECIMAL_64, decimal(10,3)/DECIMAL_64, decimal(11,3)/DECIMAL_64, decimal(11,3)/DECIMAL_64, decimal(7,2), decimal(21,11), decimal(10,3), decimal(12,6)/DECIMAL_64, decimal(23,9), decimal(10,3), decimal(5,3), decimal(10,3), bigint, decimal(7,2), bigint, decimal(7,2), bigint, decimal(10,3), bigint, decimal(10,3), bigint, decimal(7,2), double, decimal(10,3), double, decimal(7,2), string, decimal(10,3), timestamp, decimal(11,3), decimal(11,3), decimal(11,3), decimal(12,6), decimal(8,3)/DECIMAL_64, decimal(9,2)/DECIMAL_64, decimal(10,3)/DECIMAL_64, decimal(11,3)/DECIMAL_64, decimal(11,3)/DECIMAL_64, decimal(21,11), decimal(23,9), decimal(5,3), bigint, bigint, bigint, bigint, bigint, double, double, string, timestamp, decimal(11,3), decimal(12,6)] Reducer 2 Execution mode: vectorized, llap Reduce Vectorization: diff --git ql/src/test/results/clientpositive/llap/vector_groupby_grouping_sets_limit.q.out ql/src/test/results/clientpositive/llap/vector_groupby_grouping_sets_limit.q.out index b7ea74938f..a96e3ef279 100644 --- ql/src/test/results/clientpositive/llap/vector_groupby_grouping_sets_limit.q.out +++ ql/src/test/results/clientpositive/llap/vector_groupby_grouping_sets_limit.q.out @@ -1140,8 +1140,8 @@ STAGE PLANS: Select Vectorization: className: VectorSelectOperator native: true - projectedOutputColumnNums: [9] - selectExpressions: DoubleColAddDoubleColumn(col 7:double, col 8:double)(children: CastStringToDouble(col 0:string) -> 7:double, CastStringToDouble(col 1:string) -> 8:double) -> 9:double + projectedOutputColumnNums: [7] + selectExpressions: DoubleColAddDoubleColumn(col 4:double, col 5:double)(children: CastStringToDouble(col 0:string) -> 4:double, CastStringToDouble(col 1:string) -> 5:double) -> 7:double Statistics: Num rows: 6 Data size: 1020 Basic stats: COMPLETE Column stats: COMPLETE Group By Operator aggregations: count() @@ -1149,7 +1149,7 @@ STAGE PLANS: aggregators: VectorUDAFCountStar(*) -> bigint className: VectorGroupByOperator groupByMode: HASH - keyExpressions: col 9:double + keyExpressions: col 7:double native: false vectorProcessingMode: HASH projectedOutputColumnNums: [0] @@ -1188,7 +1188,7 @@ STAGE PLANS: includeColumns: [0, 1] dataColumns: a:string, b:string, c:string partitionColumnCount: 0 - scratchColumnTypeNames: [double, double, double, double, double, double] + scratchColumnTypeNames: [double, double, double, double] Reducer 2 Execution mode: vectorized, llap Reduce Vectorization: diff --git ql/src/test/results/clientpositive/llap/vector_string_concat.q.out ql/src/test/results/clientpositive/llap/vector_string_concat.q.out index beb02579ea..530ffd35d3 100644 --- ql/src/test/results/clientpositive/llap/vector_string_concat.q.out +++ ql/src/test/results/clientpositive/llap/vector_string_concat.q.out @@ -367,14 +367,14 @@ STAGE PLANS: Select Vectorization: className: VectorSelectOperator native: true - projectedOutputColumnNums: [37] - selectExpressions: StringGroupConcatColCol(col 34:string, col 36:string)(children: StringGroupColConcatStringScalar(col 33:string, val -)(children: StringScalarConcatStringGroupCol(val Quarter , col 32:string)(children: CastLongToString(col 31:int)(children: CastDoubleToLong(col 30:double)(children: DoubleColAddDoubleScalar(col 29:double, val 1.0)(children: DoubleColDivideDoubleScalar(col 28:double, val 3.0)(children: CastLongToDouble(col 27:int)(children: LongColSubtractLongScalar(col 26:int, val 1)(children: VectorUDFMonthDate(col 12, field MONTH) -> 26:int) -> 27:int) -> 28:double) -> 29:double) -> 30:double) -> 31:int) -> 32:string) -> 33:string) -> 34:string, CastLongToString(col 35:int)(children: VectorUDFYearDate(col 12, field YEAR) -> 35:int) -> 36:string) -> 37:string + projectedOutputColumnNums: [22] + selectExpressions: StringGroupConcatColCol(col 20:string, col 21:string)(children: StringGroupColConcatStringScalar(col 21:string, val -)(children: StringScalarConcatStringGroupCol(val Quarter , col 20:string)(children: CastLongToString(col 14:int)(children: CastDoubleToLong(col 16:double)(children: DoubleColAddDoubleScalar(col 17:double, val 1.0)(children: DoubleColDivideDoubleScalar(col 16:double, val 3.0)(children: CastLongToDouble(col 15:int)(children: LongColSubtractLongScalar(col 14:int, val 1)(children: VectorUDFMonthDate(col 12, field MONTH) -> 14:int) -> 15:int) -> 16:double) -> 17:double) -> 16:double) -> 14:int) -> 20:string) -> 21:string) -> 20:string, CastLongToString(col 14:int)(children: VectorUDFYearDate(col 12, field YEAR) -> 14:int) -> 21:string) -> 22:string Statistics: Num rows: 2000 Data size: 106288 Basic stats: COMPLETE Column stats: COMPLETE Group By Operator Group By Vectorization: className: VectorGroupByOperator groupByMode: HASH - keyExpressions: col 37:string + keyExpressions: col 22:string native: false vectorProcessingMode: HASH projectedOutputColumnNums: [] diff --git ql/src/test/results/clientpositive/llap/vector_windowing_streaming.q.out ql/src/test/results/clientpositive/llap/vector_windowing_streaming.q.out index b63bcf47f3..314300f371 100644 --- ql/src/test/results/clientpositive/llap/vector_windowing_streaming.q.out +++ ql/src/test/results/clientpositive/llap/vector_windowing_streaming.q.out @@ -232,18 +232,29 @@ STAGE PLANS: TableScan Vectorization: native: true vectorizationSchemaColumns: [0:p_partkey:int, 1:p_name:string, 2:p_mfgr:string, 3:p_brand:string, 4:p_type:string, 5:p_size:int, 6:p_container:string, 7:p_retailprice:double, 8:p_comment:string, 9:ROW__ID:struct] - Reduce Output Operator - key expressions: p_mfgr (type: string), p_name (type: string) - null sort order: az + Top N Key Operator sort order: ++ + keys: p_mfgr (type: string), p_name (type: string) + null sort order: az Map-reduce partition columns: p_mfgr (type: string) - Reduce Sink Vectorization: - className: VectorReduceSinkOperator - native: false - nativeConditionsMet: hive.vectorized.execution.reducesink.new.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, No DISTINCT columns IS true, BinarySortableSerDe for keys IS true, LazyBinarySerDe for values IS true - nativeConditionsNotMet: No PTF TopN IS false Statistics: Num rows: 26 Data size: 5694 Basic stats: COMPLETE Column stats: COMPLETE - TopN Hash Memory Usage: 0.8 + top n: 4 + Top N Key Vectorization: + className: VectorTopNKeyOperator + keyExpressions: col 2:string, col 1:string + native: true + Reduce Output Operator + key expressions: p_mfgr (type: string), p_name (type: string) + null sort order: az + sort order: ++ + Map-reduce partition columns: p_mfgr (type: string) + Reduce Sink Vectorization: + className: VectorReduceSinkOperator + native: false + nativeConditionsMet: hive.vectorized.execution.reducesink.new.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, No DISTINCT columns IS true, BinarySortableSerDe for keys IS true, LazyBinarySerDe for values IS true + nativeConditionsNotMet: No PTF TopN IS false + Statistics: Num rows: 26 Data size: 5694 Basic stats: COMPLETE Column stats: COMPLETE + TopN Hash Memory Usage: 0.8 Execution mode: vectorized, llap LLAP IO: no inputs Map Vectorization: @@ -445,18 +456,29 @@ STAGE PLANS: predicateExpression: FilterLongColLessLongScalar(col 0:tinyint, val 5) predicate: (t < 5Y) (type: boolean) Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE - Reduce Output Operator - key expressions: t (type: tinyint), f (type: float) - null sort order: az + Top N Key Operator sort order: ++ + keys: t (type: tinyint), f (type: float) + null sort order: az Map-reduce partition columns: t (type: tinyint) - Reduce Sink Vectorization: - className: VectorReduceSinkOperator - native: false - nativeConditionsMet: hive.vectorized.execution.reducesink.new.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, No DISTINCT columns IS true, BinarySortableSerDe for keys IS true, LazyBinarySerDe for values IS true - nativeConditionsNotMet: No PTF TopN IS false Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE - TopN Hash Memory Usage: 0.8 + top n: 6 + Top N Key Vectorization: + className: VectorTopNKeyOperator + keyExpressions: col 0:tinyint, col 4:float + native: true + Reduce Output Operator + key expressions: t (type: tinyint), f (type: float) + null sort order: az + sort order: ++ + Map-reduce partition columns: t (type: tinyint) + Reduce Sink Vectorization: + className: VectorReduceSinkOperator + native: false + nativeConditionsMet: hive.vectorized.execution.reducesink.new.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, No DISTINCT columns IS true, BinarySortableSerDe for keys IS true, LazyBinarySerDe for values IS true + nativeConditionsNotMet: No PTF TopN IS false + Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE + TopN Hash Memory Usage: 0.8 Execution mode: vectorized, llap LLAP IO: no inputs Map Vectorization: @@ -683,13 +705,20 @@ STAGE PLANS: TableScan alias: alltypesorc Statistics: Num rows: 12288 Data size: 110096 Basic stats: COMPLETE Column stats: COMPLETE - Reduce Output Operator - key expressions: ctinyint (type: tinyint), cdouble (type: double) - null sort order: az + Top N Key Operator sort order: ++ + keys: ctinyint (type: tinyint), cdouble (type: double) + null sort order: az Map-reduce partition columns: ctinyint (type: tinyint) Statistics: Num rows: 12288 Data size: 110096 Basic stats: COMPLETE Column stats: COMPLETE - TopN Hash Memory Usage: 0.8 + top n: 5 + Reduce Output Operator + key expressions: ctinyint (type: tinyint), cdouble (type: double) + null sort order: az + sort order: ++ + Map-reduce partition columns: ctinyint (type: tinyint) + Statistics: Num rows: 12288 Data size: 110096 Basic stats: COMPLETE Column stats: COMPLETE + TopN Hash Memory Usage: 0.8 Execution mode: llap LLAP IO: all inputs Reducer 2 @@ -698,7 +727,7 @@ STAGE PLANS: Select Operator expressions: KEY.reducesinkkey0 (type: tinyint), KEY.reducesinkkey1 (type: double) outputColumnNames: _col0, _col5 - Statistics: Num rows: 12288 Data size: 3403280 Basic stats: COMPLETE Column stats: COMPLETE + Statistics: Num rows: 12288 Data size: 3365908 Basic stats: COMPLETE Column stats: COMPLETE PTF Operator Function definitions: Input definition @@ -719,17 +748,17 @@ STAGE PLANS: window function: GenericUDAFRankEvaluator window frame: ROWS PRECEDING(MAX)~FOLLOWING(MAX) isPivotResult: true - Statistics: Num rows: 12288 Data size: 3403280 Basic stats: COMPLETE Column stats: COMPLETE + Statistics: Num rows: 12288 Data size: 3365908 Basic stats: COMPLETE Column stats: COMPLETE Filter Operator predicate: (rank_window_0 < 5) (type: boolean) - Statistics: Num rows: 4096 Data size: 1121976 Basic stats: COMPLETE Column stats: COMPLETE + Statistics: Num rows: 4096 Data size: 1097740 Basic stats: COMPLETE Column stats: COMPLETE Select Operator expressions: _col0 (type: tinyint), _col5 (type: double), rank_window_0 (type: int) outputColumnNames: _col0, _col1, _col2 - Statistics: Num rows: 4096 Data size: 40632 Basic stats: COMPLETE Column stats: COMPLETE + Statistics: Num rows: 4096 Data size: 16396 Basic stats: COMPLETE Column stats: COMPLETE File Output Operator compressed: false - Statistics: Num rows: 4096 Data size: 40632 Basic stats: COMPLETE Column stats: COMPLETE + Statistics: Num rows: 4096 Data size: 16396 Basic stats: COMPLETE Column stats: COMPLETE table: input format: org.apache.hadoop.mapred.SequenceFileInputFormat output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat @@ -823,18 +852,29 @@ STAGE PLANS: TableScan Vectorization: native: true vectorizationSchemaColumns: [0:ctinyint:tinyint, 1:csmallint:smallint, 2:cint:int, 3:cbigint:bigint, 4:cfloat:float, 5:cdouble:double, 6:cstring1:string, 7:cstring2:string, 8:ctimestamp1:timestamp, 9:ctimestamp2:timestamp, 10:cboolean1:boolean, 11:cboolean2:boolean, 12:ROW__ID:struct] - Reduce Output Operator - key expressions: ctinyint (type: tinyint), cdouble (type: double) - null sort order: az + Top N Key Operator sort order: ++ + keys: ctinyint (type: tinyint), cdouble (type: double) + null sort order: az Map-reduce partition columns: ctinyint (type: tinyint) - Reduce Sink Vectorization: - className: VectorReduceSinkOperator - native: false - nativeConditionsMet: hive.vectorized.execution.reducesink.new.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, No DISTINCT columns IS true, BinarySortableSerDe for keys IS true, LazyBinarySerDe for values IS true - nativeConditionsNotMet: No PTF TopN IS false Statistics: Num rows: 12288 Data size: 110096 Basic stats: COMPLETE Column stats: COMPLETE - TopN Hash Memory Usage: 0.8 + top n: 5 + Top N Key Vectorization: + className: VectorTopNKeyOperator + keyExpressions: col 0:tinyint, col 5:double + native: true + Reduce Output Operator + key expressions: ctinyint (type: tinyint), cdouble (type: double) + null sort order: az + sort order: ++ + Map-reduce partition columns: ctinyint (type: tinyint) + Reduce Sink Vectorization: + className: VectorReduceSinkOperator + native: false + nativeConditionsMet: hive.vectorized.execution.reducesink.new.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, No DISTINCT columns IS true, BinarySortableSerDe for keys IS true, LazyBinarySerDe for values IS true + nativeConditionsNotMet: No PTF TopN IS false + Statistics: Num rows: 12288 Data size: 110096 Basic stats: COMPLETE Column stats: COMPLETE + TopN Hash Memory Usage: 0.8 Execution mode: vectorized, llap LLAP IO: all inputs Map Vectorization: @@ -863,7 +903,7 @@ STAGE PLANS: Select Operator expressions: KEY.reducesinkkey0 (type: tinyint), KEY.reducesinkkey1 (type: double) outputColumnNames: _col0, _col5 - Statistics: Num rows: 12288 Data size: 3403280 Basic stats: COMPLETE Column stats: COMPLETE + Statistics: Num rows: 12288 Data size: 3365908 Basic stats: COMPLETE Column stats: COMPLETE PTF Operator Function definitions: Input definition @@ -884,17 +924,17 @@ STAGE PLANS: window function: GenericUDAFRankEvaluator window frame: ROWS PRECEDING(MAX)~FOLLOWING(MAX) isPivotResult: true - Statistics: Num rows: 12288 Data size: 3403280 Basic stats: COMPLETE Column stats: COMPLETE + Statistics: Num rows: 12288 Data size: 3365908 Basic stats: COMPLETE Column stats: COMPLETE Filter Operator predicate: (rank_window_0 < 5) (type: boolean) - Statistics: Num rows: 4096 Data size: 1121976 Basic stats: COMPLETE Column stats: COMPLETE + Statistics: Num rows: 4096 Data size: 1097740 Basic stats: COMPLETE Column stats: COMPLETE Select Operator expressions: _col0 (type: tinyint), _col5 (type: double), rank_window_0 (type: int) outputColumnNames: _col0, _col1, _col2 - Statistics: Num rows: 4096 Data size: 40632 Basic stats: COMPLETE Column stats: COMPLETE + Statistics: Num rows: 4096 Data size: 16396 Basic stats: COMPLETE Column stats: COMPLETE File Output Operator compressed: false - Statistics: Num rows: 4096 Data size: 40632 Basic stats: COMPLETE Column stats: COMPLETE + Statistics: Num rows: 4096 Data size: 16396 Basic stats: COMPLETE Column stats: COMPLETE table: input format: org.apache.hadoop.mapred.TextInputFormat output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat @@ -903,7 +943,7 @@ STAGE PLANS: Select Operator expressions: _col0 (type: tinyint), _col1 (type: double), _col2 (type: int) outputColumnNames: col1, col2, col3 - Statistics: Num rows: 4096 Data size: 40632 Basic stats: COMPLETE Column stats: COMPLETE + Statistics: Num rows: 4096 Data size: 16396 Basic stats: COMPLETE Column stats: COMPLETE Group By Operator aggregations: compute_stats(col1, 'hll'), compute_stats(col2, 'hll'), compute_stats(col3, 'hll') minReductionHashAggr: 0.99 diff --git ql/src/test/results/clientpositive/llap/vectorization_13.q.out ql/src/test/results/clientpositive/llap/vectorization_13.q.out index 7e41c9dc54..47d876348f 100644 --- ql/src/test/results/clientpositive/llap/vectorization_13.q.out +++ ql/src/test/results/clientpositive/llap/vectorization_13.q.out @@ -211,8 +211,8 @@ STAGE PLANS: Select Vectorization: className: VectorSelectOperator native: true - projectedOutputColumnNums: [0, 1, 2, 3, 4, 50, 5, 52, 6, 56, 57, 58, 63, 64, 69, 73, 75, 78, 13, 84, 14] - selectExpressions: LongColUnaryMinus(col 1:tinyint) -> 50:tinyint, LongColAddLongColumn(col 51:tinyint, col 5:tinyint)(children: LongColUnaryMinus(col 1:tinyint) -> 51:tinyint) -> 52:tinyint, DoubleColMultiplyDoubleColumn(col 6:double, col 55:double)(children: CastLongToDouble(col 54:tinyint)(children: LongColAddLongColumn(col 53:tinyint, col 5:tinyint)(children: LongColUnaryMinus(col 1:tinyint) -> 53:tinyint) -> 54:tinyint) -> 55:double) -> 56:double, DoubleColUnaryMinus(col 6:double) -> 57:double, DoubleScalarMultiplyDoubleColumn(val 79.5530014038086, col 3:float) -> 58:float, FuncPowerDoubleToDouble(col 62:double)(children: DoubleColDivideLongColumn(col 61:double, col 9:bigint)(children: DoubleColSubtractDoubleColumn(col 7:double, col 60:double)(children: DoubleColDivideLongColumn(col 59:double, col 9:bigint)(children: DoubleColMultiplyDoubleColumn(col 8:double, col 8:double) -> 59:double) -> 60:double) -> 61:double) -> 62:double) -> 63:double, DoubleColUnaryMinus(col 6:double) -> 64:double, FuncPowerDoubleToDouble(col 68:double)(children: DoubleColDivideLongColumn(col 67:double, col 12:bigint)(children: DoubleColSubtractDoubleColumn(col 10:double, col 66:double)(children: DoubleColDivideLongColumn(col 65:double, col 12:bigint)(children: DoubleColMultiplyDoubleColumn(col 11:double, col 11:double) -> 65:double) -> 66:double) -> 67:double) -> 68:double) -> 69:double, DecimalColSubtractDecimalScalar(col 72:decimal(3,0), val 10.175)(children: CastLongToDecimal(col 71:tinyint)(children: LongColAddLongColumn(col 70:tinyint, col 5:tinyint)(children: LongColUnaryMinus(col 1:tinyint) -> 70:tinyint) -> 71:tinyint) -> 72:decimal(3,0)) -> 73:decimal(7,3), DoubleColUnaryMinus(col 74:double)(children: DoubleColUnaryMinus(col 6:double) -> 74:double) -> 75:double, DoubleScalarDivideDoubleColumn(val -26.28, col 77:double)(children: DoubleColUnaryMinus(col 76:double)(children: DoubleColUnaryMinus(col 6:double) -> 76:double) -> 77:double) -> 78:double, DoubleColDivideDoubleColumn(col 82:double, col 83:double)(children: DoubleColMultiplyDoubleColumn(col 6:double, col 81:double)(children: CastLongToDouble(col 80:tinyint)(children: LongColAddLongColumn(col 79:tinyint, col 5:tinyint)(children: LongColUnaryMinus(col 1:tinyint) -> 79:tinyint) -> 80:tinyint) -> 81:double) -> 82:double, CastLongToDouble(col 1:tinyint) -> 83:double) -> 84:double + projectedOutputColumnNums: [0, 1, 2, 3, 4, 16, 5, 19, 6, 24, 20, 25, 26, 27, 30, 50, 32, 31, 13, 41, 14] + selectExpressions: LongColUnaryMinus(col 1:tinyint) -> 16:tinyint, LongColAddLongColumn(col 18:tinyint, col 5:tinyint)(children: LongColUnaryMinus(col 1:tinyint) -> 18:tinyint) -> 19:tinyint, DoubleColMultiplyDoubleColumn(col 6:double, col 20:double)(children: CastLongToDouble(col 35:tinyint)(children: LongColAddLongColumn(col 18:tinyint, col 5:tinyint)(children: LongColUnaryMinus(col 1:tinyint) -> 18:tinyint) -> 35:tinyint) -> 20:double) -> 24:double, DoubleColUnaryMinus(col 6:double) -> 20:double, DoubleScalarMultiplyDoubleColumn(val 79.5530014038086, col 3:float) -> 25:float, FuncPowerDoubleToDouble(col 27:double)(children: DoubleColDivideLongColumn(col 26:double, col 9:bigint)(children: DoubleColSubtractDoubleColumn(col 7:double, col 27:double)(children: DoubleColDivideLongColumn(col 26:double, col 9:bigint)(children: DoubleColMultiplyDoubleColumn(col 8:double, col 8:double) -> 26:double) -> 27:double) -> 26:double) -> 27:double) -> 26:double, DoubleColUnaryMinus(col 6:double) -> 27:double, FuncPowerDoubleToDouble(col 31:double)(children: DoubleColDivideLongColumn(col 30:double, col 12:bigint)(children: DoubleColSubtractDoubleColumn(col 10:double, col 31:double)(children: DoubleColDivideLongColumn(col 30:double, col 12:bigint)(children: DoubleColMultiplyDoubleColumn(col 11:double, col 11:double) -> 30:double) -> 31:double) -> 30:double) -> 31:double) -> 30:double, DecimalColSubtractDecimalScalar(col 37:decimal(3,0), val 10.175)(children: CastLongToDecimal(col 35:tinyint)(children: LongColAddLongColumn(col 18:tinyint, col 5:tinyint)(children: LongColUnaryMinus(col 1:tinyint) -> 18:tinyint) -> 35:tinyint) -> 37:decimal(3,0)) -> 50:decimal(7,3), DoubleColUnaryMinus(col 31:double)(children: DoubleColUnaryMinus(col 6:double) -> 31:double) -> 32:double, DoubleScalarDivideDoubleColumn(val -26.28, col 33:double)(children: DoubleColUnaryMinus(col 31:double)(children: DoubleColUnaryMinus(col 6:double) -> 31:double) -> 33:double) -> 31:double, DoubleColDivideDoubleColumn(col 39:double, col 33:double)(children: DoubleColMultiplyDoubleColumn(col 6:double, col 33:double)(children: CastLongToDouble(col 35:tinyint)(children: LongColAddLongColumn(col 18:tinyint, col 5:tinyint)(children: LongColUnaryMinus(col 1:tinyint) -> 18:tinyint) -> 35:tinyint) -> 33:double) -> 39:double, CastLongToDouble(col 1:tinyint) -> 33:double) -> 41:double Statistics: Num rows: 693 Data size: 142976 Basic stats: COMPLETE Column stats: COMPLETE Reduce Output Operator key expressions: _col0 (type: boolean), _col1 (type: tinyint), _col2 (type: timestamp), _col3 (type: float), _col4 (type: string), _col5 (type: tinyint), _col6 (type: tinyint), _col7 (type: tinyint), _col8 (type: double), _col9 (type: double), _col10 (type: double), _col11 (type: float), _col12 (type: double), _col13 (type: double), _col14 (type: double), _col15 (type: decimal(7,3)), _col16 (type: double), _col17 (type: double), _col18 (type: float), _col19 (type: double), _col20 (type: tinyint) @@ -220,7 +220,7 @@ STAGE PLANS: sort order: +++++++++++++++++++++ Reduce Sink Vectorization: className: VectorReduceSinkObjectHashOperator - keyColumns: 0:boolean, 1:tinyint, 2:timestamp, 3:float, 4:string, 50:tinyint, 5:tinyint, 52:tinyint, 6:double, 56:double, 57:double, 58:float, 63:double, 64:double, 69:double, 73:decimal(7,3), 75:double, 78:double, 13:float, 84:double, 14:tinyint + keyColumns: 0:boolean, 1:tinyint, 2:timestamp, 3:float, 4:string, 16:tinyint, 5:tinyint, 19:tinyint, 6:double, 24:double, 20:double, 25:float, 26:double, 27:double, 30:double, 50:decimal(7,3), 32:double, 31:double, 13:float, 41:double, 14:tinyint native: true nativeConditionsMet: hive.vectorized.execution.reducesink.new.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, No PTF TopN IS true, No DISTINCT columns IS true, BinarySortableSerDe for keys IS true, LazyBinarySerDe for values IS true Statistics: Num rows: 693 Data size: 142976 Basic stats: COMPLETE Column stats: COMPLETE @@ -577,8 +577,8 @@ STAGE PLANS: Select Vectorization: className: VectorSelectOperator native: true - projectedOutputColumnNums: [0, 1, 2, 3, 4, 50, 5, 52, 6, 56, 57, 58, 63, 64, 69, 73, 75, 78, 13, 84, 14] - selectExpressions: LongColUnaryMinus(col 1:tinyint) -> 50:tinyint, LongColAddLongColumn(col 51:tinyint, col 5:tinyint)(children: LongColUnaryMinus(col 1:tinyint) -> 51:tinyint) -> 52:tinyint, DoubleColMultiplyDoubleColumn(col 6:double, col 55:double)(children: CastLongToDouble(col 54:tinyint)(children: LongColAddLongColumn(col 53:tinyint, col 5:tinyint)(children: LongColUnaryMinus(col 1:tinyint) -> 53:tinyint) -> 54:tinyint) -> 55:double) -> 56:double, DoubleColUnaryMinus(col 6:double) -> 57:double, DoubleScalarMultiplyDoubleColumn(val 79.5530014038086, col 3:float) -> 58:float, FuncPowerDoubleToDouble(col 62:double)(children: DoubleColDivideLongColumn(col 61:double, col 9:bigint)(children: DoubleColSubtractDoubleColumn(col 7:double, col 60:double)(children: DoubleColDivideLongColumn(col 59:double, col 9:bigint)(children: DoubleColMultiplyDoubleColumn(col 8:double, col 8:double) -> 59:double) -> 60:double) -> 61:double) -> 62:double) -> 63:double, DoubleColUnaryMinus(col 6:double) -> 64:double, FuncPowerDoubleToDouble(col 68:double)(children: DoubleColDivideLongColumn(col 67:double, col 12:bigint)(children: DoubleColSubtractDoubleColumn(col 10:double, col 66:double)(children: DoubleColDivideLongColumn(col 65:double, col 12:bigint)(children: DoubleColMultiplyDoubleColumn(col 11:double, col 11:double) -> 65:double) -> 66:double) -> 67:double) -> 68:double) -> 69:double, DecimalColSubtractDecimalScalar(col 72:decimal(3,0), val 10.175)(children: CastLongToDecimal(col 71:tinyint)(children: LongColAddLongColumn(col 70:tinyint, col 5:tinyint)(children: LongColUnaryMinus(col 1:tinyint) -> 70:tinyint) -> 71:tinyint) -> 72:decimal(3,0)) -> 73:decimal(7,3), DoubleColUnaryMinus(col 74:double)(children: DoubleColUnaryMinus(col 6:double) -> 74:double) -> 75:double, DoubleScalarDivideDoubleColumn(val -26.28, col 77:double)(children: DoubleColUnaryMinus(col 76:double)(children: DoubleColUnaryMinus(col 6:double) -> 76:double) -> 77:double) -> 78:double, DoubleColDivideDoubleColumn(col 82:double, col 83:double)(children: DoubleColMultiplyDoubleColumn(col 6:double, col 81:double)(children: CastLongToDouble(col 80:tinyint)(children: LongColAddLongColumn(col 79:tinyint, col 5:tinyint)(children: LongColUnaryMinus(col 1:tinyint) -> 79:tinyint) -> 80:tinyint) -> 81:double) -> 82:double, CastLongToDouble(col 1:tinyint) -> 83:double) -> 84:double + projectedOutputColumnNums: [0, 1, 2, 3, 4, 16, 5, 19, 6, 24, 20, 25, 26, 27, 30, 50, 32, 31, 13, 41, 14] + selectExpressions: LongColUnaryMinus(col 1:tinyint) -> 16:tinyint, LongColAddLongColumn(col 18:tinyint, col 5:tinyint)(children: LongColUnaryMinus(col 1:tinyint) -> 18:tinyint) -> 19:tinyint, DoubleColMultiplyDoubleColumn(col 6:double, col 20:double)(children: CastLongToDouble(col 35:tinyint)(children: LongColAddLongColumn(col 18:tinyint, col 5:tinyint)(children: LongColUnaryMinus(col 1:tinyint) -> 18:tinyint) -> 35:tinyint) -> 20:double) -> 24:double, DoubleColUnaryMinus(col 6:double) -> 20:double, DoubleScalarMultiplyDoubleColumn(val 79.5530014038086, col 3:float) -> 25:float, FuncPowerDoubleToDouble(col 27:double)(children: DoubleColDivideLongColumn(col 26:double, col 9:bigint)(children: DoubleColSubtractDoubleColumn(col 7:double, col 27:double)(children: DoubleColDivideLongColumn(col 26:double, col 9:bigint)(children: DoubleColMultiplyDoubleColumn(col 8:double, col 8:double) -> 26:double) -> 27:double) -> 26:double) -> 27:double) -> 26:double, DoubleColUnaryMinus(col 6:double) -> 27:double, FuncPowerDoubleToDouble(col 31:double)(children: DoubleColDivideLongColumn(col 30:double, col 12:bigint)(children: DoubleColSubtractDoubleColumn(col 10:double, col 31:double)(children: DoubleColDivideLongColumn(col 30:double, col 12:bigint)(children: DoubleColMultiplyDoubleColumn(col 11:double, col 11:double) -> 30:double) -> 31:double) -> 30:double) -> 31:double) -> 30:double, DecimalColSubtractDecimalScalar(col 37:decimal(3,0), val 10.175)(children: CastLongToDecimal(col 35:tinyint)(children: LongColAddLongColumn(col 18:tinyint, col 5:tinyint)(children: LongColUnaryMinus(col 1:tinyint) -> 18:tinyint) -> 35:tinyint) -> 37:decimal(3,0)) -> 50:decimal(7,3), DoubleColUnaryMinus(col 31:double)(children: DoubleColUnaryMinus(col 6:double) -> 31:double) -> 32:double, DoubleScalarDivideDoubleColumn(val -26.28, col 33:double)(children: DoubleColUnaryMinus(col 31:double)(children: DoubleColUnaryMinus(col 6:double) -> 31:double) -> 33:double) -> 31:double, DoubleColDivideDoubleColumn(col 39:double, col 33:double)(children: DoubleColMultiplyDoubleColumn(col 6:double, col 33:double)(children: CastLongToDouble(col 35:tinyint)(children: LongColAddLongColumn(col 18:tinyint, col 5:tinyint)(children: LongColUnaryMinus(col 1:tinyint) -> 18:tinyint) -> 35:tinyint) -> 33:double) -> 39:double, CastLongToDouble(col 1:tinyint) -> 33:double) -> 41:double Statistics: Num rows: 693 Data size: 142976 Basic stats: COMPLETE Column stats: COMPLETE Reduce Output Operator key expressions: _col0 (type: boolean), _col1 (type: tinyint), _col2 (type: timestamp), _col3 (type: float), _col4 (type: string), _col5 (type: tinyint), _col6 (type: tinyint), _col7 (type: tinyint), _col8 (type: double), _col9 (type: double), _col10 (type: double), _col11 (type: float), _col12 (type: double), _col13 (type: double), _col14 (type: double), _col15 (type: decimal(7,3)), _col16 (type: double), _col17 (type: double), _col18 (type: float), _col19 (type: double), _col20 (type: tinyint) diff --git ql/src/test/results/clientpositive/llap/vectorization_7.q.out ql/src/test/results/clientpositive/llap/vectorization_7.q.out index 6f5f3a6a68..cb9b02f00b 100644 --- ql/src/test/results/clientpositive/llap/vectorization_7.q.out +++ ql/src/test/results/clientpositive/llap/vectorization_7.q.out @@ -104,8 +104,8 @@ STAGE PLANS: Select Vectorization: className: VectorSelectOperator native: true - projectedOutputColumnNums: [10, 3, 1, 0, 8, 6, 27, 28, 29, 30, 32, 34, 35, 36, 38] - selectExpressions: LongColAddLongColumn(col 3:bigint, col 3:bigint) -> 27:bigint, LongColModuloLongScalar(col 1:int, val -257)(children: col 1:smallint) -> 28:int, LongColUnaryMinus(col 1:smallint) -> 29:smallint, LongColUnaryMinus(col 0:tinyint) -> 30:tinyint, LongColAddLongScalar(col 31:int, val 17)(children: LongColUnaryMinus(col 0:tinyint) -> 31:tinyint) -> 32:int, LongColMultiplyLongColumn(col 3:bigint, col 33:bigint)(children: LongColUnaryMinus(col 1:smallint) -> 33:smallint) -> 34:bigint, LongColModuloLongColumn(col 2:int, col 1:int)(children: col 1:smallint) -> 35:int, LongColUnaryMinus(col 0:tinyint) -> 36:tinyint, LongColModuloLongColumn(col 37:tinyint, col 0:tinyint)(children: LongColUnaryMinus(col 0:tinyint) -> 37:tinyint) -> 38:tinyint + projectedOutputColumnNums: [10, 3, 1, 0, 8, 6, 19, 21, 25, 27, 29, 31, 32, 33, 35] + selectExpressions: LongColAddLongColumn(col 3:bigint, col 3:bigint) -> 19:bigint, LongColModuloLongScalar(col 1:int, val -257)(children: col 1:smallint) -> 21:int, LongColUnaryMinus(col 1:smallint) -> 25:smallint, LongColUnaryMinus(col 0:tinyint) -> 27:tinyint, LongColAddLongScalar(col 28:int, val 17)(children: LongColUnaryMinus(col 0:tinyint) -> 28:tinyint) -> 29:int, LongColMultiplyLongColumn(col 3:bigint, col 30:bigint)(children: LongColUnaryMinus(col 1:smallint) -> 30:smallint) -> 31:bigint, LongColModuloLongColumn(col 2:int, col 1:int)(children: col 1:smallint) -> 32:int, LongColUnaryMinus(col 0:tinyint) -> 33:tinyint, LongColModuloLongColumn(col 34:tinyint, col 0:tinyint)(children: LongColUnaryMinus(col 0:tinyint) -> 34:tinyint) -> 35:tinyint Statistics: Num rows: 11033 Data size: 1323416 Basic stats: COMPLETE Column stats: COMPLETE Reduce Output Operator key expressions: _col0 (type: boolean), _col1 (type: bigint), _col2 (type: smallint), _col3 (type: tinyint), _col4 (type: timestamp), _col5 (type: string), _col6 (type: bigint), _col7 (type: int), _col8 (type: smallint), _col9 (type: tinyint), _col10 (type: int), _col11 (type: bigint), _col12 (type: int), _col13 (type: tinyint), _col14 (type: tinyint) @@ -113,7 +113,7 @@ STAGE PLANS: sort order: +++++++++++++++ Reduce Sink Vectorization: className: VectorReduceSinkObjectHashOperator - keyColumns: 10:boolean, 3:bigint, 1:smallint, 0:tinyint, 8:timestamp, 6:string, 27:bigint, 28:int, 29:smallint, 30:tinyint, 32:int, 34:bigint, 35:int, 36:tinyint, 38:tinyint + keyColumns: 10:boolean, 3:bigint, 1:smallint, 0:tinyint, 8:timestamp, 6:string, 19:bigint, 21:int, 25:smallint, 27:tinyint, 29:int, 31:bigint, 32:int, 33:tinyint, 35:tinyint native: true nativeConditionsMet: hive.vectorized.execution.reducesink.new.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, No PTF TopN IS true, No DISTINCT columns IS true, BinarySortableSerDe for keys IS true, LazyBinarySerDe for values IS true Statistics: Num rows: 11033 Data size: 1323416 Basic stats: COMPLETE Column stats: COMPLETE @@ -134,7 +134,7 @@ STAGE PLANS: includeColumns: [0, 1, 2, 3, 5, 6, 7, 8, 9, 10] dataColumns: ctinyint:tinyint, csmallint:smallint, cint:int, cbigint:bigint, cfloat:float, cdouble:double, cstring1:string, cstring2:string, ctimestamp1:timestamp, ctimestamp2:timestamp, cboolean1:boolean, cboolean2:boolean partitionColumnCount: 0 - scratchColumnTypeNames: [double, double, bigint, bigint, bigint, bigint, bigint, bigint, bigint, bigint, bigint, bigint, bigint, bigint, bigint, bigint, bigint, bigint, bigint, bigint, bigint, bigint, bigint, bigint, bigint, bigint] + scratchColumnTypeNames: [double, double, bigint, bigint, bigint, bigint, bigint, bigint, bigint, bigint, bigint, bigint, bigint, bigint, bigint, bigint, bigint, bigint, bigint, bigint, bigint, bigint, bigint] Reducer 2 Execution mode: vectorized, llap Reduce Vectorization: @@ -368,8 +368,8 @@ STAGE PLANS: Select Vectorization: className: VectorSelectOperator native: true - projectedOutputColumnNums: [10, 3, 1, 0, 8, 6, 27, 28, 29, 30, 32, 34, 35, 36, 38] - selectExpressions: LongColAddLongColumn(col 3:bigint, col 3:bigint) -> 27:bigint, LongColModuloLongScalar(col 1:int, val -257)(children: col 1:smallint) -> 28:int, LongColUnaryMinus(col 1:smallint) -> 29:smallint, LongColUnaryMinus(col 0:tinyint) -> 30:tinyint, LongColAddLongScalar(col 31:int, val 17)(children: LongColUnaryMinus(col 0:tinyint) -> 31:tinyint) -> 32:int, LongColMultiplyLongColumn(col 3:bigint, col 33:bigint)(children: LongColUnaryMinus(col 1:smallint) -> 33:smallint) -> 34:bigint, LongColModuloLongColumn(col 2:int, col 1:int)(children: col 1:smallint) -> 35:int, LongColUnaryMinus(col 0:tinyint) -> 36:tinyint, LongColModuloLongColumn(col 37:tinyint, col 0:tinyint)(children: LongColUnaryMinus(col 0:tinyint) -> 37:tinyint) -> 38:tinyint + projectedOutputColumnNums: [10, 3, 1, 0, 8, 6, 19, 21, 25, 27, 29, 31, 32, 33, 35] + selectExpressions: LongColAddLongColumn(col 3:bigint, col 3:bigint) -> 19:bigint, LongColModuloLongScalar(col 1:int, val -257)(children: col 1:smallint) -> 21:int, LongColUnaryMinus(col 1:smallint) -> 25:smallint, LongColUnaryMinus(col 0:tinyint) -> 27:tinyint, LongColAddLongScalar(col 28:int, val 17)(children: LongColUnaryMinus(col 0:tinyint) -> 28:tinyint) -> 29:int, LongColMultiplyLongColumn(col 3:bigint, col 30:bigint)(children: LongColUnaryMinus(col 1:smallint) -> 30:smallint) -> 31:bigint, LongColModuloLongColumn(col 2:int, col 1:int)(children: col 1:smallint) -> 32:int, LongColUnaryMinus(col 0:tinyint) -> 33:tinyint, LongColModuloLongColumn(col 34:tinyint, col 0:tinyint)(children: LongColUnaryMinus(col 0:tinyint) -> 34:tinyint) -> 35:tinyint Statistics: Num rows: 11033 Data size: 1323416 Basic stats: COMPLETE Column stats: COMPLETE Reduce Output Operator key expressions: _col0 (type: boolean), _col1 (type: bigint), _col2 (type: smallint), _col3 (type: tinyint), _col4 (type: timestamp), _col5 (type: string), _col6 (type: bigint), _col7 (type: int), _col8 (type: smallint), _col9 (type: tinyint), _col10 (type: int), _col11 (type: bigint), _col12 (type: int), _col13 (type: tinyint), _col14 (type: tinyint) diff --git ql/src/test/results/clientpositive/llap/vectorization_8.q.out ql/src/test/results/clientpositive/llap/vectorization_8.q.out index 4cd53cb311..8c6e61dbd6 100644 --- ql/src/test/results/clientpositive/llap/vectorization_8.q.out +++ ql/src/test/results/clientpositive/llap/vectorization_8.q.out @@ -100,8 +100,8 @@ STAGE PLANS: Select Vectorization: className: VectorSelectOperator native: true - projectedOutputColumnNums: [8, 5, 10, 6, 4, 13, 14, 30, 32, 35, 36, 37, 38, 42] - selectExpressions: DoubleColUnaryMinus(col 5:double) -> 13:double, DoubleScalarSubtractDoubleColumn(val -5638.15, col 5:double) -> 14:double, DoubleColMultiplyDoubleScalar(col 5:double, val -257.0) -> 30:double, DoubleColAddDoubleColumn(col 31:float, col 4:float)(children: CastLongToFloatViaLongToDouble(col 2:int) -> 31:float) -> 32:float, DoubleColAddDoubleColumn(col 33:double, col 34:double)(children: DoubleColUnaryMinus(col 5:double) -> 33:double, CastLongToDouble(col 3:bigint) -> 34:double) -> 35:double, DoubleColUnaryMinus(col 5:double) -> 36:double, DoubleScalarSubtractDoubleColumn(val -1.3890000581741333, col 4:float) -> 37:float, DoubleColUnaryMinus(col 4:float) -> 38:float, DoubleColAddDoubleColumn(col 39:double, col 41:double)(children: DoubleScalarSubtractDoubleColumn(val -5638.15, col 5:double) -> 39:double, DoubleColAddDoubleColumn(col 40:float, col 4:float)(children: CastLongToFloatViaLongToDouble(col 2:int) -> 40:float) -> 41:float) -> 42:double + projectedOutputColumnNums: [8, 5, 10, 6, 4, 13, 14, 18, 21, 27, 20, 26, 28, 33] + selectExpressions: DoubleColUnaryMinus(col 5:double) -> 13:double, DoubleScalarSubtractDoubleColumn(val -5638.15, col 5:double) -> 14:double, DoubleColMultiplyDoubleScalar(col 5:double, val -257.0) -> 18:double, DoubleColAddDoubleColumn(col 20:float, col 4:float)(children: CastLongToFloatViaLongToDouble(col 2:int) -> 20:float) -> 21:float, DoubleColAddDoubleColumn(col 20:double, col 26:double)(children: DoubleColUnaryMinus(col 5:double) -> 20:double, CastLongToDouble(col 3:bigint) -> 26:double) -> 27:double, DoubleColUnaryMinus(col 5:double) -> 20:double, DoubleScalarSubtractDoubleColumn(val -1.3890000581741333, col 4:float) -> 26:float, DoubleColUnaryMinus(col 4:float) -> 28:float, DoubleColAddDoubleColumn(col 30:double, col 32:double)(children: DoubleScalarSubtractDoubleColumn(val -5638.15, col 5:double) -> 30:double, DoubleColAddDoubleColumn(col 31:float, col 4:float)(children: CastLongToFloatViaLongToDouble(col 2:int) -> 31:float) -> 32:float) -> 33:double Statistics: Num rows: 3059 Data size: 410040 Basic stats: COMPLETE Column stats: COMPLETE Reduce Output Operator key expressions: _col0 (type: timestamp), _col1 (type: double), _col2 (type: boolean), _col3 (type: string), _col4 (type: float), _col5 (type: double), _col6 (type: double), _col7 (type: double), _col8 (type: float), _col9 (type: double), _col10 (type: double), _col11 (type: float), _col12 (type: float), _col13 (type: double) @@ -109,7 +109,7 @@ STAGE PLANS: sort order: ++++++++++++++ Reduce Sink Vectorization: className: VectorReduceSinkObjectHashOperator - keyColumns: 8:timestamp, 5:double, 10:boolean, 6:string, 4:float, 13:double, 14:double, 30:double, 32:float, 35:double, 36:double, 37:float, 38:float, 42:double + keyColumns: 8:timestamp, 5:double, 10:boolean, 6:string, 4:float, 13:double, 14:double, 18:double, 21:float, 27:double, 20:double, 26:float, 28:float, 33:double native: true nativeConditionsMet: hive.vectorized.execution.reducesink.new.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, No PTF TopN IS true, No DISTINCT columns IS true, BinarySortableSerDe for keys IS true, LazyBinarySerDe for values IS true Statistics: Num rows: 3059 Data size: 410040 Basic stats: COMPLETE Column stats: COMPLETE @@ -130,7 +130,7 @@ STAGE PLANS: includeColumns: [2, 3, 4, 5, 6, 7, 8, 9, 10] dataColumns: ctinyint:tinyint, csmallint:smallint, cint:int, cbigint:bigint, cfloat:float, cdouble:double, cstring1:string, cstring2:string, ctimestamp1:timestamp, ctimestamp2:timestamp, cboolean1:boolean, cboolean2:boolean partitionColumnCount: 0 - scratchColumnTypeNames: [double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double] + scratchColumnTypeNames: [double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double] Reducer 2 Execution mode: vectorized, llap Reduce Vectorization: @@ -351,8 +351,8 @@ STAGE PLANS: Select Vectorization: className: VectorSelectOperator native: true - projectedOutputColumnNums: [8, 5, 10, 6, 4, 13, 14, 30, 32, 35, 36, 37, 38, 42] - selectExpressions: DoubleColUnaryMinus(col 5:double) -> 13:double, DoubleScalarSubtractDoubleColumn(val -5638.15, col 5:double) -> 14:double, DoubleColMultiplyDoubleScalar(col 5:double, val -257.0) -> 30:double, DoubleColAddDoubleColumn(col 31:float, col 4:float)(children: CastLongToFloatViaLongToDouble(col 2:int) -> 31:float) -> 32:float, DoubleColAddDoubleColumn(col 33:double, col 34:double)(children: DoubleColUnaryMinus(col 5:double) -> 33:double, CastLongToDouble(col 3:bigint) -> 34:double) -> 35:double, DoubleColUnaryMinus(col 5:double) -> 36:double, DoubleScalarSubtractDoubleColumn(val -1.3890000581741333, col 4:float) -> 37:float, DoubleColUnaryMinus(col 4:float) -> 38:float, DoubleColAddDoubleColumn(col 39:double, col 41:double)(children: DoubleScalarSubtractDoubleColumn(val -5638.15, col 5:double) -> 39:double, DoubleColAddDoubleColumn(col 40:float, col 4:float)(children: CastLongToFloatViaLongToDouble(col 2:int) -> 40:float) -> 41:float) -> 42:double + projectedOutputColumnNums: [8, 5, 10, 6, 4, 13, 14, 18, 21, 27, 20, 26, 28, 33] + selectExpressions: DoubleColUnaryMinus(col 5:double) -> 13:double, DoubleScalarSubtractDoubleColumn(val -5638.15, col 5:double) -> 14:double, DoubleColMultiplyDoubleScalar(col 5:double, val -257.0) -> 18:double, DoubleColAddDoubleColumn(col 20:float, col 4:float)(children: CastLongToFloatViaLongToDouble(col 2:int) -> 20:float) -> 21:float, DoubleColAddDoubleColumn(col 20:double, col 26:double)(children: DoubleColUnaryMinus(col 5:double) -> 20:double, CastLongToDouble(col 3:bigint) -> 26:double) -> 27:double, DoubleColUnaryMinus(col 5:double) -> 20:double, DoubleScalarSubtractDoubleColumn(val -1.3890000581741333, col 4:float) -> 26:float, DoubleColUnaryMinus(col 4:float) -> 28:float, DoubleColAddDoubleColumn(col 30:double, col 32:double)(children: DoubleScalarSubtractDoubleColumn(val -5638.15, col 5:double) -> 30:double, DoubleColAddDoubleColumn(col 31:float, col 4:float)(children: CastLongToFloatViaLongToDouble(col 2:int) -> 31:float) -> 32:float) -> 33:double Statistics: Num rows: 3059 Data size: 410040 Basic stats: COMPLETE Column stats: COMPLETE Reduce Output Operator key expressions: _col0 (type: timestamp), _col1 (type: double), _col2 (type: boolean), _col3 (type: string), _col4 (type: float), _col5 (type: double), _col6 (type: double), _col7 (type: double), _col8 (type: float), _col9 (type: double), _col10 (type: double), _col11 (type: float), _col12 (type: float), _col13 (type: double) diff --git ql/src/test/results/clientpositive/llap/vectorization_div0.q.out ql/src/test/results/clientpositive/llap/vectorization_div0.q.out index 427e2767ba..e1218d67e2 100644 --- ql/src/test/results/clientpositive/llap/vectorization_div0.q.out +++ ql/src/test/results/clientpositive/llap/vectorization_div0.q.out @@ -286,8 +286,8 @@ STAGE PLANS: Select Vectorization: className: VectorSelectOperator native: true - projectedOutputColumnNums: [20, 23, 26] - selectExpressions: LongColSubtractLongScalar(col 3:bigint, val 988888) -> 20:bigint, DoubleColDivideDoubleColumn(col 5:double, col 22:double)(children: CastLongToDouble(col 21:bigint)(children: LongColSubtractLongScalar(col 3:bigint, val 988888) -> 21:bigint) -> 22:double) -> 23:double, DecimalScalarDivideDecimalColumn(val 1.2, col 25:decimal(19,0))(children: CastLongToDecimal(col 24:bigint)(children: LongColSubtractLongScalar(col 3:bigint, val 988888) -> 24:bigint) -> 25:decimal(19,0)) -> 26:decimal(22,21) + projectedOutputColumnNums: [14, 20, 21] + selectExpressions: LongColSubtractLongScalar(col 3:bigint, val 988888) -> 14:bigint, DoubleColDivideDoubleColumn(col 5:double, col 15:double)(children: CastLongToDouble(col 17:bigint)(children: LongColSubtractLongScalar(col 3:bigint, val 988888) -> 17:bigint) -> 15:double) -> 20:double, DecimalScalarDivideDecimalColumn(val 1.2, col 18:decimal(19,0))(children: CastLongToDecimal(col 17:bigint)(children: LongColSubtractLongScalar(col 3:bigint, val 988888) -> 17:bigint) -> 18:decimal(19,0)) -> 21:decimal(22,21) Statistics: Num rows: 3215 Data size: 411520 Basic stats: COMPLETE Column stats: COMPLETE Reduce Output Operator key expressions: _col0 (type: bigint), _col1 (type: double), _col2 (type: decimal(22,21)) @@ -521,8 +521,8 @@ STAGE PLANS: Select Vectorization: className: VectorSelectOperator native: true - projectedOutputColumnNums: [27, 30, 33, 36, 38, 40] - selectExpressions: DoubleColAddDoubleScalar(col 5:double, val 200.0) -> 27:double, DoubleColDivideDoubleColumn(col 28:double, col 29:double)(children: CastLongToDouble(col 3:bigint) -> 28:double, DoubleColAddDoubleScalar(col 5:double, val 200.0) -> 29:double) -> 30:double, DoubleColDivideDoubleColumn(col 31:double, col 32:double)(children: DoubleColAddDoubleScalar(col 5:double, val 200.0) -> 31:double, DoubleColAddDoubleScalar(col 5:double, val 200.0) -> 32:double) -> 33:double, DoubleColDivideDoubleColumn(col 34:double, col 35:double)(children: CastLongToDouble(col 3:bigint) -> 34:double, DoubleColAddDoubleScalar(col 5:double, val 200.0) -> 35:double) -> 36:double, DoubleScalarDivideDoubleColumn(val 3.0, col 37:double)(children: DoubleColAddDoubleScalar(col 5:double, val 200.0) -> 37:double) -> 38:double, DoubleScalarDivideDoubleColumn(val 1.2, col 39:double)(children: DoubleColAddDoubleScalar(col 5:double, val 200.0) -> 39:double) -> 40:double + projectedOutputColumnNums: [14, 18, 20, 21, 17, 23] + selectExpressions: DoubleColAddDoubleScalar(col 5:double, val 200.0) -> 14:double, DoubleColDivideDoubleColumn(col 15:double, col 17:double)(children: CastLongToDouble(col 3:bigint) -> 15:double, DoubleColAddDoubleScalar(col 5:double, val 200.0) -> 17:double) -> 18:double, DoubleColDivideDoubleColumn(col 15:double, col 17:double)(children: DoubleColAddDoubleScalar(col 5:double, val 200.0) -> 15:double, DoubleColAddDoubleScalar(col 5:double, val 200.0) -> 17:double) -> 20:double, DoubleColDivideDoubleColumn(col 15:double, col 17:double)(children: CastLongToDouble(col 3:bigint) -> 15:double, DoubleColAddDoubleScalar(col 5:double, val 200.0) -> 17:double) -> 21:double, DoubleScalarDivideDoubleColumn(val 3.0, col 15:double)(children: DoubleColAddDoubleScalar(col 5:double, val 200.0) -> 15:double) -> 17:double, DoubleScalarDivideDoubleColumn(val 1.2, col 15:double)(children: DoubleColAddDoubleScalar(col 5:double, val 200.0) -> 15:double) -> 23:double Statistics: Num rows: 20 Data size: 960 Basic stats: COMPLETE Column stats: COMPLETE Reduce Output Operator key expressions: _col0 (type: double), _col1 (type: double), _col2 (type: double), _col3 (type: double), _col4 (type: double), _col5 (type: double) @@ -756,8 +756,8 @@ STAGE PLANS: Select Vectorization: className: VectorSelectOperator native: true - projectedOutputColumnNums: [2, 3, 0, 32, 36, 39, 41, 43, 44] - selectExpressions: DoubleColDivideDoubleColumn(col 29:double, col 31:double)(children: CastLongToDouble(col 2:int) -> 29:double, CastLongToDouble(col 30:int)(children: LongColSubtractLongScalar(col 2:int, val 528534767) -> 30:int) -> 31:double) -> 32:double, DoubleColDivideDoubleColumn(col 33:double, col 35:double)(children: CastLongToDouble(col 3:bigint) -> 33:double, CastLongToDouble(col 34:bigint)(children: LongColSubtractLongScalar(col 3:bigint, val 1018195815) -> 34:bigint) -> 35:double) -> 36:double, DoubleColDivideDoubleColumn(col 37:double, col 38:double)(children: CastLongToDouble(col 0:tinyint) -> 37:double, CastLongToDouble(col 0:tinyint) -> 38:double) -> 39:double, LongColModuloLongColumn(col 2:int, col 40:int)(children: LongColSubtractLongScalar(col 2:int, val 528534767) -> 40:int) -> 41:int, LongColModuloLongColumn(col 3:bigint, col 42:bigint)(children: LongColSubtractLongScalar(col 3:bigint, val 1018195815) -> 42:bigint) -> 43:bigint, LongColModuloLongColumn(col 0:tinyint, col 0:tinyint) -> 44:tinyint + projectedOutputColumnNums: [2, 3, 0, 17, 19, 21, 18, 24, 14] + selectExpressions: DoubleColDivideDoubleColumn(col 13:double, col 15:double)(children: CastLongToDouble(col 2:int) -> 13:double, CastLongToDouble(col 14:int)(children: LongColSubtractLongScalar(col 2:int, val 528534767) -> 14:int) -> 15:double) -> 17:double, DoubleColDivideDoubleColumn(col 13:double, col 15:double)(children: CastLongToDouble(col 3:bigint) -> 13:double, CastLongToDouble(col 14:bigint)(children: LongColSubtractLongScalar(col 3:bigint, val 1018195815) -> 14:bigint) -> 15:double) -> 19:double, DoubleColDivideDoubleColumn(col 13:double, col 15:double)(children: CastLongToDouble(col 0:tinyint) -> 13:double, CastLongToDouble(col 0:tinyint) -> 15:double) -> 21:double, LongColModuloLongColumn(col 2:int, col 14:int)(children: LongColSubtractLongScalar(col 2:int, val 528534767) -> 14:int) -> 18:int, LongColModuloLongColumn(col 3:bigint, col 14:bigint)(children: LongColSubtractLongScalar(col 3:bigint, val 1018195815) -> 14:bigint) -> 24:bigint, LongColModuloLongColumn(col 0:tinyint, col 0:tinyint) -> 14:tinyint Statistics: Num rows: 3378 Data size: 161792 Basic stats: COMPLETE Column stats: COMPLETE Reduce Output Operator key expressions: _col0 (type: int), _col1 (type: bigint), _col2 (type: tinyint), _col3 (type: double), _col4 (type: double), _col5 (type: double), _col6 (type: int), _col7 (type: bigint), _col8 (type: tinyint) diff --git ql/src/test/results/clientpositive/llap/vectorization_short_regress.q.out ql/src/test/results/clientpositive/llap/vectorization_short_regress.q.out index fe80a40620..736e300f21 100644 --- ql/src/test/results/clientpositive/llap/vectorization_short_regress.q.out +++ ql/src/test/results/clientpositive/llap/vectorization_short_regress.q.out @@ -1141,8 +1141,8 @@ STAGE PLANS: Select Vectorization: className: VectorSelectOperator native: true - projectedOutputColumnNums: [2, 5, 9, 6, 11, 0, 4, 8, 1, 3, 42, 43, 45, 46, 48, 52, 53, 58, 14, 15, 60, 61, 63] - selectExpressions: LongScalarMultiplyLongColumn(val -3728, col 3:bigint) -> 42:bigint, LongColUnaryMinus(col 2:int) -> 43:int, DecimalScalarSubtractDecimalColumn(val -863.257, col 44:decimal(10,0))(children: CastLongToDecimal(col 2:int) -> 44:decimal(10,0)) -> 45:decimal(14,3), LongColUnaryMinus(col 1:smallint) -> 46:smallint, LongColSubtractLongColumn(col 1:smallint, col 47:smallint)(children: LongColUnaryMinus(col 1:smallint) -> 47:smallint) -> 48:smallint, LongColAddLongColumn(col 50:smallint, col 51:smallint)(children: LongColSubtractLongColumn(col 1:smallint, col 49:smallint)(children: LongColUnaryMinus(col 1:smallint) -> 49:smallint) -> 50:smallint, LongColUnaryMinus(col 1:smallint) -> 51:smallint) -> 52:smallint, DoubleColDivideDoubleColumn(col 14:double, col 15:double)(children: CastLongToDouble(col 2:int) -> 14:double, CastLongToDouble(col 2:int) -> 15:double) -> 53:double, DecimalColSubtractDecimalScalar(col 57:decimal(14,3), val -26.28)(children: DecimalScalarSubtractDecimalColumn(val -863.257, col 56:decimal(10,0))(children: CastLongToDecimal(col 2:int) -> 56:decimal(10,0)) -> 57:decimal(14,3)) -> 58:decimal(15,3), DoubleColUnaryMinus(col 4:float) -> 14:float, DoubleColMultiplyDoubleScalar(col 5:double, val -89010.0) -> 15:double, DoubleColDivideDoubleScalar(col 59:double, val 988888.0)(children: CastLongToDouble(col 0:tinyint) -> 59:double) -> 60:double, LongColUnaryMinus(col 0:tinyint) -> 61:tinyint, DecimalScalarDivideDecimalColumn(val 79.553, col 62:decimal(3,0))(children: CastLongToDecimal(col 0:tinyint) -> 62:decimal(3,0)) -> 63:decimal(9,7) + projectedOutputColumnNums: [2, 5, 9, 6, 11, 0, 4, 8, 1, 3, 21, 23, 33, 24, 42, 44, 27, 47, 14, 15, 37, 25, 48] + selectExpressions: LongScalarMultiplyLongColumn(val -3728, col 3:bigint) -> 21:bigint, LongColUnaryMinus(col 2:int) -> 23:int, DecimalScalarSubtractDecimalColumn(val -863.257, col 18:decimal(10,0))(children: CastLongToDecimal(col 2:int) -> 18:decimal(10,0)) -> 33:decimal(14,3), LongColUnaryMinus(col 1:smallint) -> 24:smallint, LongColSubtractLongColumn(col 1:smallint, col 25:smallint)(children: LongColUnaryMinus(col 1:smallint) -> 25:smallint) -> 42:smallint, LongColAddLongColumn(col 43:smallint, col 25:smallint)(children: LongColSubtractLongColumn(col 1:smallint, col 25:smallint)(children: LongColUnaryMinus(col 1:smallint) -> 25:smallint) -> 43:smallint, LongColUnaryMinus(col 1:smallint) -> 25:smallint) -> 44:smallint, DoubleColDivideDoubleColumn(col 14:double, col 15:double)(children: CastLongToDouble(col 2:int) -> 14:double, CastLongToDouble(col 2:int) -> 15:double) -> 27:double, DecimalColSubtractDecimalScalar(col 46:decimal(14,3), val -26.28)(children: DecimalScalarSubtractDecimalColumn(val -863.257, col 18:decimal(10,0))(children: CastLongToDecimal(col 2:int) -> 18:decimal(10,0)) -> 46:decimal(14,3)) -> 47:decimal(15,3), DoubleColUnaryMinus(col 4:float) -> 14:float, DoubleColMultiplyDoubleScalar(col 5:double, val -89010.0) -> 15:double, DoubleColDivideDoubleScalar(col 28:double, val 988888.0)(children: CastLongToDouble(col 0:tinyint) -> 28:double) -> 37:double, LongColUnaryMinus(col 0:tinyint) -> 25:tinyint, DecimalScalarDivideDecimalColumn(val 79.553, col 40:decimal(3,0))(children: CastLongToDecimal(col 0:tinyint) -> 40:decimal(3,0)) -> 48:decimal(9,7) Statistics: Num rows: 9898 Data size: 4905318 Basic stats: COMPLETE Column stats: COMPLETE Reduce Output Operator key expressions: _col0 (type: int), _col1 (type: double), _col2 (type: timestamp), _col3 (type: string), _col4 (type: boolean), _col5 (type: tinyint), _col6 (type: float), _col7 (type: timestamp), _col8 (type: smallint), _col9 (type: bigint), _col10 (type: bigint), _col11 (type: int), _col12 (type: decimal(14,3)), _col13 (type: smallint), _col14 (type: smallint), _col15 (type: smallint), _col16 (type: double), _col17 (type: decimal(15,3)), _col18 (type: float), _col19 (type: double), _col20 (type: double), _col21 (type: tinyint), _col22 (type: decimal(9,7)) @@ -1454,8 +1454,8 @@ STAGE PLANS: Select Vectorization: className: VectorSelectOperator native: true - projectedOutputColumnNums: [2, 3, 6, 10, 4, 5, 9, 1, 7, 11, 43, 45, 13, 48, 49, 51, 54, 56, 57, 58, 62, 63, 64, 65, 66] - selectExpressions: DoubleColDivideDoubleColumn(col 13:double, col 42:double)(children: CastLongToDouble(col 2:int) -> 13:double, CastLongToDouble(col 3:bigint) -> 42:double) -> 43:double, DecimalColModuloDecimalScalar(col 44:decimal(19,0), val 79.553)(children: CastLongToDecimal(col 3:bigint) -> 44:decimal(19,0)) -> 45:decimal(5,3), DoubleColUnaryMinus(col 47:double)(children: DoubleColDivideDoubleColumn(col 13:double, col 46:double)(children: CastLongToDouble(col 2:int) -> 13:double, CastLongToDouble(col 3:bigint) -> 46:double) -> 47:double) -> 13:double, DoubleScalarModuloDoubleColumn(val 10.175000190734863, col 4:float) -> 48:float, DoubleColUnaryMinus(col 4:float) -> 49:float, DoubleColSubtractDoubleColumn(col 4:float, col 50:float)(children: DoubleColUnaryMinus(col 4:float) -> 50:float) -> 51:float, DoubleColModuloDoubleScalar(col 53:float, val -6432.0)(children: DoubleColSubtractDoubleColumn(col 4:float, col 52:float)(children: DoubleColUnaryMinus(col 4:float) -> 52:float) -> 53:float) -> 54:float, DoubleColMultiplyDoubleColumn(col 5:double, col 55:double)(children: CastLongToDouble(col 1:smallint) -> 55:double) -> 56:double, DoubleColUnaryMinus(col 5:double) -> 57:double, LongColUnaryMinus(col 3:bigint) -> 58:bigint, DoubleColSubtractDoubleColumn(col 4:double, col 61:double)(children: col 4:float, DoubleColDivideDoubleColumn(col 59:double, col 60:double)(children: CastLongToDouble(col 2:int) -> 59:double, CastLongToDouble(col 3:bigint) -> 60:double) -> 61:double) -> 62:double, LongColUnaryMinus(col 1:smallint) -> 63:smallint, LongScalarModuloLongColumn(val 3569, col 3:bigint) -> 64:bigint, DoubleScalarSubtractDoubleColumn(val 359.0, col 5:double) -> 65:double, LongColUnaryMinus(col 1:smallint) -> 66:smallint + projectedOutputColumnNums: [2, 3, 6, 10, 4, 5, 9, 1, 7, 11, 15, 42, 13, 14, 19, 21, 20, 27, 25, 43, 28, 44, 45, 30, 46] + selectExpressions: DoubleColDivideDoubleColumn(col 13:double, col 14:double)(children: CastLongToDouble(col 2:int) -> 13:double, CastLongToDouble(col 3:bigint) -> 14:double) -> 15:double, DecimalColModuloDecimalScalar(col 17:decimal(19,0), val 79.553)(children: CastLongToDecimal(col 3:bigint) -> 17:decimal(19,0)) -> 42:decimal(5,3), DoubleColUnaryMinus(col 19:double)(children: DoubleColDivideDoubleColumn(col 13:double, col 14:double)(children: CastLongToDouble(col 2:int) -> 13:double, CastLongToDouble(col 3:bigint) -> 14:double) -> 19:double) -> 13:double, DoubleScalarModuloDoubleColumn(val 10.175000190734863, col 4:float) -> 14:float, DoubleColUnaryMinus(col 4:float) -> 19:float, DoubleColSubtractDoubleColumn(col 4:float, col 20:float)(children: DoubleColUnaryMinus(col 4:float) -> 20:float) -> 21:float, DoubleColModuloDoubleScalar(col 25:float, val -6432.0)(children: DoubleColSubtractDoubleColumn(col 4:float, col 20:float)(children: DoubleColUnaryMinus(col 4:float) -> 20:float) -> 25:float) -> 20:float, DoubleColMultiplyDoubleColumn(col 5:double, col 25:double)(children: CastLongToDouble(col 1:smallint) -> 25:double) -> 27:double, DoubleColUnaryMinus(col 5:double) -> 25:double, LongColUnaryMinus(col 3:bigint) -> 43:bigint, DoubleColSubtractDoubleColumn(col 4:double, col 34:double)(children: col 4:float, DoubleColDivideDoubleColumn(col 28:double, col 30:double)(children: CastLongToDouble(col 2:int) -> 28:double, CastLongToDouble(col 3:bigint) -> 30:double) -> 34:double) -> 28:double, LongColUnaryMinus(col 1:smallint) -> 44:smallint, LongScalarModuloLongColumn(val 3569, col 3:bigint) -> 45:bigint, DoubleScalarSubtractDoubleColumn(val 359.0, col 5:double) -> 30:double, LongColUnaryMinus(col 1:smallint) -> 46:smallint Statistics: Num rows: 8194 Data size: 2713706 Basic stats: COMPLETE Column stats: COMPLETE Reduce Output Operator key expressions: _col0 (type: int), _col1 (type: bigint), _col2 (type: string), _col3 (type: boolean), _col4 (type: float), _col5 (type: double), _col6 (type: timestamp), _col7 (type: smallint), _col8 (type: string), _col9 (type: boolean), _col10 (type: double), _col11 (type: decimal(5,3)), _col12 (type: double), _col13 (type: float), _col14 (type: float), _col15 (type: float), _col16 (type: float), _col17 (type: double), _col18 (type: double), _col19 (type: bigint), _col20 (type: double), _col21 (type: smallint), _col22 (type: bigint), _col23 (type: double), _col24 (type: smallint) @@ -1716,8 +1716,8 @@ STAGE PLANS: Select Vectorization: className: VectorSelectOperator native: true - projectedOutputColumnNums: [2, 6, 11, 9, 5, 4, 3, 1, 10, 39, 40, 41, 13, 43, 15, 16, 46, 49, 51, 53, 54, 56] - selectExpressions: LongColAddLongColumn(col 2:int, col 1:int)(children: col 1:smallint) -> 39:int, LongColSubtractLongColumn(col 3:bigint, col 0:bigint)(children: col 0:tinyint) -> 40:bigint, LongColUnaryMinus(col 3:bigint) -> 41:bigint, DoubleColUnaryMinus(col 4:float) -> 13:float, LongColAddLongColumn(col 42:bigint, col 3:bigint)(children: LongColSubtractLongColumn(col 3:bigint, col 0:bigint)(children: col 0:tinyint) -> 42:bigint) -> 43:bigint, DoubleColDivideDoubleColumn(col 5:double, col 5:double) -> 15:double, DoubleColUnaryMinus(col 5:double) -> 16:double, LongColMultiplyLongColumn(col 44:bigint, col 45:bigint)(children: LongColAddLongColumn(col 2:int, col 1:int)(children: col 1:smallint) -> 44:int, LongColUnaryMinus(col 3:bigint) -> 45:bigint) -> 46:bigint, DoubleColAddDoubleColumn(col 47:double, col 48:double)(children: DoubleColUnaryMinus(col 5:double) -> 47:double, CastLongToDouble(col 3:bigint) -> 48:double) -> 49:double, DecimalScalarDivideDecimalColumn(val -1.389, col 50:decimal(3,0))(children: CastLongToDecimal(col 0:tinyint) -> 50:decimal(3,0)) -> 51:decimal(8,7), DoubleColModuloDoubleColumn(col 52:double, col 5:double)(children: CastLongToDouble(col 3:bigint) -> 52:double) -> 53:double, LongColUnaryMinus(col 1:smallint) -> 54:smallint, LongColAddLongColumn(col 1:int, col 55:int)(children: col 1:smallint, LongColAddLongColumn(col 2:int, col 1:int)(children: col 1:smallint) -> 55:int) -> 56:int + projectedOutputColumnNums: [2, 6, 11, 9, 5, 4, 3, 1, 10, 22, 26, 27, 13, 39, 15, 16, 41, 34, 42, 30, 37, 44] + selectExpressions: LongColAddLongColumn(col 2:int, col 1:int)(children: col 1:smallint) -> 22:int, LongColSubtractLongColumn(col 3:bigint, col 0:bigint)(children: col 0:tinyint) -> 26:bigint, LongColUnaryMinus(col 3:bigint) -> 27:bigint, DoubleColUnaryMinus(col 4:float) -> 13:float, LongColAddLongColumn(col 37:bigint, col 3:bigint)(children: LongColSubtractLongColumn(col 3:bigint, col 0:bigint)(children: col 0:tinyint) -> 37:bigint) -> 39:bigint, DoubleColDivideDoubleColumn(col 5:double, col 5:double) -> 15:double, DoubleColUnaryMinus(col 5:double) -> 16:double, LongColMultiplyLongColumn(col 37:bigint, col 40:bigint)(children: LongColAddLongColumn(col 2:int, col 1:int)(children: col 1:smallint) -> 37:int, LongColUnaryMinus(col 3:bigint) -> 40:bigint) -> 41:bigint, DoubleColAddDoubleColumn(col 29:double, col 30:double)(children: DoubleColUnaryMinus(col 5:double) -> 29:double, CastLongToDouble(col 3:bigint) -> 30:double) -> 34:double, DecimalScalarDivideDecimalColumn(val -1.389, col 32:decimal(3,0))(children: CastLongToDecimal(col 0:tinyint) -> 32:decimal(3,0)) -> 42:decimal(8,7), DoubleColModuloDoubleColumn(col 29:double, col 5:double)(children: CastLongToDouble(col 3:bigint) -> 29:double) -> 30:double, LongColUnaryMinus(col 1:smallint) -> 37:smallint, LongColAddLongColumn(col 1:int, col 43:int)(children: col 1:smallint, LongColAddLongColumn(col 2:int, col 1:int)(children: col 1:smallint) -> 43:int) -> 44:int Statistics: Num rows: 10922 Data size: 3012774 Basic stats: COMPLETE Column stats: COMPLETE Reduce Output Operator key expressions: _col8 (type: boolean), _col1 (type: string), _col3 (type: timestamp), _col5 (type: float), _col6 (type: bigint), _col4 (type: double), _col0 (type: int), _col7 (type: smallint), _col9 (type: int), _col10 (type: bigint), _col11 (type: bigint), _col12 (type: float), _col13 (type: bigint), _col14 (type: double), _col15 (type: double), _col16 (type: bigint), _col17 (type: double), _col18 (type: decimal(8,7)), _col19 (type: double), _col20 (type: smallint), _col21 (type: int) @@ -2036,8 +2036,8 @@ STAGE PLANS: Select Vectorization: className: VectorSelectOperator native: true - projectedOutputColumnNums: [8, 7, 5, 4, 3, 1, 29, 30, 31, 32, 33, 35, 36, 37, 38, 40] - selectExpressions: DoubleColDivideDoubleScalar(col 28:double, val 3569.0)(children: CastLongToDouble(col 3:bigint) -> 28:double) -> 29:double, LongScalarSubtractLongColumn(val -257, col 1:int)(children: col 1:smallint) -> 30:int, DoubleScalarMultiplyDoubleColumn(val -6432.0, col 4:float) -> 31:float, DoubleColUnaryMinus(col 5:double) -> 32:double, DoubleColMultiplyDoubleScalar(col 5:double, val 10.175) -> 33:double, DoubleColDivideDoubleColumn(col 34:double, col 4:double)(children: DoubleScalarMultiplyDoubleColumn(val -6432.0, col 4:float) -> 34:float, col 4:float) -> 35:double, DoubleColUnaryMinus(col 4:float) -> 36:float, LongColModuloLongColumn(col 2:int, col 1:int)(children: col 1:smallint) -> 37:int, DoubleColUnaryMinus(col 5:double) -> 38:double, DoubleColMultiplyDoubleColumn(col 5:double, col 39:double)(children: DoubleColUnaryMinus(col 5:double) -> 39:double) -> 40:double + projectedOutputColumnNums: [8, 7, 5, 4, 3, 1, 21, 28, 15, 26, 29, 31, 32, 33, 34, 36] + selectExpressions: DoubleColDivideDoubleScalar(col 15:double, val 3569.0)(children: CastLongToDouble(col 3:bigint) -> 15:double) -> 21:double, LongScalarSubtractLongColumn(val -257, col 1:int)(children: col 1:smallint) -> 28:int, DoubleScalarMultiplyDoubleColumn(val -6432.0, col 4:float) -> 15:float, DoubleColUnaryMinus(col 5:double) -> 26:double, DoubleColMultiplyDoubleScalar(col 5:double, val 10.175) -> 29:double, DoubleColDivideDoubleColumn(col 30:double, col 4:double)(children: DoubleScalarMultiplyDoubleColumn(val -6432.0, col 4:float) -> 30:float, col 4:float) -> 31:double, DoubleColUnaryMinus(col 4:float) -> 32:float, LongColModuloLongColumn(col 2:int, col 1:int)(children: col 1:smallint) -> 33:int, DoubleColUnaryMinus(col 5:double) -> 34:double, DoubleColMultiplyDoubleColumn(col 5:double, col 35:double)(children: DoubleColUnaryMinus(col 5:double) -> 35:double) -> 36:double Statistics: Num rows: 3868 Data size: 552696 Basic stats: COMPLETE Column stats: COMPLETE Reduce Output Operator key expressions: _col5 (type: smallint), _col1 (type: string), _col2 (type: double), _col3 (type: float), _col4 (type: bigint), _col6 (type: double), _col7 (type: int), _col8 (type: float), _col9 (type: double), _col10 (type: double), _col11 (type: double), _col12 (type: float), _col13 (type: int), _col14 (type: double), _col15 (type: double) @@ -2377,8 +2377,8 @@ STAGE PLANS: Select Vectorization: className: VectorSelectOperator native: true - projectedOutputColumnNums: [0, 34, 42, 44, 4, 48, 50, 54, 57, 8, 58] - selectExpressions: LongColModuloLongScalar(col 0:int, val -75)(children: col 0:smallint) -> 34:int, FuncPowerDoubleToDouble(col 41:double)(children: DoubleColDivideLongColumn(col 37:double, col 40:bigint)(children: DoubleColSubtractDoubleColumn(col 1:double, col 36:double)(children: DoubleColDivideLongColumn(col 35:double, col 3:bigint)(children: DoubleColMultiplyDoubleColumn(col 2:double, col 2:double) -> 35:double) -> 36:double) -> 37:double, IfExprNullCondExpr(col 38:boolean, null, col 39:bigint)(children: LongColEqualLongScalar(col 3:bigint, val 1) -> 38:boolean, LongColSubtractLongScalar(col 3:bigint, val 1) -> 39:bigint) -> 40:bigint) -> 41:double) -> 42:double, DecimalScalarDivideDecimalColumn(val -1.389, col 43:decimal(5,0))(children: CastLongToDecimal(col 0:smallint) -> 43:decimal(5,0)) -> 44:decimal(10,9), DoubleColDivideDoubleColumn(col 46:double, col 47:double)(children: CastLongToDouble(col 45:int)(children: LongColModuloLongScalar(col 0:int, val -75)(children: col 0:smallint) -> 45:int) -> 46:double, CastLongToDouble(col 4:bigint) -> 47:double) -> 48:double, LongColUnaryMinus(col 49:int)(children: LongColModuloLongScalar(col 0:int, val -75)(children: col 0:smallint) -> 49:int) -> 50:int, DoubleColDivideLongColumn(col 53:double, col 7:bigint)(children: DoubleColSubtractDoubleColumn(col 5:double, col 52:double)(children: DoubleColDivideLongColumn(col 51:double, col 7:bigint)(children: DoubleColMultiplyDoubleColumn(col 6:double, col 6:double) -> 51:double) -> 52:double) -> 53:double) -> 54:double, LongColUnaryMinus(col 56:int)(children: LongColUnaryMinus(col 55:int)(children: LongColModuloLongScalar(col 0:int, val -75)(children: col 0:smallint) -> 55:int) -> 56:int) -> 57:int, LongColSubtractLongScalar(col 8:bigint, val -89010) -> 58:bigint + projectedOutputColumnNums: [0, 15, 10, 34, 4, 16, 31, 12, 30, 8, 36] + selectExpressions: LongColModuloLongScalar(col 0:int, val -75)(children: col 0:smallint) -> 15:int, FuncPowerDoubleToDouble(col 11:double)(children: DoubleColDivideLongColumn(col 10:double, col 30:bigint)(children: DoubleColSubtractDoubleColumn(col 1:double, col 11:double)(children: DoubleColDivideLongColumn(col 10:double, col 3:bigint)(children: DoubleColMultiplyDoubleColumn(col 2:double, col 2:double) -> 10:double) -> 11:double) -> 10:double, IfExprNullCondExpr(col 20:boolean, null, col 24:bigint)(children: LongColEqualLongScalar(col 3:bigint, val 1) -> 20:boolean, LongColSubtractLongScalar(col 3:bigint, val 1) -> 24:bigint) -> 30:bigint) -> 11:double) -> 10:double, DecimalScalarDivideDecimalColumn(val -1.389, col 18:decimal(5,0))(children: CastLongToDecimal(col 0:smallint) -> 18:decimal(5,0)) -> 34:decimal(10,9), DoubleColDivideDoubleColumn(col 11:double, col 12:double)(children: CastLongToDouble(col 30:int)(children: LongColModuloLongScalar(col 0:int, val -75)(children: col 0:smallint) -> 30:int) -> 11:double, CastLongToDouble(col 4:bigint) -> 12:double) -> 16:double, LongColUnaryMinus(col 30:int)(children: LongColModuloLongScalar(col 0:int, val -75)(children: col 0:smallint) -> 30:int) -> 31:int, DoubleColDivideLongColumn(col 11:double, col 7:bigint)(children: DoubleColSubtractDoubleColumn(col 5:double, col 12:double)(children: DoubleColDivideLongColumn(col 11:double, col 7:bigint)(children: DoubleColMultiplyDoubleColumn(col 6:double, col 6:double) -> 11:double) -> 12:double) -> 11:double) -> 12:double, LongColUnaryMinus(col 35:int)(children: LongColUnaryMinus(col 30:int)(children: LongColModuloLongScalar(col 0:int, val -75)(children: col 0:smallint) -> 30:int) -> 35:int) -> 30:int, LongColSubtractLongScalar(col 8:bigint, val -89010) -> 36:bigint Statistics: Num rows: 227 Data size: 39036 Basic stats: COMPLETE Column stats: COMPLETE Reduce Output Operator key expressions: _col0 (type: smallint), _col1 (type: int), _col2 (type: double), _col3 (type: decimal(10,9)), _col4 (type: bigint), _col5 (type: double), _col6 (type: int), _col7 (type: double), _col8 (type: int), _col9 (type: bigint), _col10 (type: bigint) @@ -3011,8 +3011,8 @@ STAGE PLANS: Select Vectorization: className: VectorSelectOperator native: true - projectedOutputColumnNums: [0, 1, 341, 347, 353, 355, 361, 367, 7, 368, 381, 8, 397, 404, 411, 435, 442, 450, 454, 457, 459, 466, 507, 515, 516, 558, 562, 563, 16, 567, 581, 589, 592, 597, 14, 626, 628, 7, 653] - selectExpressions: FuncPowerDoubleToDouble(col 340:double)(children: DoubleColDivideLongColumn(col 339:double, col 4:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 338:double)(children: DoubleColDivideLongColumn(col 337:double, col 4:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 337:double) -> 338:double) -> 339:double) -> 340:double) -> 341:double, DoubleColMultiplyDoubleScalar(col 346:double, val 10.175)(children: FuncPowerDoubleToDouble(col 345:double)(children: DoubleColDivideLongColumn(col 344:double, col 4:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 343:double)(children: DoubleColDivideLongColumn(col 342:double, col 4:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 342:double) -> 343:double) -> 344:double) -> 345:double) -> 346:double) -> 347:double, DoubleColUnaryMinus(col 352:double)(children: FuncPowerDoubleToDouble(col 351:double)(children: DoubleColDivideLongColumn(col 350:double, col 4:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 349:double)(children: DoubleColDivideLongColumn(col 348:double, col 4:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 348:double) -> 349:double) -> 350:double) -> 351:double) -> 352:double) -> 353:double, DoubleColDivideLongColumn(col 354:double, col 6:bigint)(children: CastLongToDouble(col 5:bigint) -> 354:double) -> 355:double, DoubleColUnaryMinus(col 360:double)(children: FuncPowerDoubleToDouble(col 359:double)(children: DoubleColDivideLongColumn(col 358:double, col 4:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 357:double)(children: DoubleColDivideLongColumn(col 356:double, col 4:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 356:double) -> 357:double) -> 358:double) -> 359:double) -> 360:double) -> 361:double, DoubleScalarSubtractDoubleColumn(val -26.28, col 366:double)(children: FuncPowerDoubleToDouble(col 365:double)(children: DoubleColDivideLongColumn(col 364:double, col 4:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 363:double)(children: DoubleColDivideLongColumn(col 362:double, col 4:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 362:double) -> 363:double) -> 364:double) -> 365:double) -> 366:double) -> 367:double, LongColUnaryMinus(col 7:bigint) -> 368:bigint, DoubleColMultiplyDoubleColumn(col 374:double, col 380:double)(children: DoubleScalarSubtractDoubleColumn(val -26.28, col 373:double)(children: FuncPowerDoubleToDouble(col 372:double)(children: DoubleColDivideLongColumn(col 371:double, col 4:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 370:double)(children: DoubleColDivideLongColumn(col 369:double, col 4:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 369:double) -> 370:double) -> 371:double) -> 372:double) -> 373:double) -> 374:double, DoubleColUnaryMinus(col 379:double)(children: FuncPowerDoubleToDouble(col 378:double)(children: DoubleColDivideLongColumn(col 377:double, col 4:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 376:double)(children: DoubleColDivideLongColumn(col 375:double, col 4:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 375:double) -> 376:double) -> 377:double) -> 378:double) -> 379:double) -> 380:double) -> 381:double, DoubleColMultiplyDoubleColumn(col 394:double, col 396:double)(children: DoubleColMultiplyDoubleColumn(col 387:double, col 393:double)(children: DoubleScalarSubtractDoubleColumn(val -26.28, col 386:double)(children: FuncPowerDoubleToDouble(col 385:double)(children: DoubleColDivideLongColumn(col 384:double, col 4:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 383:double)(children: DoubleColDivideLongColumn(col 382:double, col 4:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 382:double) -> 383:double) -> 384:double) -> 385:double) -> 386:double) -> 387:double, DoubleColUnaryMinus(col 392:double)(children: FuncPowerDoubleToDouble(col 391:double)(children: DoubleColDivideLongColumn(col 390:double, col 4:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 389:double)(children: DoubleColDivideLongColumn(col 388:double, col 4:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 388:double) -> 389:double) -> 390:double) -> 391:double) -> 392:double) -> 393:double) -> 394:double, CastLongToDouble(col 395:bigint)(children: LongColUnaryMinus(col 7:bigint) -> 395:bigint) -> 396:double) -> 397:double, DoubleColUnaryMinus(col 403:double)(children: DoubleColMultiplyDoubleScalar(col 402:double, val 10.175)(children: FuncPowerDoubleToDouble(col 401:double)(children: DoubleColDivideLongColumn(col 400:double, col 4:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 399:double)(children: DoubleColDivideLongColumn(col 398:double, col 4:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 398:double) -> 399:double) -> 400:double) -> 401:double) -> 402:double) -> 403:double) -> 404:double, DoubleColDivideLongColumn(col 407:double, col 410:bigint)(children: DoubleColSubtractDoubleColumn(col 9:double, col 406:double)(children: DoubleColDivideLongColumn(col 405:double, col 6:bigint)(children: DoubleColMultiplyDoubleColumn(col 10:double, col 10:double) -> 405:double) -> 406:double) -> 407:double, IfExprNullCondExpr(col 408:boolean, null, col 409:bigint)(children: LongColEqualLongScalar(col 6:bigint, val 1) -> 408:boolean, LongColSubtractLongScalar(col 6:bigint, val 1) -> 409:bigint) -> 410:bigint) -> 411:double, DoubleColAddDoubleColumn(col 418:double, col 434:double)(children: DoubleColDivideLongColumn(col 414:double, col 417:bigint)(children: DoubleColSubtractDoubleColumn(col 9:double, col 413:double)(children: DoubleColDivideLongColumn(col 412:double, col 6:bigint)(children: DoubleColMultiplyDoubleColumn(col 10:double, col 10:double) -> 412:double) -> 413:double) -> 414:double, IfExprNullCondExpr(col 415:boolean, null, col 416:bigint)(children: LongColEqualLongScalar(col 6:bigint, val 1) -> 415:boolean, LongColSubtractLongScalar(col 6:bigint, val 1) -> 416:bigint) -> 417:bigint) -> 418:double, DoubleColMultiplyDoubleColumn(col 431:double, col 433:double)(children: DoubleColMultiplyDoubleColumn(col 424:double, col 430:double)(children: DoubleScalarSubtractDoubleColumn(val -26.28, col 423:double)(children: FuncPowerDoubleToDouble(col 422:double)(children: DoubleColDivideLongColumn(col 421:double, col 4:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 420:double)(children: DoubleColDivideLongColumn(col 419:double, col 4:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 419:double) -> 420:double) -> 421:double) -> 422:double) -> 423:double) -> 424:double, DoubleColUnaryMinus(col 429:double)(children: FuncPowerDoubleToDouble(col 428:double)(children: DoubleColDivideLongColumn(col 427:double, col 4:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 426:double)(children: DoubleColDivideLongColumn(col 425:double, col 4:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 425:double) -> 426:double) -> 427:double) -> 428:double) -> 429:double) -> 430:double) -> 431:double, CastLongToDouble(col 432:bigint)(children: LongColUnaryMinus(col 7:bigint) -> 432:bigint) -> 433:double) -> 434:double) -> 435:double, DoubleColUnaryMinus(col 441:double)(children: DoubleColUnaryMinus(col 440:double)(children: FuncPowerDoubleToDouble(col 439:double)(children: DoubleColDivideLongColumn(col 438:double, col 4:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 437:double)(children: DoubleColDivideLongColumn(col 436:double, col 4:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 436:double) -> 437:double) -> 438:double) -> 439:double) -> 440:double) -> 441:double) -> 442:double, DoubleColDivideDoubleColumn(col 444:double, col 449:double)(children: CastLongToDouble(col 443:bigint)(children: LongColUnaryMinus(col 7:bigint) -> 443:bigint) -> 444:double, FuncPowerDoubleToDouble(col 448:double)(children: DoubleColDivideLongColumn(col 447:double, col 4:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 446:double)(children: DoubleColDivideLongColumn(col 445:double, col 4:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 445:double) -> 446:double) -> 447:double) -> 448:double) -> 449:double) -> 450:double, DoubleColDivideLongColumn(col 453:double, col 13:bigint)(children: DoubleColSubtractDoubleColumn(col 11:double, col 452:double)(children: DoubleColDivideLongColumn(col 451:double, col 13:bigint)(children: DoubleColMultiplyDoubleColumn(col 12:double, col 12:double) -> 451:double) -> 452:double) -> 453:double) -> 454:double, DoubleScalarDivideDoubleColumn(val 10.175, col 456:double)(children: DoubleColDivideLongColumn(col 455:double, col 6:bigint)(children: CastLongToDouble(col 5:bigint) -> 455:double) -> 456:double) -> 457:double, DoubleColDivideLongColumn(col 458:double, col 4:bigint)(children: CastLongToDouble(col 14:bigint) -> 458:double) -> 459:double, DoubleColDivideLongColumn(col 462:double, col 465:bigint)(children: DoubleColSubtractDoubleColumn(col 11:double, col 461:double)(children: DoubleColDivideLongColumn(col 460:double, col 13:bigint)(children: DoubleColMultiplyDoubleColumn(col 12:double, col 12:double) -> 460:double) -> 461:double) -> 462:double, IfExprNullCondExpr(col 463:boolean, null, col 464:bigint)(children: LongColEqualLongScalar(col 13:bigint, val 1) -> 463:boolean, LongColSubtractLongScalar(col 13:bigint, val 1) -> 464:bigint) -> 465:bigint) -> 466:double, DoubleColSubtractDoubleColumn(col 490:double, col 506:double)(children: DoubleColAddDoubleColumn(col 473:double, col 489:double)(children: DoubleColDivideLongColumn(col 469:double, col 472:bigint)(children: DoubleColSubtractDoubleColumn(col 9:double, col 468:double)(children: DoubleColDivideLongColumn(col 467:double, col 6:bigint)(children: DoubleColMultiplyDoubleColumn(col 10:double, col 10:double) -> 467:double) -> 468:double) -> 469:double, IfExprNullCondExpr(col 470:boolean, null, col 471:bigint)(children: LongColEqualLongScalar(col 6:bigint, val 1) -> 470:boolean, LongColSubtractLongScalar(col 6:bigint, val 1) -> 471:bigint) -> 472:bigint) -> 473:double, DoubleColMultiplyDoubleColumn(col 486:double, col 488:double)(children: DoubleColMultiplyDoubleColumn(col 479:double, col 485:double)(children: DoubleScalarSubtractDoubleColumn(val -26.28, col 478:double)(children: FuncPowerDoubleToDouble(col 477:double)(children: DoubleColDivideLongColumn(col 476:double, col 4:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 475:double)(children: DoubleColDivideLongColumn(col 474:double, col 4:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 474:double) -> 475:double) -> 476:double) -> 477:double) -> 478:double) -> 479:double, DoubleColUnaryMinus(col 484:double)(children: FuncPowerDoubleToDouble(col 483:double)(children: DoubleColDivideLongColumn(col 482:double, col 4:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 481:double)(children: DoubleColDivideLongColumn(col 480:double, col 4:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 480:double) -> 481:double) -> 482:double) -> 483:double) -> 484:double) -> 485:double) -> 486:double, CastLongToDouble(col 487:bigint)(children: LongColUnaryMinus(col 7:bigint) -> 487:bigint) -> 488:double) -> 489:double) -> 490:double, DoubleColMultiplyDoubleColumn(col 503:double, col 505:double)(children: DoubleColMultiplyDoubleColumn(col 496:double, col 502:double)(children: DoubleScalarSubtractDoubleColumn(val -26.28, col 495:double)(children: FuncPowerDoubleToDouble(col 494:double)(children: DoubleColDivideLongColumn(col 493:double, col 4:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 492:double)(children: DoubleColDivideLongColumn(col 491:double, col 4:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 491:double) -> 492:double) -> 493:double) -> 494:double) -> 495:double) -> 496:double, DoubleColUnaryMinus(col 501:double)(children: FuncPowerDoubleToDouble(col 500:double)(children: DoubleColDivideLongColumn(col 499:double, col 4:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 498:double)(children: DoubleColDivideLongColumn(col 497:double, col 4:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 497:double) -> 498:double) -> 499:double) -> 500:double) -> 501:double) -> 502:double) -> 503:double, CastLongToDouble(col 504:bigint)(children: LongColUnaryMinus(col 7:bigint) -> 504:bigint) -> 505:double) -> 506:double) -> 507:double, DoubleColUnaryMinus(col 514:double)(children: DoubleColUnaryMinus(col 513:double)(children: DoubleColMultiplyDoubleScalar(col 512:double, val 10.175)(children: FuncPowerDoubleToDouble(col 511:double)(children: DoubleColDivideLongColumn(col 510:double, col 4:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 509:double)(children: DoubleColDivideLongColumn(col 508:double, col 4:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 508:double) -> 509:double) -> 510:double) -> 511:double) -> 512:double) -> 513:double) -> 514:double) -> 515:double, DoubleColDivideLongColumn(col 15:double, col 13:bigint) -> 516:double, DoubleColMultiplyDoubleScalar(col 557:double, val 10.175)(children: DoubleColSubtractDoubleColumn(col 540:double, col 556:double)(children: DoubleColAddDoubleColumn(col 523:double, col 539:double)(children: DoubleColDivideLongColumn(col 519:double, col 522:bigint)(children: DoubleColSubtractDoubleColumn(col 9:double, col 518:double)(children: DoubleColDivideLongColumn(col 517:double, col 6:bigint)(children: DoubleColMultiplyDoubleColumn(col 10:double, col 10:double) -> 517:double) -> 518:double) -> 519:double, IfExprNullCondExpr(col 520:boolean, null, col 521:bigint)(children: LongColEqualLongScalar(col 6:bigint, val 1) -> 520:boolean, LongColSubtractLongScalar(col 6:bigint, val 1) -> 521:bigint) -> 522:bigint) -> 523:double, DoubleColMultiplyDoubleColumn(col 536:double, col 538:double)(children: DoubleColMultiplyDoubleColumn(col 529:double, col 535:double)(children: DoubleScalarSubtractDoubleColumn(val -26.28, col 528:double)(children: FuncPowerDoubleToDouble(col 527:double)(children: DoubleColDivideLongColumn(col 526:double, col 4:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 525:double)(children: DoubleColDivideLongColumn(col 524:double, col 4:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 524:double) -> 525:double) -> 526:double) -> 527:double) -> 528:double) -> 529:double, DoubleColUnaryMinus(col 534:double)(children: FuncPowerDoubleToDouble(col 533:double)(children: DoubleColDivideLongColumn(col 532:double, col 4:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 531:double)(children: DoubleColDivideLongColumn(col 530:double, col 4:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 530:double) -> 531:double) -> 532:double) -> 533:double) -> 534:double) -> 535:double) -> 536:double, CastLongToDouble(col 537:bigint)(children: LongColUnaryMinus(col 7:bigint) -> 537:bigint) -> 538:double) -> 539:double) -> 540:double, DoubleColMultiplyDoubleColumn(col 553:double, col 555:double)(children: DoubleColMultiplyDoubleColumn(col 546:double, col 552:double)(children: DoubleScalarSubtractDoubleColumn(val -26.28, col 545:double)(children: FuncPowerDoubleToDouble(col 544:double)(children: DoubleColDivideLongColumn(col 543:double, col 4:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 542:double)(children: DoubleColDivideLongColumn(col 541:double, col 4:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 541:double) -> 542:double) -> 543:double) -> 544:double) -> 545:double) -> 546:double, DoubleColUnaryMinus(col 551:double)(children: FuncPowerDoubleToDouble(col 550:double)(children: DoubleColDivideLongColumn(col 549:double, col 4:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 548:double)(children: DoubleColDivideLongColumn(col 547:double, col 4:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 547:double) -> 548:double) -> 549:double) -> 550:double) -> 551:double) -> 552:double) -> 553:double, CastLongToDouble(col 554:bigint)(children: LongColUnaryMinus(col 7:bigint) -> 554:bigint) -> 555:double) -> 556:double) -> 557:double) -> 558:double, DoubleScalarModuloDoubleColumn(val 10.175, col 561:double)(children: DoubleScalarDivideDoubleColumn(val 10.175, col 560:double)(children: DoubleColDivideLongColumn(col 559:double, col 6:bigint)(children: CastLongToDouble(col 5:bigint) -> 559:double) -> 560:double) -> 561:double) -> 562:double, LongColUnaryMinus(col 8:tinyint) -> 563:tinyint, DoubleColDivideLongColumn(col 566:double, col 6:bigint)(children: DoubleColSubtractDoubleColumn(col 9:double, col 565:double)(children: DoubleColDivideLongColumn(col 564:double, col 6:bigint)(children: DoubleColMultiplyDoubleColumn(col 10:double, col 10:double) -> 564:double) -> 565:double) -> 566:double) -> 567:double, DoubleColUnaryMinus(col 580:double)(children: DoubleColMultiplyDoubleColumn(col 573:double, col 579:double)(children: DoubleScalarSubtractDoubleColumn(val -26.28, col 572:double)(children: FuncPowerDoubleToDouble(col 571:double)(children: DoubleColDivideLongColumn(col 570:double, col 4:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 569:double)(children: DoubleColDivideLongColumn(col 568:double, col 4:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 568:double) -> 569:double) -> 570:double) -> 571:double) -> 572:double) -> 573:double, DoubleColUnaryMinus(col 578:double)(children: FuncPowerDoubleToDouble(col 577:double)(children: DoubleColDivideLongColumn(col 576:double, col 4:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 575:double)(children: DoubleColDivideLongColumn(col 574:double, col 4:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 574:double) -> 575:double) -> 576:double) -> 577:double) -> 578:double) -> 579:double) -> 580:double) -> 581:double, DoubleColModuloDoubleColumn(col 587:double, col 588:double)(children: DoubleColUnaryMinus(col 586:double)(children: FuncPowerDoubleToDouble(col 585:double)(children: DoubleColDivideLongColumn(col 584:double, col 4:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 583:double)(children: DoubleColDivideLongColumn(col 582:double, col 4:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 582:double) -> 583:double) -> 584:double) -> 585:double) -> 586:double) -> 587:double, DoubleColDivideLongColumn(col 15:double, col 13:bigint) -> 588:double) -> 589:double, DecimalScalarDivideDecimalColumn(val -26.28, col 591:decimal(3,0))(children: CastLongToDecimal(col 590:tinyint)(children: LongColUnaryMinus(col 8:tinyint) -> 590:tinyint) -> 591:decimal(3,0)) -> 592:decimal(8,6), FuncPowerDoubleToDouble(col 596:double)(children: DoubleColDivideLongColumn(col 595:double, col 19:bigint)(children: DoubleColSubtractDoubleColumn(col 17:double, col 594:double)(children: DoubleColDivideLongColumn(col 593:double, col 19:bigint)(children: DoubleColMultiplyDoubleColumn(col 18:double, col 18:double) -> 593:double) -> 594:double) -> 595:double) -> 596:double) -> 597:double, DoubleColDivideDoubleColumn(col 621:double, col 625:double)(children: DoubleColAddDoubleColumn(col 604:double, col 620:double)(children: DoubleColDivideLongColumn(col 600:double, col 603:bigint)(children: DoubleColSubtractDoubleColumn(col 9:double, col 599:double)(children: DoubleColDivideLongColumn(col 598:double, col 6:bigint)(children: DoubleColMultiplyDoubleColumn(col 10:double, col 10:double) -> 598:double) -> 599:double) -> 600:double, IfExprNullCondExpr(col 601:boolean, null, col 602:bigint)(children: LongColEqualLongScalar(col 6:bigint, val 1) -> 601:boolean, LongColSubtractLongScalar(col 6:bigint, val 1) -> 602:bigint) -> 603:bigint) -> 604:double, DoubleColMultiplyDoubleColumn(col 617:double, col 619:double)(children: DoubleColMultiplyDoubleColumn(col 610:double, col 616:double)(children: DoubleScalarSubtractDoubleColumn(val -26.28, col 609:double)(children: FuncPowerDoubleToDouble(col 608:double)(children: DoubleColDivideLongColumn(col 607:double, col 4:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 606:double)(children: DoubleColDivideLongColumn(col 605:double, col 4:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 605:double) -> 606:double) -> 607:double) -> 608:double) -> 609:double) -> 610:double, DoubleColUnaryMinus(col 615:double)(children: FuncPowerDoubleToDouble(col 614:double)(children: DoubleColDivideLongColumn(col 613:double, col 4:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 612:double)(children: DoubleColDivideLongColumn(col 611:double, col 4:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 611:double) -> 612:double) -> 613:double) -> 614:double) -> 615:double) -> 616:double) -> 617:double, CastLongToDouble(col 618:bigint)(children: LongColUnaryMinus(col 7:bigint) -> 618:bigint) -> 619:double) -> 620:double) -> 621:double, DoubleColDivideLongColumn(col 624:double, col 13:bigint)(children: DoubleColSubtractDoubleColumn(col 11:double, col 623:double)(children: DoubleColDivideLongColumn(col 622:double, col 13:bigint)(children: DoubleColMultiplyDoubleColumn(col 12:double, col 12:double) -> 622:double) -> 623:double) -> 624:double) -> 625:double) -> 626:double, LongColUnaryMinus(col 627:bigint)(children: LongColUnaryMinus(col 7:bigint) -> 627:bigint) -> 628:bigint, DoubleColModuloDoubleScalar(col 652:double, val -26.28)(children: DoubleColAddDoubleColumn(col 635:double, col 651:double)(children: DoubleColDivideLongColumn(col 631:double, col 634:bigint)(children: DoubleColSubtractDoubleColumn(col 9:double, col 630:double)(children: DoubleColDivideLongColumn(col 629:double, col 6:bigint)(children: DoubleColMultiplyDoubleColumn(col 10:double, col 10:double) -> 629:double) -> 630:double) -> 631:double, IfExprNullCondExpr(col 632:boolean, null, col 633:bigint)(children: LongColEqualLongScalar(col 6:bigint, val 1) -> 632:boolean, LongColSubtractLongScalar(col 6:bigint, val 1) -> 633:bigint) -> 634:bigint) -> 635:double, DoubleColMultiplyDoubleColumn(col 648:double, col 650:double)(children: DoubleColMultiplyDoubleColumn(col 641:double, col 647:double)(children: DoubleScalarSubtractDoubleColumn(val -26.28, col 640:double)(children: FuncPowerDoubleToDouble(col 639:double)(children: DoubleColDivideLongColumn(col 638:double, col 4:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 637:double)(children: DoubleColDivideLongColumn(col 636:double, col 4:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 636:double) -> 637:double) -> 638:double) -> 639:double) -> 640:double) -> 641:double, DoubleColUnaryMinus(col 646:double)(children: FuncPowerDoubleToDouble(col 645:double)(children: DoubleColDivideLongColumn(col 644:double, col 4:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 643:double)(children: DoubleColDivideLongColumn(col 642:double, col 4:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 642:double) -> 643:double) -> 644:double) -> 645:double) -> 646:double) -> 647:double) -> 648:double, CastLongToDouble(col 649:bigint)(children: LongColUnaryMinus(col 7:bigint) -> 649:bigint) -> 650:double) -> 651:double) -> 652:double) -> 653:double + projectedOutputColumnNums: [0, 1, 20, 22, 23, 25, 26, 27, 7, 78, 21, 8, 31, 28, 32, 29, 33, 37, 35, 34, 40, 41, 42, 43, 39, 45, 47, 237, 16, 48, 49, 53, 337, 46, 14, 54, 310, 7, 55] + 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, DoubleColDivideLongColumn(col 21:double, col 6:bigint)(children: CastLongToDouble(col 5:bigint) -> 21:double) -> 25:double, DoubleColUnaryMinus(col 21:double)(children: FuncPowerDoubleToDouble(col 26:double)(children: DoubleColDivideLongColumn(col 21:double, col 4:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 26:double)(children: DoubleColDivideLongColumn(col 21:double, col 4:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 21:double) -> 26:double) -> 21:double) -> 26:double) -> 21:double) -> 26:double, DoubleScalarSubtractDoubleColumn(val -26.28, col 21:double)(children: FuncPowerDoubleToDouble(col 27:double)(children: DoubleColDivideLongColumn(col 21:double, col 4:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 27:double)(children: DoubleColDivideLongColumn(col 21:double, col 4:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 21:double) -> 27:double) -> 21:double) -> 27:double) -> 21:double) -> 27:double, LongColUnaryMinus(col 7:bigint) -> 78:bigint, DoubleColMultiplyDoubleColumn(col 28:double, col 29:double)(children: DoubleScalarSubtractDoubleColumn(val -26.28, col 21:double)(children: FuncPowerDoubleToDouble(col 28:double)(children: DoubleColDivideLongColumn(col 21:double, col 4:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 28:double)(children: DoubleColDivideLongColumn(col 21:double, col 4:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 21:double) -> 28:double) -> 21:double) -> 28:double) -> 21:double) -> 28:double, DoubleColUnaryMinus(col 21:double)(children: FuncPowerDoubleToDouble(col 29:double)(children: DoubleColDivideLongColumn(col 21:double, col 4:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 29:double)(children: DoubleColDivideLongColumn(col 21:double, col 4:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 21:double) -> 29:double) -> 21:double) -> 29:double) -> 21:double) -> 29:double) -> 21:double, DoubleColMultiplyDoubleColumn(col 28:double, col 29:double)(children: DoubleColMultiplyDoubleColumn(col 29:double, col 31: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 31:double)(children: DoubleColDivideLongColumn(col 28:double, col 4:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 31:double)(children: DoubleColDivideLongColumn(col 28:double, col 4:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 28:double) -> 31:double) -> 28:double) -> 31:double) -> 28:double) -> 31:double) -> 28:double, CastLongToDouble(col 93:bigint)(children: LongColUnaryMinus(col 7:bigint) -> 93:bigint) -> 29:double) -> 31: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, DoubleColDivideLongColumn(col 29:double, col 115: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 93:boolean, null, col 100:bigint)(children: LongColEqualLongScalar(col 6:bigint, val 1) -> 93:boolean, LongColSubtractLongScalar(col 6:bigint, val 1) -> 100:bigint) -> 115:bigint) -> 32:double, DoubleColAddDoubleColumn(col 33:double, col 35:double)(children: DoubleColDivideLongColumn(col 29:double, col 148:bigint)(children: DoubleColSubtractDoubleColumn(col 9:double, col 33:double)(children: DoubleColDivideLongColumn(col 29:double, col 6:bigint)(children: DoubleColMultiplyDoubleColumn(col 10:double, col 10:double) -> 29:double) -> 33:double) -> 29:double, IfExprNullCondExpr(col 115:boolean, null, col 126:bigint)(children: LongColEqualLongScalar(col 6:bigint, val 1) -> 115:boolean, LongColSubtractLongScalar(col 6:bigint, val 1) -> 126:bigint) -> 148:bigint) -> 33:double, DoubleColMultiplyDoubleColumn(col 29:double, col 34:double)(children: DoubleColMultiplyDoubleColumn(col 34:double, col 35:double)(children: DoubleScalarSubtractDoubleColumn(val -26.28, col 29:double)(children: FuncPowerDoubleToDouble(col 34:double)(children: DoubleColDivideLongColumn(col 29:double, col 4:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 34:double)(children: DoubleColDivideLongColumn(col 29:double, col 4:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 29:double) -> 34:double) -> 29:double) -> 34:double) -> 29:double) -> 34:double, DoubleColUnaryMinus(col 29:double)(children: FuncPowerDoubleToDouble(col 35:double)(children: DoubleColDivideLongColumn(col 29:double, col 4:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 35:double)(children: DoubleColDivideLongColumn(col 29:double, col 4:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 29:double) -> 35:double) -> 29:double) -> 35:double) -> 29:double) -> 35:double) -> 29:double, CastLongToDouble(col 148:bigint)(children: LongColUnaryMinus(col 7:bigint) -> 148:bigint) -> 34:double) -> 35:double) -> 29:double, DoubleColUnaryMinus(col 34:double)(children: DoubleColUnaryMinus(col 33:double)(children: FuncPowerDoubleToDouble(col 34:double)(children: DoubleColDivideLongColumn(col 33:double, col 4:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 34:double)(children: DoubleColDivideLongColumn(col 33:double, col 4:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 33:double) -> 34:double) -> 33:double) -> 34:double) -> 33:double) -> 34:double) -> 33:double, DoubleColDivideDoubleColumn(col 34:double, col 35:double)(children: CastLongToDouble(col 148:bigint)(children: LongColUnaryMinus(col 7:bigint) -> 148:bigint) -> 34:double, FuncPowerDoubleToDouble(col 37:double)(children: DoubleColDivideLongColumn(col 35:double, col 4:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 37:double)(children: DoubleColDivideLongColumn(col 35:double, col 4:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 35:double) -> 37:double) -> 35:double) -> 37:double) -> 35:double) -> 37:double, DoubleColDivideLongColumn(col 34:double, col 13:bigint)(children: DoubleColSubtractDoubleColumn(col 11:double, col 35:double)(children: DoubleColDivideLongColumn(col 34:double, col 13:bigint)(children: DoubleColMultiplyDoubleColumn(col 12:double, col 12:double) -> 34:double) -> 35:double) -> 34:double) -> 35:double, DoubleScalarDivideDoubleColumn(val 10.175, col 39:double)(children: DoubleColDivideLongColumn(col 34:double, col 6:bigint)(children: CastLongToDouble(col 5:bigint) -> 34:double) -> 39:double) -> 34:double, DoubleColDivideLongColumn(col 39:double, col 4:bigint)(children: CastLongToDouble(col 14:bigint) -> 39:double) -> 40:double, DoubleColDivideLongColumn(col 39:double, col 170:bigint)(children: DoubleColSubtractDoubleColumn(col 11:double, col 41:double)(children: DoubleColDivideLongColumn(col 39:double, col 13:bigint)(children: DoubleColMultiplyDoubleColumn(col 12:double, col 12:double) -> 39:double) -> 41:double) -> 39:double, IfExprNullCondExpr(col 148:boolean, null, col 155:bigint)(children: LongColEqualLongScalar(col 13:bigint, val 1) -> 148:boolean, LongColSubtractLongScalar(col 13:bigint, val 1) -> 155:bigint) -> 170:bigint) -> 41:double, DoubleColSubtractDoubleColumn(col 39:double, col 45:double)(children: DoubleColAddDoubleColumn(col 42:double, col 45:double)(children: DoubleColDivideLongColumn(col 39:double, col 205:bigint)(children: DoubleColSubtractDoubleColumn(col 9:double, col 42:double)(children: DoubleColDivideLongColumn(col 39:double, col 6:bigint)(children: DoubleColMultiplyDoubleColumn(col 10:double, col 10:double) -> 39:double) -> 42:double) -> 39:double, IfExprNullCondExpr(col 170:boolean, null, col 187:bigint)(children: LongColEqualLongScalar(col 6:bigint, val 1) -> 170:boolean, LongColSubtractLongScalar(col 6:bigint, val 1) -> 187:bigint) -> 205:bigint) -> 42:double, DoubleColMultiplyDoubleColumn(col 39:double, col 43:double)(children: DoubleColMultiplyDoubleColumn(col 43:double, col 45:double)(children: DoubleScalarSubtractDoubleColumn(val -26.28, col 39:double)(children: FuncPowerDoubleToDouble(col 43:double)(children: DoubleColDivideLongColumn(col 39:double, col 4:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 43:double)(children: DoubleColDivideLongColumn(col 39:double, col 4:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 39:double) -> 43:double) -> 39:double) -> 43:double) -> 39:double) -> 43:double, DoubleColUnaryMinus(col 39:double)(children: FuncPowerDoubleToDouble(col 45:double)(children: DoubleColDivideLongColumn(col 39:double, col 4:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 45:double)(children: DoubleColDivideLongColumn(col 39:double, col 4:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 39:double) -> 45:double) -> 39:double) -> 45:double) -> 39:double) -> 45:double) -> 39:double, CastLongToDouble(col 205:bigint)(children: LongColUnaryMinus(col 7:bigint) -> 205:bigint) -> 43:double) -> 45:double) -> 39:double, DoubleColMultiplyDoubleColumn(col 42:double, col 43:double)(children: DoubleColMultiplyDoubleColumn(col 43:double, col 45:double)(children: DoubleScalarSubtractDoubleColumn(val -26.28, col 42:double)(children: FuncPowerDoubleToDouble(col 43:double)(children: DoubleColDivideLongColumn(col 42:double, col 4:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 43:double)(children: DoubleColDivideLongColumn(col 42:double, col 4:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 42:double) -> 43:double) -> 42:double) -> 43:double) -> 42:double) -> 43:double, DoubleColUnaryMinus(col 42:double)(children: FuncPowerDoubleToDouble(col 45:double)(children: DoubleColDivideLongColumn(col 42:double, col 4:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 45:double)(children: DoubleColDivideLongColumn(col 42:double, col 4:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 42:double) -> 45:double) -> 42:double) -> 45:double) -> 42:double) -> 45:double) -> 42:double, CastLongToDouble(col 205:bigint)(children: LongColUnaryMinus(col 7:bigint) -> 205:bigint) -> 43:double) -> 45:double) -> 42:double, DoubleColUnaryMinus(col 39:double)(children: DoubleColUnaryMinus(col 43:double)(children: DoubleColMultiplyDoubleScalar(col 39:double, val 10.175)(children: FuncPowerDoubleToDouble(col 43:double)(children: DoubleColDivideLongColumn(col 39:double, col 4:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 43:double)(children: DoubleColDivideLongColumn(col 39:double, col 4:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 39:double) -> 43:double) -> 39:double) -> 43:double) -> 39:double) -> 43:double) -> 39:double) -> 43:double, DoubleColDivideLongColumn(col 15:double, col 13:bigint) -> 39:double, DoubleColMultiplyDoubleScalar(col 46:double, val 10.175)(children: DoubleColSubtractDoubleColumn(col 45:double, col 48:double)(children: DoubleColAddDoubleColumn(col 46:double, col 48:double)(children: DoubleColDivideLongColumn(col 45:double, col 237:bigint)(children: DoubleColSubtractDoubleColumn(col 9:double, col 46:double)(children: DoubleColDivideLongColumn(col 45:double, col 6:bigint)(children: DoubleColMultiplyDoubleColumn(col 10:double, col 10:double) -> 45:double) -> 46:double) -> 45:double, IfExprNullCondExpr(col 205:boolean, null, col 220:bigint)(children: LongColEqualLongScalar(col 6:bigint, val 1) -> 205:boolean, LongColSubtractLongScalar(col 6:bigint, val 1) -> 220:bigint) -> 237:bigint) -> 46:double, DoubleColMultiplyDoubleColumn(col 45:double, col 47:double)(children: DoubleColMultiplyDoubleColumn(col 47:double, col 48:double)(children: DoubleScalarSubtractDoubleColumn(val -26.28, col 45:double)(children: FuncPowerDoubleToDouble(col 47:double)(children: DoubleColDivideLongColumn(col 45:double, col 4:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 47:double)(children: DoubleColDivideLongColumn(col 45:double, col 4:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 45:double) -> 47:double) -> 45:double) -> 47:double) -> 45:double) -> 47:double, DoubleColUnaryMinus(col 45:double)(children: FuncPowerDoubleToDouble(col 48:double)(children: DoubleColDivideLongColumn(col 45:double, col 4:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 48:double)(children: DoubleColDivideLongColumn(col 45:double, col 4:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 45:double) -> 48:double) -> 45:double) -> 48:double) -> 45:double) -> 48:double) -> 45:double, CastLongToDouble(col 237:bigint)(children: LongColUnaryMinus(col 7:bigint) -> 237:bigint) -> 47:double) -> 48:double) -> 45:double, DoubleColMultiplyDoubleColumn(col 46:double, col 47:double)(children: DoubleColMultiplyDoubleColumn(col 47:double, col 48:double)(children: DoubleScalarSubtractDoubleColumn(val -26.28, col 46:double)(children: FuncPowerDoubleToDouble(col 47:double)(children: DoubleColDivideLongColumn(col 46:double, col 4:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 47:double)(children: DoubleColDivideLongColumn(col 46:double, col 4:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 46:double) -> 47:double) -> 46:double) -> 47:double) -> 46:double) -> 47:double, DoubleColUnaryMinus(col 46:double)(children: FuncPowerDoubleToDouble(col 48:double)(children: DoubleColDivideLongColumn(col 46:double, col 4:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 48:double)(children: DoubleColDivideLongColumn(col 46:double, col 4:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 46:double) -> 48:double) -> 46:double) -> 48:double) -> 46:double) -> 48:double) -> 46:double, CastLongToDouble(col 237:bigint)(children: LongColUnaryMinus(col 7:bigint) -> 237:bigint) -> 47:double) -> 48:double) -> 46:double) -> 45:double, DoubleScalarModuloDoubleColumn(val 10.175, col 46:double)(children: DoubleScalarDivideDoubleColumn(val 10.175, col 47:double)(children: DoubleColDivideLongColumn(col 46:double, col 6:bigint)(children: CastLongToDouble(col 5:bigint) -> 46:double) -> 47:double) -> 46:double) -> 47:double, LongColUnaryMinus(col 8:tinyint) -> 237:tinyint, DoubleColDivideLongColumn(col 46:double, col 6:bigint)(children: DoubleColSubtractDoubleColumn(col 9:double, col 48:double)(children: DoubleColDivideLongColumn(col 46:double, col 6:bigint)(children: DoubleColMultiplyDoubleColumn(col 10:double, col 10:double) -> 46:double) -> 48:double) -> 46:double) -> 48:double, DoubleColUnaryMinus(col 46:double)(children: DoubleColMultiplyDoubleColumn(col 49:double, col 52:double)(children: DoubleScalarSubtractDoubleColumn(val -26.28, col 46:double)(children: FuncPowerDoubleToDouble(col 49:double)(children: DoubleColDivideLongColumn(col 46:double, col 4:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 49:double)(children: DoubleColDivideLongColumn(col 46:double, col 4:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 46:double) -> 49:double) -> 46:double) -> 49:double) -> 46:double) -> 49:double, DoubleColUnaryMinus(col 46:double)(children: FuncPowerDoubleToDouble(col 52:double)(children: DoubleColDivideLongColumn(col 46:double, col 4:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 52:double)(children: DoubleColDivideLongColumn(col 46:double, col 4:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 46:double) -> 52:double) -> 46:double) -> 52:double) -> 46:double) -> 52:double) -> 46:double) -> 49:double, DoubleColModuloDoubleColumn(col 52:double, col 46:double)(children: DoubleColUnaryMinus(col 46:double)(children: FuncPowerDoubleToDouble(col 52:double)(children: DoubleColDivideLongColumn(col 46:double, col 4:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 52:double)(children: DoubleColDivideLongColumn(col 46:double, col 4:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 46:double) -> 52:double) -> 46:double) -> 52:double) -> 46:double) -> 52:double, DoubleColDivideLongColumn(col 15:double, col 13:bigint) -> 46:double) -> 53:double, DecimalScalarDivideDecimalColumn(val -26.28, col 274:decimal(3,0))(children: CastLongToDecimal(col 273:tinyint)(children: LongColUnaryMinus(col 8:tinyint) -> 273:tinyint) -> 274:decimal(3,0)) -> 337:decimal(8,6), FuncPowerDoubleToDouble(col 52:double)(children: DoubleColDivideLongColumn(col 46:double, col 19:bigint)(children: DoubleColSubtractDoubleColumn(col 17:double, col 52:double)(children: DoubleColDivideLongColumn(col 46:double, col 19:bigint)(children: DoubleColMultiplyDoubleColumn(col 18:double, col 18:double) -> 46:double) -> 52:double) -> 46:double) -> 52:double) -> 46:double, DoubleColDivideDoubleColumn(col 52:double, col 55:double)(children: DoubleColAddDoubleColumn(col 54:double, col 56:double)(children: DoubleColDivideLongColumn(col 52:double, col 301:bigint)(children: DoubleColSubtractDoubleColumn(col 9:double, col 54:double)(children: DoubleColDivideLongColumn(col 52:double, col 6:bigint)(children: DoubleColMultiplyDoubleColumn(col 10:double, col 10:double) -> 52:double) -> 54:double) -> 52:double, IfExprNullCondExpr(col 273:boolean, null, col 286:bigint)(children: LongColEqualLongScalar(col 6:bigint, val 1) -> 273:boolean, LongColSubtractLongScalar(col 6:bigint, val 1) -> 286:bigint) -> 301:bigint) -> 54:double, DoubleColMultiplyDoubleColumn(col 52:double, col 55:double)(children: DoubleColMultiplyDoubleColumn(col 55:double, col 56:double)(children: DoubleScalarSubtractDoubleColumn(val -26.28, col 52:double)(children: FuncPowerDoubleToDouble(col 55:double)(children: DoubleColDivideLongColumn(col 52:double, col 4:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 55:double)(children: DoubleColDivideLongColumn(col 52:double, col 4:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 52:double) -> 55:double) -> 52:double) -> 55:double) -> 52:double) -> 55:double, DoubleColUnaryMinus(col 52:double)(children: FuncPowerDoubleToDouble(col 56:double)(children: DoubleColDivideLongColumn(col 52:double, col 4:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 56:double)(children: DoubleColDivideLongColumn(col 52:double, col 4:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 52:double) -> 56:double) -> 52:double) -> 56:double) -> 52:double) -> 56:double) -> 52:double, CastLongToDouble(col 301:bigint)(children: LongColUnaryMinus(col 7:bigint) -> 301:bigint) -> 55:double) -> 56:double) -> 52:double, DoubleColDivideLongColumn(col 54:double, col 13:bigint)(children: DoubleColSubtractDoubleColumn(col 11:double, col 55:double)(children: DoubleColDivideLongColumn(col 54:double, col 13:bigint)(children: DoubleColMultiplyDoubleColumn(col 12:double, col 12:double) -> 54:double) -> 55:double) -> 54:double) -> 55:double) -> 54:double, LongColUnaryMinus(col 301:bigint)(children: LongColUnaryMinus(col 7:bigint) -> 301:bigint) -> 310:bigint, DoubleColModuloDoubleScalar(col 52:double, val -26.28)(children: DoubleColAddDoubleColumn(col 55:double, col 57:double)(children: DoubleColDivideLongColumn(col 52:double, col 332:bigint)(children: DoubleColSubtractDoubleColumn(col 9:double, col 55:double)(children: DoubleColDivideLongColumn(col 52:double, col 6:bigint)(children: DoubleColMultiplyDoubleColumn(col 10:double, col 10:double) -> 52:double) -> 55:double) -> 52:double, IfExprNullCondExpr(col 301:boolean, null, col 317:bigint)(children: LongColEqualLongScalar(col 6:bigint, val 1) -> 301:boolean, LongColSubtractLongScalar(col 6:bigint, val 1) -> 317:bigint) -> 332:bigint) -> 55:double, DoubleColMultiplyDoubleColumn(col 52:double, col 56:double)(children: DoubleColMultiplyDoubleColumn(col 56:double, col 57:double)(children: DoubleScalarSubtractDoubleColumn(val -26.28, col 52:double)(children: FuncPowerDoubleToDouble(col 56:double)(children: DoubleColDivideLongColumn(col 52:double, col 4:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 56:double)(children: DoubleColDivideLongColumn(col 52:double, col 4:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 52:double) -> 56:double) -> 52:double) -> 56:double) -> 52:double) -> 56:double, DoubleColUnaryMinus(col 52:double)(children: FuncPowerDoubleToDouble(col 57:double)(children: DoubleColDivideLongColumn(col 52:double, col 4:bigint)(children: DoubleColSubtractDoubleColumn(col 2:double, col 57:double)(children: DoubleColDivideLongColumn(col 52:double, col 4:bigint)(children: DoubleColMultiplyDoubleColumn(col 3:double, col 3:double) -> 52:double) -> 57:double) -> 52:double) -> 57:double) -> 52:double) -> 57:double) -> 52:double, CastLongToDouble(col 332:bigint)(children: LongColUnaryMinus(col 7:bigint) -> 332:bigint) -> 56:double) -> 57:double) -> 52:double) -> 55:double Statistics: Num rows: 5980 Data size: 2333226 Basic stats: COMPLETE Column stats: COMPLETE Reduce Output Operator key expressions: _col0 (type: timestamp), _col1 (type: string), _col2 (type: double), _col3 (type: double), _col4 (type: double), _col5 (type: double), _col6 (type: double), _col7 (type: double), _col8 (type: bigint), _col9 (type: bigint), _col10 (type: double), _col11 (type: tinyint), _col12 (type: double), _col13 (type: double), _col14 (type: double), _col15 (type: double), _col16 (type: double), _col17 (type: double), _col18 (type: double), _col19 (type: double), _col20 (type: double), _col21 (type: double), _col22 (type: double), _col23 (type: double), _col24 (type: double), _col25 (type: double), _col26 (type: double), _col27 (type: tinyint), _col28 (type: double), _col29 (type: double), _col30 (type: double), _col31 (type: double), _col32 (type: decimal(8,6)), _col33 (type: double), _col34 (type: bigint), _col35 (type: double), _col36 (type: bigint), _col37 (type: bigint), _col38 (type: double) diff --git ql/src/test/results/clientpositive/llap/windowing_filter.q.out ql/src/test/results/clientpositive/llap/windowing_filter.q.out index 8ef2261755..5dbb8849c6 100644 --- ql/src/test/results/clientpositive/llap/windowing_filter.q.out +++ ql/src/test/results/clientpositive/llap/windowing_filter.q.out @@ -107,13 +107,20 @@ STAGE PLANS: mode: mergepartial outputColumnNames: _col0, _col1 Statistics: Num rows: 5 Data size: 470 Basic stats: COMPLETE Column stats: COMPLETE - Reduce Output Operator - key expressions: _col0 (type: string), _col1 (type: double) - null sort order: az + Top N Key Operator sort order: +- + keys: _col0 (type: string), _col1 (type: double) + null sort order: az Map-reduce partition columns: _col0 (type: string) Statistics: Num rows: 5 Data size: 470 Basic stats: COMPLETE Column stats: COMPLETE - TopN Hash Memory Usage: 0.1 + top n: 6 + Reduce Output Operator + key expressions: _col0 (type: string), _col1 (type: double) + null sort order: az + sort order: +- + Map-reduce partition columns: _col0 (type: string) + Statistics: Num rows: 5 Data size: 470 Basic stats: COMPLETE Column stats: COMPLETE + TopN Hash Memory Usage: 0.1 Reducer 3 Execution mode: vectorized, llap Reduce Operator Tree: diff --git ql/src/test/results/clientpositive/topnkey_windowing.q.out ql/src/test/results/clientpositive/topnkey_windowing.q.out index c186790bea..9f64dcaeea 100644 --- ql/src/test/results/clientpositive/topnkey_windowing.q.out +++ ql/src/test/results/clientpositive/topnkey_windowing.q.out @@ -153,6 +153,120 @@ STAGE PLANS: Processor Tree: ListSink +PREHOOK: query: SELECT tw_code, ranking +FROM ( + SELECT tw_code AS tw_code, + rank() OVER (PARTITION BY tw_code ORDER BY tw_value) AS ranking + FROM topnkey_windowing) tmp1 + WHERE ranking <= 3 +PREHOOK: type: QUERY +PREHOOK: Input: default@topnkey_windowing +#### A masked pattern was here #### +POSTHOOK: query: SELECT tw_code, ranking +FROM ( + SELECT tw_code AS tw_code, + rank() OVER (PARTITION BY tw_code ORDER BY tw_value) AS ranking + FROM topnkey_windowing) tmp1 + WHERE ranking <= 3 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@topnkey_windowing +#### A masked pattern was here #### +NULL 1 +NULL 1 +NULL 1 +A 1 +A 1 +A 3 +B 1 +B 2 +B 2 +B 2 +PREHOOK: query: EXPLAIN +SELECT tw_code, ranking +FROM ( + SELECT tw_code AS tw_code, + rank() OVER (PARTITION BY tw_code ORDER BY tw_value) AS ranking + FROM topnkey_windowing) tmp1 + WHERE ranking <= 3 +PREHOOK: type: QUERY +PREHOOK: Input: default@topnkey_windowing +#### A masked pattern was here #### +POSTHOOK: query: EXPLAIN +SELECT tw_code, ranking +FROM ( + SELECT tw_code AS tw_code, + rank() OVER (PARTITION BY tw_code ORDER BY tw_value) AS ranking + FROM topnkey_windowing) tmp1 + WHERE ranking <= 3 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@topnkey_windowing +#### A masked pattern was here #### +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-0 depends on stages: Stage-1 + +STAGE PLANS: + Stage: Stage-1 + Map Reduce + Map Operator Tree: + TableScan + alias: topnkey_windowing + Statistics: Num rows: 26 Data size: 1969 Basic stats: COMPLETE Column stats: COMPLETE + Reduce Output Operator + key expressions: tw_code (type: string), tw_value (type: double) + null sort order: az + sort order: ++ + Map-reduce partition columns: tw_code (type: string) + Statistics: Num rows: 26 Data size: 1969 Basic stats: COMPLETE Column stats: COMPLETE + TopN Hash Memory Usage: 0.1 + Execution mode: vectorized + Reduce Operator Tree: + Select Operator + expressions: KEY.reducesinkkey0 (type: string), KEY.reducesinkkey1 (type: double) + outputColumnNames: _col0, _col1 + Statistics: Num rows: 26 Data size: 8937 Basic stats: COMPLETE Column stats: COMPLETE + PTF Operator + Function definitions: + Input definition + input alias: ptf_0 + output shape: _col0: string, _col1: double + type: WINDOWING + Windowing table definition + input alias: ptf_1 + name: windowingtablefunction + order by: _col1 ASC NULLS LAST + partition by: _col0 + raw input shape: + window functions: + window function definition + alias: rank_window_0 + arguments: _col1 + name: rank + window function: GenericUDAFRankEvaluator + window frame: ROWS PRECEDING(MAX)~FOLLOWING(MAX) + isPivotResult: true + Statistics: Num rows: 26 Data size: 8937 Basic stats: COMPLETE Column stats: COMPLETE + Filter Operator + predicate: (rank_window_0 <= 3) (type: boolean) + Statistics: Num rows: 8 Data size: 2625 Basic stats: COMPLETE Column stats: COMPLETE + Select Operator + expressions: _col0 (type: string), rank_window_0 (type: int) + outputColumnNames: _col0, _col1 + Statistics: Num rows: 8 Data size: 457 Basic stats: COMPLETE Column stats: COMPLETE + File Output Operator + compressed: false + Statistics: Num rows: 8 Data size: 457 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 tw_code, ranking FROM ( SELECT tw_code AS tw_code, @@ -373,6 +487,192 @@ STAGE PLANS: Processor Tree: ListSink +PREHOOK: query: SELECT tw_code, ranking +FROM ( + SELECT tw_code as tw_code, + rank() OVER (ORDER BY tw_value) AS ranking + FROM topnkey_windowing) tmp1 + WHERE ranking <= 3 +PREHOOK: type: QUERY +PREHOOK: Input: default@topnkey_windowing +#### A masked pattern was here #### +POSTHOOK: query: SELECT tw_code, ranking +FROM ( + SELECT tw_code as tw_code, + rank() OVER (ORDER BY tw_value) AS ranking + FROM topnkey_windowing) tmp1 + WHERE ranking <= 3 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@topnkey_windowing +#### A masked pattern was here #### +A 1 +A 1 +A 3 +PREHOOK: query: EXPLAIN extended +SELECT tw_code, ranking +FROM ( + SELECT tw_code as tw_code, + rank() OVER (ORDER BY tw_value) AS ranking + FROM topnkey_windowing) tmp1 + WHERE ranking <= 3 +PREHOOK: type: QUERY +PREHOOK: Input: default@topnkey_windowing +#### A masked pattern was here #### +POSTHOOK: query: EXPLAIN extended +SELECT tw_code, ranking +FROM ( + SELECT tw_code as tw_code, + rank() OVER (ORDER BY tw_value) AS ranking + FROM topnkey_windowing) tmp1 + WHERE ranking <= 3 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@topnkey_windowing +#### A masked pattern was here #### +OPTIMIZED SQL: SELECT * +FROM (SELECT `tw_code`, RANK() OVER (PARTITION BY 0 ORDER BY `tw_value` ROWS BETWEEN 2147483647 FOLLOWING AND 2147483647 PRECEDING) AS `rank_window_0` +FROM `default`.`topnkey_windowing`) AS `t` +WHERE `rank_window_0` <= 3 +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-0 depends on stages: Stage-1 + +STAGE PLANS: + Stage: Stage-1 + Map Reduce + Map Operator Tree: + TableScan + alias: topnkey_windowing + Statistics: Num rows: 26 Data size: 1969 Basic stats: COMPLETE Column stats: COMPLETE + GatherStats: false + Reduce Output Operator + key expressions: 0 (type: int), tw_value (type: double) + null sort order: az + sort order: ++ + Map-reduce partition columns: 0 (type: int) + Statistics: Num rows: 26 Data size: 1969 Basic stats: COMPLETE Column stats: COMPLETE + tag: -1 + TopN: 4 + TopN Hash Memory Usage: 0.1 + value expressions: tw_code (type: string) + auto parallelism: false + Execution mode: vectorized + Path -> Alias: +#### A masked pattern was here #### + Path -> Partition: +#### A masked pattern was here #### + Partition + base file name: topnkey_windowing + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + properties: + COLUMN_STATS_ACCURATE {"BASIC_STATS":"true","COLUMN_STATS":{"tw_code":"true","tw_value":"true"}} + bucket_count -1 + bucketing_version 2 + column.name.delimiter , + columns tw_code,tw_value + columns.comments + columns.types string:double +#### A masked pattern was here #### + name default.topnkey_windowing + numFiles 1 + numRows 26 + rawDataSize 176 + serialization.ddl struct topnkey_windowing { string tw_code, double tw_value} + serialization.format 1 + serialization.lib org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + totalSize 202 +#### A masked pattern was here #### + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + properties: + COLUMN_STATS_ACCURATE {"BASIC_STATS":"true","COLUMN_STATS":{"tw_code":"true","tw_value":"true"}} + bucket_count -1 + bucketing_version 2 + column.name.delimiter , + columns tw_code,tw_value + columns.comments + columns.types string:double +#### A masked pattern was here #### + name default.topnkey_windowing + numFiles 1 + numRows 26 + rawDataSize 176 + serialization.ddl struct topnkey_windowing { string tw_code, double tw_value} + serialization.format 1 + serialization.lib org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + totalSize 202 +#### A masked pattern was here #### + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + name: default.topnkey_windowing + name: default.topnkey_windowing + Truncated Path -> Alias: + /topnkey_windowing [$hdt$_0:topnkey_windowing] + Needs Tagging: false + Reduce Operator Tree: + Select Operator + expressions: VALUE._col0 (type: string), KEY.reducesinkkey1 (type: double) + outputColumnNames: _col0, _col1 + Statistics: Num rows: 26 Data size: 8937 Basic stats: COMPLETE Column stats: COMPLETE + PTF Operator + Function definitions: + Input definition + input alias: ptf_0 + output shape: _col0: string, _col1: double + type: WINDOWING + Windowing table definition + input alias: ptf_1 + name: windowingtablefunction + order by: _col1 ASC NULLS LAST + partition by: 0 + raw input shape: + window functions: + window function definition + alias: rank_window_0 + arguments: _col1 + name: rank + window function: GenericUDAFRankEvaluator + window frame: ROWS PRECEDING(MAX)~FOLLOWING(MAX) + isPivotResult: true + Statistics: Num rows: 26 Data size: 8937 Basic stats: COMPLETE Column stats: COMPLETE + Filter Operator + isSamplingPred: false + predicate: (rank_window_0 <= 3) (type: boolean) + Statistics: Num rows: 8 Data size: 2625 Basic stats: COMPLETE Column stats: COMPLETE + Select Operator + expressions: _col0 (type: string), rank_window_0 (type: int) + outputColumnNames: _col0, _col1 + Statistics: Num rows: 8 Data size: 457 Basic stats: COMPLETE Column stats: COMPLETE + File Output Operator + compressed: false + GlobalTableId: 0 +#### A masked pattern was here #### + NumFilesPerFileSink: 1 + Statistics: Num rows: 8 Data size: 457 Basic stats: COMPLETE Column stats: COMPLETE +#### A masked pattern was here #### + table: + input format: org.apache.hadoop.mapred.SequenceFileInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat + properties: + columns _col0,_col1 + columns.types string:int + escape.delim \ + hive.serialization.extend.additional.nesting.levels true + serialization.escape.crlf true + serialization.format 1 + serialization.lib org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + TotalFiles: 1 + GatherStats: false + MultiFileSpray: false + + Stage: Stage-0 + Fetch Operator + limit: -1 + Processor Tree: + ListSink + PREHOOK: query: SELECT tw_code, ranking FROM ( SELECT tw_code as tw_code, @@ -453,6 +753,7 @@ STAGE PLANS: Map-reduce partition columns: tw_code (type: string) Statistics: Num rows: 26 Data size: 1969 Basic stats: COMPLETE Column stats: COMPLETE TopN Hash Memory Usage: 0.1 + Execution mode: vectorized Reduce Operator Tree: Select Operator expressions: KEY.reducesinkkey0 (type: string), KEY.reducesinkkey1 (type: double)