You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by ab...@apache.org on 2019/07/10 17:36:59 UTC
[hive] branch master updated: HIVE-21437: Vectorization: Decimal64
division with integer columns (Attila Magyar via Laszlo Bodor)
This is an automated email from the ASF dual-hosted git repository.
abstractdog pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hive.git
The following commit(s) were added to refs/heads/master by this push:
new 505a733 HIVE-21437: Vectorization: Decimal64 division with integer columns (Attila Magyar via Laszlo Bodor)
505a733 is described below
commit 505a73304587692ca06c9f4270a12d1dabd787b4
Author: Attila Magyar <am...@hortonworks.com>
AuthorDate: Wed Jul 10 19:16:57 2019 +0200
HIVE-21437: Vectorization: Decimal64 division with integer columns (Attila Magyar via Laszlo Bodor)
Signed-off-by: Laszlo Bodor <bo...@gmail.com>
---
.../ColumnDivideScalarDecimal.txt | 6 +-
.../expressions/ConstantVectorExpression.java | 19 +++
.../hive/ql/optimizer/physical/Vectorizer.java | 10 +-
.../vector_decimal_col_scalar_division.q | 20 +++
.../results/clientpositive/perf/spark/query4.q.out | 6 +
.../perf/tez/constraints/query4.q.out | 180 ++++++++++----------
.../results/clientpositive/perf/tez/query4.q.out | 182 ++++++++++-----------
.../vector_decimal_col_scalar_division.q.out | 137 ++++++++++++++++
8 files changed, 376 insertions(+), 184 deletions(-)
diff --git a/ql/src/gen/vectorization/ExpressionTemplates/ColumnDivideScalarDecimal.txt b/ql/src/gen/vectorization/ExpressionTemplates/ColumnDivideScalarDecimal.txt
index 0bd7c00..1a1918d 100644
--- a/ql/src/gen/vectorization/ExpressionTemplates/ColumnDivideScalarDecimal.txt
+++ b/ql/src/gen/vectorization/ExpressionTemplates/ColumnDivideScalarDecimal.txt
@@ -72,7 +72,7 @@ public class <ClassName> extends VectorExpression {
int[] sel = batch.selected;
boolean[] inputIsNull = inputColVector.isNull;
boolean[] outputIsNull = outputColVector.isNull;
-;
+
HiveDecimalWritable[] vector = inputColVector.vector;
HiveDecimalWritable[] outputVector = outputColVector.vector;
@@ -165,6 +165,10 @@ public class <ClassName> extends VectorExpression {
}
}
+ public HiveDecimal getValue() {
+ return value;
+ }
+
@Override
public String vectorExpressionParameters() {
return getColumnParamString(0, colNum) + ", val " + value.toString();
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/ConstantVectorExpression.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/ConstantVectorExpression.java
index 0a16e08..94a07d3 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/ConstantVectorExpression.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/ConstantVectorExpression.java
@@ -439,6 +439,25 @@ public class ConstantVectorExpression extends VectorExpression {
return intervalDayTimeValue;
}
+ public Object getValue() {
+ switch (type) {
+ case LONG:
+ return getLongValue();
+ case DOUBLE:
+ return getDoubleValue();
+ case BYTES:
+ return getBytesValue();
+ case DECIMAL:
+ return getDecimalValue();
+ case TIMESTAMP:
+ return getTimestampValue();
+ case INTERVAL_DAY_TIME:
+ return getIntervalDayTimeValue();
+ default:
+ throw new RuntimeException("Unexpected column vector type " + type);
+ }
+ }
+
public void setStructValue(Object structValue) throws HiveException {
StructTypeInfo structTypeInfo = (StructTypeInfo) outputTypeInfo;
ArrayList<TypeInfo> fieldTypeInfoList = structTypeInfo.getAllStructFieldTypeInfos();
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/physical/Vectorizer.java b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/physical/Vectorizer.java
index b97a3a2..cbb3df0 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/physical/Vectorizer.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/physical/Vectorizer.java
@@ -42,6 +42,7 @@ import java.util.regex.Pattern;
import org.apache.commons.lang.ArrayUtils;
import org.apache.commons.lang3.tuple.ImmutablePair;
import org.apache.hadoop.hive.ql.exec.vector.VectorizedInputFormatInterface;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.DecimalColDivideDecimalScalar;
import org.apache.hadoop.hive.ql.exec.vector.reducesink.*;
import org.apache.hadoop.hive.ql.exec.vector.udf.VectorUDFArgDesc;
import org.apache.hadoop.hive.ql.io.AcidUtils;
@@ -4781,9 +4782,14 @@ public class Vectorizer implements PhysicalPlanResolver {
}
}
} else {
+ Object[] arguments;
int argumentCount = children.length + (parent.getOutputColumnNum() == -1 ? 0 : 1);
- Object[] arguments = new Object[argumentCount];
- // new input column numbers
+ if (parent instanceof DecimalColDivideDecimalScalar) {
+ arguments = new Object[argumentCount + 1];
+ arguments[children.length] = ((DecimalColDivideDecimalScalar) parent).getValue();
+ } else {
+ arguments = new Object[argumentCount];
+ }
for (int i = 0; i < children.length; i++) {
VectorExpression vce = children[i];
arguments[i] = vce.getOutputColumnNum();
diff --git a/ql/src/test/queries/clientpositive/vector_decimal_col_scalar_division.q b/ql/src/test/queries/clientpositive/vector_decimal_col_scalar_division.q
new file mode 100644
index 0000000..6ac7bd3
--- /dev/null
+++ b/ql/src/test/queries/clientpositive/vector_decimal_col_scalar_division.q
@@ -0,0 +1,20 @@
+CREATE temporary TABLE `catalog_Sales`(
+ `cs_quantity` int,
+ `cs_wholesale_cost` decimal(7,2),
+ `cs_list_price` decimal(7,2),
+ `cs_sales_price` decimal(7,2),
+ `cs_ext_discount_amt` decimal(7,2),
+ `cs_ext_sales_price` decimal(7,2),
+ `cs_ext_wholesale_cost` decimal(7,2),
+ `cs_ext_list_price` decimal(7,2),
+ `cs_ext_tax` decimal(7,2),
+ `cs_coupon_amt` decimal(7,2),
+ `cs_ext_ship_cost` decimal(7,2),
+ `cs_net_paid` decimal(7,2),
+ `cs_net_paid_inc_tax` decimal(7,2),
+ `cs_net_paid_inc_ship` decimal(7,2),
+ `cs_net_paid_inc_ship_tax` decimal(7,2),
+ `cs_net_profit` decimal(7,2))
+ ;
+
+explain vectorization detail select max((((cs_ext_list_price - cs_ext_wholesale_cost) - cs_ext_discount_amt) + cs_ext_sales_price) / 2) from catalog_sales;
diff --git a/ql/src/test/results/clientpositive/perf/spark/query4.q.out b/ql/src/test/results/clientpositive/perf/spark/query4.q.out
index a7e317c..c9ac6f1 100644
--- a/ql/src/test/results/clientpositive/perf/spark/query4.q.out
+++ b/ql/src/test/results/clientpositive/perf/spark/query4.q.out
@@ -275,6 +275,7 @@ STAGE PLANS:
Map-reduce partition columns: _col0 (type: int)
Statistics: Num rows: 287989836 Data size: 38999608952 Basic stats: COMPLETE Column stats: NONE
value expressions: _col1 (type: int), _col2 (type: decimal(14,6))
+ Execution mode: vectorized
Map 13
Map Operator Tree:
TableScan
@@ -333,6 +334,7 @@ STAGE PLANS:
Map-reduce partition columns: _col0 (type: int)
Statistics: Num rows: 144002668 Data size: 19580198212 Basic stats: COMPLETE Column stats: NONE
value expressions: _col1 (type: int), _col2 (type: decimal(14,6))
+ Execution mode: vectorized
Map 19
Map Operator Tree:
TableScan
@@ -391,6 +393,7 @@ STAGE PLANS:
Map-reduce partition columns: _col0 (type: int)
Statistics: Num rows: 287989836 Data size: 38999608952 Basic stats: COMPLETE Column stats: NONE
value expressions: _col1 (type: int), _col2 (type: decimal(14,6))
+ Execution mode: vectorized
Map 25
Map Operator Tree:
TableScan
@@ -449,6 +452,7 @@ STAGE PLANS:
Map-reduce partition columns: _col0 (type: int)
Statistics: Num rows: 575995635 Data size: 50814502088 Basic stats: COMPLETE Column stats: NONE
value expressions: _col1 (type: int), _col2 (type: decimal(14,6))
+ Execution mode: vectorized
Map 31
Map Operator Tree:
TableScan
@@ -507,6 +511,7 @@ STAGE PLANS:
Map-reduce partition columns: _col0 (type: int)
Statistics: Num rows: 144002668 Data size: 19580198212 Basic stats: COMPLETE Column stats: NONE
value expressions: _col1 (type: int), _col2 (type: decimal(14,6))
+ Execution mode: vectorized
Map 37
Map Operator Tree:
TableScan
@@ -604,6 +609,7 @@ STAGE PLANS:
Map-reduce partition columns: _col0 (type: int)
Statistics: Num rows: 575995635 Data size: 50814502088 Basic stats: COMPLETE Column stats: NONE
value expressions: _col1 (type: int), _col2 (type: decimal(14,6))
+ Execution mode: vectorized
Reducer 10
Reduce Operator Tree:
Join Operator
diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query4.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query4.q.out
index 293b281..c9cb57b 100644
--- a/ql/src/test/results/clientpositive/perf/tez/constraints/query4.q.out
+++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query4.q.out
@@ -271,10 +271,10 @@ Stage-0
limit:100
Stage-1
Reducer 10 vectorized
- File Output Operator [FS_550]
- Limit [LIM_549] (rows=100 width=85)
+ File Output Operator [FS_562]
+ Limit [LIM_561] (rows=100 width=85)
Number of rows:100
- Select Operator [SEL_548] (rows=7323197 width=85)
+ Select Operator [SEL_560] (rows=7323197 width=85)
Output:["_col0"]
<-Reducer 9 [SIMPLE_EDGE]
SHUFFLE [RS_135]
@@ -283,13 +283,13 @@ Stage-0
Filter Operator [FIL_133] (rows=7323197 width=537)
predicate:CASE WHEN (_col4 is not null) THEN (CASE WHEN (_col7) THEN (((_col9 / _col6) > (_col14 / _col4))) ELSE (false) END) ELSE (false) END
Merge Join Operator [MERGEJOIN_466] (rows=14646395 width=537)
- Conds:RS_130._col3=RS_547._col0(Inner),Output:["_col4","_col6","_col7","_col9","_col13","_col14"]
+ Conds:RS_130._col3=RS_559._col0(Inner),Output:["_col4","_col6","_col7","_col9","_col13","_col14"]
<-Reducer 30 [SIMPLE_EDGE] vectorized
- SHUFFLE [RS_547]
+ SHUFFLE [RS_559]
PartitionCols:_col0
- Select Operator [SEL_546] (rows=80000000 width=297)
+ Select Operator [SEL_558] (rows=80000000 width=297)
Output:["_col0","_col1","_col2"]
- Group By Operator [GBY_545] (rows=80000000 width=764)
+ Group By Operator [GBY_557] (rows=80000000 width=764)
Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4, KEY._col5, KEY._col6
<-Reducer 29 [SIMPLE_EDGE]
SHUFFLE [RS_114]
@@ -297,11 +297,11 @@ Stage-0
Group By Operator [GBY_113] (rows=80000000 width=764)
Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(_col2)"],keys:_col5, _col6, _col7, _col8, _col9, _col10, _col11
Merge Join Operator [MERGEJOIN_461] (rows=187573258 width=764)
- Conds:RS_109._col1=RS_503._col0(Inner),Output:["_col2","_col5","_col6","_col7","_col8","_col9","_col10","_col11"]
+ Conds:RS_109._col1=RS_505._col0(Inner),Output:["_col2","_col5","_col6","_col7","_col8","_col9","_col10","_col11"]
<-Map 38 [SIMPLE_EDGE] vectorized
- SHUFFLE [RS_503]
+ SHUFFLE [RS_505]
PartitionCols:_col0
- Select Operator [SEL_502] (rows=80000000 width=656)
+ Select Operator [SEL_504] (rows=80000000 width=656)
Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"]
TableScan [TS_104] (rows=80000000 width=656)
default@customer,customer,Tbl:COMPLETE,Col:COMPLETE,Output:["c_customer_sk","c_customer_id","c_first_name","c_last_name","c_preferred_cust_flag","c_birth_country","c_login","c_email_address"]
@@ -309,7 +309,7 @@ Stage-0
SHUFFLE [RS_109]
PartitionCols:_col1
Merge Join Operator [MERGEJOIN_460] (rows=187573258 width=115)
- Conds:RS_106._col0=RS_475._col0(Inner),Output:["_col1","_col2"]
+ Conds:RS_556._col0=RS_475._col0(Inner),Output:["_col1","_col2"]
<-Map 31 [SIMPLE_EDGE] vectorized
PARTITION_ONLY_SHUFFLE [RS_475]
PartitionCols:_col0
@@ -319,18 +319,18 @@ Stage-0
predicate:(d_year = 2002)
TableScan [TS_101] (rows=73049 width=8)
default@date_dim,date_dim,Tbl:COMPLETE,Col:COMPLETE,Output:["d_date_sk","d_year"]
- <-Map 27 [SIMPLE_EDGE]
- SHUFFLE [RS_106]
+ <-Map 27 [SIMPLE_EDGE] vectorized
+ SHUFFLE [RS_556]
PartitionCols:_col0
- Select Operator [SEL_100] (rows=525327388 width=119)
+ Select Operator [SEL_555] (rows=525327388 width=119)
Output:["_col0","_col1","_col2"]
- Filter Operator [FIL_244] (rows=525327388 width=435)
+ Filter Operator [FIL_554] (rows=525327388 width=435)
predicate:(ss_sold_date_sk is not null and ss_customer_sk is not null and ss_sold_date_sk BETWEEN DynamicValue(RS_107_date_dim_d_date_sk_min) AND DynamicValue(RS_107_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_107_date_dim_d_date_sk_bloom_filter)))
TableScan [TS_98] (rows=575995635 width=435)
default@store_sales,store_sales,Tbl:COMPLETE,Col:COMPLETE,Output:["ss_sold_date_sk","ss_customer_sk","ss_ext_discount_amt","ss_ext_sales_price","ss_ext_wholesale_cost","ss_ext_list_price"]
<-Reducer 32 [BROADCAST_EDGE] vectorized
- BROADCAST [RS_543]
- Group By Operator [GBY_542] (rows=1 width=12)
+ BROADCAST [RS_553]
+ Group By Operator [GBY_552] (rows=1 width=12)
Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"]
<-Map 31 [CUSTOM_SIMPLE_EDGE] vectorized
PARTITION_ONLY_SHUFFLE [RS_493]
@@ -345,13 +345,13 @@ Stage-0
Filter Operator [FIL_129] (rows=12248093 width=668)
predicate:CASE WHEN (_col2) THEN (CASE WHEN (_col7) THEN (((_col9 / _col6) > (_col11 / _col1))) ELSE (false) END) ELSE (false) END
Merge Join Operator [MERGEJOIN_465] (rows=24496187 width=668)
- Conds:RS_126._col3=RS_541._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col6","_col7","_col9","_col11"]
+ Conds:RS_126._col3=RS_551._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col6","_col7","_col9","_col11"]
<-Reducer 26 [SIMPLE_EDGE] vectorized
- SHUFFLE [RS_541]
+ SHUFFLE [RS_551]
PartitionCols:_col0
- Select Operator [SEL_540] (rows=51391963 width=212)
+ Select Operator [SEL_550] (rows=51391963 width=212)
Output:["_col0","_col1"]
- Group By Operator [GBY_539] (rows=51391963 width=764)
+ Group By Operator [GBY_549] (rows=51391963 width=764)
Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4, KEY._col5, KEY._col6
<-Reducer 25 [SIMPLE_EDGE]
SHUFFLE [RS_95]
@@ -359,32 +359,32 @@ Stage-0
Group By Operator [GBY_94] (rows=51391963 width=764)
Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(_col2)"],keys:_col5, _col6, _col7, _col8, _col9, _col10, _col11
Merge Join Operator [MERGEJOIN_459] (rows=51391963 width=764)
- Conds:RS_90._col1=RS_504._col0(Inner),Output:["_col2","_col5","_col6","_col7","_col8","_col9","_col10","_col11"]
+ Conds:RS_90._col1=RS_506._col0(Inner),Output:["_col2","_col5","_col6","_col7","_col8","_col9","_col10","_col11"]
<-Map 38 [SIMPLE_EDGE] vectorized
- SHUFFLE [RS_504]
+ SHUFFLE [RS_506]
PartitionCols:_col0
- Please refer to the previous Select Operator [SEL_502]
+ Please refer to the previous Select Operator [SEL_504]
<-Reducer 24 [SIMPLE_EDGE]
SHUFFLE [RS_90]
PartitionCols:_col1
Merge Join Operator [MERGEJOIN_458] (rows=51391963 width=115)
- Conds:RS_87._col0=RS_477._col0(Inner),Output:["_col1","_col2"]
+ Conds:RS_548._col0=RS_477._col0(Inner),Output:["_col1","_col2"]
<-Map 31 [SIMPLE_EDGE] vectorized
PARTITION_ONLY_SHUFFLE [RS_477]
PartitionCols:_col0
Please refer to the previous Select Operator [SEL_471]
- <-Map 23 [SIMPLE_EDGE]
- SHUFFLE [RS_87]
+ <-Map 23 [SIMPLE_EDGE] vectorized
+ SHUFFLE [RS_548]
PartitionCols:_col0
- Select Operator [SEL_81] (rows=143930993 width=119)
+ Select Operator [SEL_547] (rows=143930993 width=119)
Output:["_col0","_col1","_col2"]
- Filter Operator [FIL_241] (rows=143930993 width=455)
+ Filter Operator [FIL_546] (rows=143930993 width=455)
predicate:(ws_bill_customer_sk is not null and ws_sold_date_sk is not null and ws_sold_date_sk BETWEEN DynamicValue(RS_88_date_dim_d_date_sk_min) AND DynamicValue(RS_88_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_88_date_dim_d_date_sk_bloom_filter)))
TableScan [TS_79] (rows=144002668 width=455)
default@web_sales,web_sales,Tbl:COMPLETE,Col:COMPLETE,Output:["ws_sold_date_sk","ws_bill_customer_sk","ws_ext_discount_amt","ws_ext_sales_price","ws_ext_wholesale_cost","ws_ext_list_price"]
<-Reducer 33 [BROADCAST_EDGE] vectorized
- BROADCAST [RS_537]
- Group By Operator [GBY_536] (rows=1 width=12)
+ BROADCAST [RS_545]
+ Group By Operator [GBY_544] (rows=1 width=12)
Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"]
<-Map 31 [CUSTOM_SIMPLE_EDGE] vectorized
PARTITION_ONLY_SHUFFLE [RS_494]
@@ -397,13 +397,13 @@ Stage-0
FORWARD [RS_126]
PartitionCols:_col3
Merge Join Operator [MERGEJOIN_464] (rows=20485012 width=556)
- Conds:RS_123._col3=RS_535._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col6","_col7","_col9"]
+ Conds:RS_123._col3=RS_543._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col6","_col7","_col9"]
<-Reducer 22 [SIMPLE_EDGE] vectorized
- SHUFFLE [RS_535]
+ SHUFFLE [RS_543]
PartitionCols:_col0
- Select Operator [SEL_534] (rows=80000000 width=212)
+ Select Operator [SEL_542] (rows=80000000 width=212)
Output:["_col0","_col1"]
- Group By Operator [GBY_533] (rows=80000000 width=764)
+ Group By Operator [GBY_541] (rows=80000000 width=764)
Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4, KEY._col5, KEY._col6
<-Reducer 21 [SIMPLE_EDGE]
SHUFFLE [RS_76]
@@ -411,32 +411,32 @@ Stage-0
Group By Operator [GBY_75] (rows=80000000 width=764)
Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(_col2)"],keys:_col5, _col6, _col7, _col8, _col9, _col10, _col11
Merge Join Operator [MERGEJOIN_457] (rows=101084444 width=764)
- Conds:RS_71._col1=RS_505._col0(Inner),Output:["_col2","_col5","_col6","_col7","_col8","_col9","_col10","_col11"]
+ Conds:RS_71._col1=RS_507._col0(Inner),Output:["_col2","_col5","_col6","_col7","_col8","_col9","_col10","_col11"]
<-Map 38 [SIMPLE_EDGE] vectorized
- SHUFFLE [RS_505]
+ SHUFFLE [RS_507]
PartitionCols:_col0
- Please refer to the previous Select Operator [SEL_502]
+ Please refer to the previous Select Operator [SEL_504]
<-Reducer 20 [SIMPLE_EDGE]
SHUFFLE [RS_71]
PartitionCols:_col1
Merge Join Operator [MERGEJOIN_456] (rows=101084444 width=115)
- Conds:RS_68._col0=RS_479._col0(Inner),Output:["_col1","_col2"]
+ Conds:RS_540._col0=RS_479._col0(Inner),Output:["_col1","_col2"]
<-Map 31 [SIMPLE_EDGE] vectorized
PARTITION_ONLY_SHUFFLE [RS_479]
PartitionCols:_col0
Please refer to the previous Select Operator [SEL_471]
- <-Map 19 [SIMPLE_EDGE]
- SHUFFLE [RS_68]
+ <-Map 19 [SIMPLE_EDGE] vectorized
+ SHUFFLE [RS_540]
PartitionCols:_col0
- Select Operator [SEL_62] (rows=285117831 width=119)
+ Select Operator [SEL_539] (rows=285117831 width=119)
Output:["_col0","_col1","_col2"]
- Filter Operator [FIL_238] (rows=285117831 width=453)
+ Filter Operator [FIL_538] (rows=285117831 width=453)
predicate:(cs_sold_date_sk is not null and cs_bill_customer_sk is not null and cs_sold_date_sk BETWEEN DynamicValue(RS_69_date_dim_d_date_sk_min) AND DynamicValue(RS_69_date_dim_d_date_sk_max) and in_bloom_filter(cs_sold_date_sk, DynamicValue(RS_69_date_dim_d_date_sk_bloom_filter)))
TableScan [TS_60] (rows=287989836 width=453)
default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:COMPLETE,Output:["cs_sold_date_sk","cs_bill_customer_sk","cs_ext_discount_amt","cs_ext_sales_price","cs_ext_wholesale_cost","cs_ext_list_price"]
<-Reducer 34 [BROADCAST_EDGE] vectorized
- BROADCAST [RS_531]
- Group By Operator [GBY_530] (rows=1 width=12)
+ BROADCAST [RS_537]
+ Group By Operator [GBY_536] (rows=1 width=12)
Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"]
<-Map 31 [CUSTOM_SIMPLE_EDGE] vectorized
PARTITION_ONLY_SHUFFLE [RS_495]
@@ -449,17 +449,17 @@ Stage-0
FORWARD [RS_123]
PartitionCols:_col3
Merge Join Operator [MERGEJOIN_463] (rows=17130654 width=444)
- Conds:RS_120._col3=RS_529._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col6","_col7"]
+ Conds:RS_120._col3=RS_535._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col6","_col7"]
<-Reducer 18 [SIMPLE_EDGE] vectorized
- SHUFFLE [RS_529]
+ SHUFFLE [RS_535]
PartitionCols:_col0
- Select Operator [SEL_528] (rows=26666666 width=216)
+ Select Operator [SEL_534] (rows=26666666 width=216)
Output:["_col0","_col1","_col2"]
- Filter Operator [FIL_527] (rows=26666666 width=212)
+ Filter Operator [FIL_533] (rows=26666666 width=212)
predicate:(_col7 > 0)
- Select Operator [SEL_526] (rows=80000000 width=212)
+ Select Operator [SEL_532] (rows=80000000 width=212)
Output:["_col0","_col7"]
- Group By Operator [GBY_525] (rows=80000000 width=764)
+ Group By Operator [GBY_531] (rows=80000000 width=764)
Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4, KEY._col5, KEY._col6
<-Reducer 17 [SIMPLE_EDGE]
SHUFFLE [RS_56]
@@ -467,16 +467,16 @@ Stage-0
Group By Operator [GBY_55] (rows=80000000 width=764)
Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(_col2)"],keys:_col5, _col6, _col7, _col8, _col9, _col10, _col11
Merge Join Operator [MERGEJOIN_455] (rows=101084444 width=764)
- Conds:RS_51._col1=RS_508._col0(Inner),Output:["_col2","_col5","_col6","_col7","_col8","_col9","_col10","_col11"]
+ Conds:RS_51._col1=RS_510._col0(Inner),Output:["_col2","_col5","_col6","_col7","_col8","_col9","_col10","_col11"]
<-Map 38 [SIMPLE_EDGE] vectorized
- SHUFFLE [RS_508]
+ SHUFFLE [RS_510]
PartitionCols:_col0
- Please refer to the previous Select Operator [SEL_502]
+ Please refer to the previous Select Operator [SEL_504]
<-Reducer 16 [SIMPLE_EDGE]
SHUFFLE [RS_51]
PartitionCols:_col1
Merge Join Operator [MERGEJOIN_454] (rows=101084444 width=115)
- Conds:RS_48._col0=RS_485._col0(Inner),Output:["_col1","_col2"]
+ Conds:RS_530._col0=RS_485._col0(Inner),Output:["_col1","_col2"]
<-Map 31 [SIMPLE_EDGE] vectorized
PARTITION_ONLY_SHUFFLE [RS_485]
PartitionCols:_col0
@@ -485,18 +485,18 @@ Stage-0
Filter Operator [FIL_470] (rows=652 width=8)
predicate:(d_year = 2001)
Please refer to the previous TableScan [TS_101]
- <-Map 15 [SIMPLE_EDGE]
- SHUFFLE [RS_48]
+ <-Map 15 [SIMPLE_EDGE] vectorized
+ SHUFFLE [RS_530]
PartitionCols:_col0
- Select Operator [SEL_42] (rows=285117831 width=119)
+ Select Operator [SEL_529] (rows=285117831 width=119)
Output:["_col0","_col1","_col2"]
- Filter Operator [FIL_235] (rows=285117831 width=453)
+ Filter Operator [FIL_528] (rows=285117831 width=453)
predicate:(cs_sold_date_sk is not null and cs_bill_customer_sk is not null and cs_sold_date_sk BETWEEN DynamicValue(RS_49_date_dim_d_date_sk_min) AND DynamicValue(RS_49_date_dim_d_date_sk_max) and in_bloom_filter(cs_sold_date_sk, DynamicValue(RS_49_date_dim_d_date_sk_bloom_filter)))
TableScan [TS_40] (rows=287989836 width=453)
default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:COMPLETE,Output:["cs_sold_date_sk","cs_bill_customer_sk","cs_ext_discount_amt","cs_ext_sales_price","cs_ext_wholesale_cost","cs_ext_list_price"]
<-Reducer 37 [BROADCAST_EDGE] vectorized
- BROADCAST [RS_523]
- Group By Operator [GBY_522] (rows=1 width=12)
+ BROADCAST [RS_527]
+ Group By Operator [GBY_526] (rows=1 width=12)
Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"]
<-Map 31 [CUSTOM_SIMPLE_EDGE] vectorized
PARTITION_ONLY_SHUFFLE [RS_498]
@@ -509,17 +509,17 @@ Stage-0
FORWARD [RS_120]
PartitionCols:_col3
Merge Join Operator [MERGEJOIN_462] (rows=17130654 width=328)
- Conds:RS_513._col0=RS_521._col0(Inner),Output:["_col1","_col2","_col3","_col4"]
+ Conds:RS_515._col0=RS_525._col0(Inner),Output:["_col1","_col2","_col3","_col4"]
<-Reducer 14 [SIMPLE_EDGE] vectorized
- SHUFFLE [RS_521]
+ SHUFFLE [RS_525]
PartitionCols:_col0
- Select Operator [SEL_520] (rows=26666666 width=212)
+ Select Operator [SEL_524] (rows=26666666 width=212)
Output:["_col0","_col1"]
- Filter Operator [FIL_519] (rows=26666666 width=212)
+ Filter Operator [FIL_523] (rows=26666666 width=212)
predicate:(_col7 > 0)
- Select Operator [SEL_518] (rows=80000000 width=212)
+ Select Operator [SEL_522] (rows=80000000 width=212)
Output:["_col0","_col7"]
- Group By Operator [GBY_517] (rows=80000000 width=764)
+ Group By Operator [GBY_521] (rows=80000000 width=764)
Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4, KEY._col5, KEY._col6
<-Reducer 13 [SIMPLE_EDGE]
SHUFFLE [RS_36]
@@ -527,16 +527,16 @@ Stage-0
Group By Operator [GBY_35] (rows=80000000 width=764)
Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(_col2)"],keys:_col5, _col6, _col7, _col8, _col9, _col10, _col11
Merge Join Operator [MERGEJOIN_453] (rows=187573258 width=764)
- Conds:RS_31._col1=RS_507._col0(Inner),Output:["_col2","_col5","_col6","_col7","_col8","_col9","_col10","_col11"]
+ Conds:RS_31._col1=RS_509._col0(Inner),Output:["_col2","_col5","_col6","_col7","_col8","_col9","_col10","_col11"]
<-Map 38 [SIMPLE_EDGE] vectorized
- SHUFFLE [RS_507]
+ SHUFFLE [RS_509]
PartitionCols:_col0
- Please refer to the previous Select Operator [SEL_502]
+ Please refer to the previous Select Operator [SEL_504]
<-Reducer 12 [SIMPLE_EDGE]
SHUFFLE [RS_31]
PartitionCols:_col1
Merge Join Operator [MERGEJOIN_452] (rows=187573258 width=115)
- Conds:RS_28._col0=RS_483._col0(Inner),Output:["_col1","_col2"]
+ Conds:RS_520._col0=RS_483._col0(Inner),Output:["_col1","_col2"]
<-Map 31 [SIMPLE_EDGE] vectorized
PARTITION_ONLY_SHUFFLE [RS_483]
PartitionCols:_col0
@@ -545,18 +545,18 @@ Stage-0
Filter Operator [FIL_469] (rows=652 width=8)
predicate:(d_year = 2001)
Please refer to the previous TableScan [TS_101]
- <-Map 11 [SIMPLE_EDGE]
- SHUFFLE [RS_28]
+ <-Map 11 [SIMPLE_EDGE] vectorized
+ SHUFFLE [RS_520]
PartitionCols:_col0
- Select Operator [SEL_22] (rows=525327388 width=119)
+ Select Operator [SEL_519] (rows=525327388 width=119)
Output:["_col0","_col1","_col2"]
- Filter Operator [FIL_232] (rows=525327388 width=435)
+ Filter Operator [FIL_518] (rows=525327388 width=435)
predicate:(ss_sold_date_sk is not null and ss_customer_sk is not null and ss_sold_date_sk BETWEEN DynamicValue(RS_29_date_dim_d_date_sk_min) AND DynamicValue(RS_29_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_29_date_dim_d_date_sk_bloom_filter)))
TableScan [TS_20] (rows=575995635 width=435)
default@store_sales,store_sales,Tbl:COMPLETE,Col:COMPLETE,Output:["ss_sold_date_sk","ss_customer_sk","ss_ext_discount_amt","ss_ext_sales_price","ss_ext_wholesale_cost","ss_ext_list_price"]
<-Reducer 36 [BROADCAST_EDGE] vectorized
- BROADCAST [RS_515]
- Group By Operator [GBY_514] (rows=1 width=12)
+ BROADCAST [RS_517]
+ Group By Operator [GBY_516] (rows=1 width=12)
Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"]
<-Map 31 [CUSTOM_SIMPLE_EDGE] vectorized
PARTITION_ONLY_SHUFFLE [RS_497]
@@ -566,15 +566,15 @@ Stage-0
Output:["_col0"]
Please refer to the previous Select Operator [SEL_473]
<-Reducer 4 [SIMPLE_EDGE] vectorized
- SHUFFLE [RS_513]
+ SHUFFLE [RS_515]
PartitionCols:_col0
- Select Operator [SEL_512] (rows=17130654 width=216)
+ Select Operator [SEL_514] (rows=17130654 width=216)
Output:["_col0","_col1","_col2"]
- Filter Operator [FIL_511] (rows=17130654 width=212)
+ Filter Operator [FIL_513] (rows=17130654 width=212)
predicate:(_col7 > 0)
- Select Operator [SEL_510] (rows=51391963 width=212)
+ Select Operator [SEL_512] (rows=51391963 width=212)
Output:["_col0","_col7"]
- Group By Operator [GBY_509] (rows=51391963 width=764)
+ Group By Operator [GBY_511] (rows=51391963 width=764)
Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4, KEY._col5, KEY._col6
<-Reducer 3 [SIMPLE_EDGE]
SHUFFLE [RS_16]
@@ -582,16 +582,16 @@ Stage-0
Group By Operator [GBY_15] (rows=51391963 width=764)
Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(_col2)"],keys:_col5, _col6, _col7, _col8, _col9, _col10, _col11
Merge Join Operator [MERGEJOIN_451] (rows=51391963 width=764)
- Conds:RS_11._col1=RS_506._col0(Inner),Output:["_col2","_col5","_col6","_col7","_col8","_col9","_col10","_col11"]
+ Conds:RS_11._col1=RS_508._col0(Inner),Output:["_col2","_col5","_col6","_col7","_col8","_col9","_col10","_col11"]
<-Map 38 [SIMPLE_EDGE] vectorized
- SHUFFLE [RS_506]
+ SHUFFLE [RS_508]
PartitionCols:_col0
- Please refer to the previous Select Operator [SEL_502]
+ Please refer to the previous Select Operator [SEL_504]
<-Reducer 2 [SIMPLE_EDGE]
SHUFFLE [RS_11]
PartitionCols:_col1
Merge Join Operator [MERGEJOIN_450] (rows=51391963 width=115)
- Conds:RS_8._col0=RS_481._col0(Inner),Output:["_col1","_col2"]
+ Conds:RS_503._col0=RS_481._col0(Inner),Output:["_col1","_col2"]
<-Map 31 [SIMPLE_EDGE] vectorized
PARTITION_ONLY_SHUFFLE [RS_481]
PartitionCols:_col0
@@ -600,12 +600,12 @@ Stage-0
Filter Operator [FIL_468] (rows=652 width=8)
predicate:(d_year = 2001)
Please refer to the previous TableScan [TS_101]
- <-Map 1 [SIMPLE_EDGE]
- SHUFFLE [RS_8]
+ <-Map 1 [SIMPLE_EDGE] vectorized
+ SHUFFLE [RS_503]
PartitionCols:_col0
- Select Operator [SEL_2] (rows=143930993 width=119)
+ Select Operator [SEL_502] (rows=143930993 width=119)
Output:["_col0","_col1","_col2"]
- Filter Operator [FIL_229] (rows=143930993 width=455)
+ Filter Operator [FIL_501] (rows=143930993 width=455)
predicate:(ws_bill_customer_sk is not null and ws_sold_date_sk is not null and ws_sold_date_sk BETWEEN DynamicValue(RS_9_date_dim_d_date_sk_min) AND DynamicValue(RS_9_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_9_date_dim_d_date_sk_bloom_filter)))
TableScan [TS_0] (rows=144002668 width=455)
default@web_sales,web_sales,Tbl:COMPLETE,Col:COMPLETE,Output:["ws_sold_date_sk","ws_bill_customer_sk","ws_ext_discount_amt","ws_ext_sales_price","ws_ext_wholesale_cost","ws_ext_list_price"]
diff --git a/ql/src/test/results/clientpositive/perf/tez/query4.q.out b/ql/src/test/results/clientpositive/perf/tez/query4.q.out
index 47515ed..8f4760c 100644
--- a/ql/src/test/results/clientpositive/perf/tez/query4.q.out
+++ b/ql/src/test/results/clientpositive/perf/tez/query4.q.out
@@ -271,10 +271,10 @@ Stage-0
limit:100
Stage-1
Reducer 10 vectorized
- File Output Operator [FS_557]
- Limit [LIM_556] (rows=100 width=85)
+ File Output Operator [FS_569]
+ Limit [LIM_568] (rows=100 width=85)
Number of rows:100
- Select Operator [SEL_555] (rows=7323197 width=85)
+ Select Operator [SEL_567] (rows=7323197 width=85)
Output:["_col0"]
<-Reducer 9 [SIMPLE_EDGE]
SHUFFLE [RS_141]
@@ -283,13 +283,13 @@ Stage-0
Filter Operator [FIL_139] (rows=7323197 width=537)
predicate:CASE WHEN (_col3 is not null) THEN (CASE WHEN (_col9) THEN (((_col11 / _col8) > (_col14 / _col3))) ELSE (false) END) ELSE (false) END
Merge Join Operator [MERGEJOIN_472] (rows=14646395 width=537)
- Conds:RS_136._col2=RS_554._col0(Inner),Output:["_col3","_col8","_col9","_col11","_col13","_col14"]
+ Conds:RS_136._col2=RS_566._col0(Inner),Output:["_col3","_col8","_col9","_col11","_col13","_col14"]
<-Reducer 30 [SIMPLE_EDGE] vectorized
- SHUFFLE [RS_554]
+ SHUFFLE [RS_566]
PartitionCols:_col0
- Select Operator [SEL_553] (rows=80000000 width=297)
+ Select Operator [SEL_565] (rows=80000000 width=297)
Output:["_col0","_col1","_col2"]
- Group By Operator [GBY_552] (rows=80000000 width=764)
+ Group By Operator [GBY_564] (rows=80000000 width=764)
Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4, KEY._col5, KEY._col6
<-Reducer 29 [SIMPLE_EDGE]
SHUFFLE [RS_120]
@@ -297,13 +297,13 @@ Stage-0
Group By Operator [GBY_119] (rows=80000000 width=764)
Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(_col2)"],keys:_col5, _col6, _col7, _col8, _col9, _col10, _col11
Merge Join Operator [MERGEJOIN_467] (rows=187573258 width=764)
- Conds:RS_115._col1=RS_510._col0(Inner),Output:["_col2","_col5","_col6","_col7","_col8","_col9","_col10","_col11"]
+ Conds:RS_115._col1=RS_512._col0(Inner),Output:["_col2","_col5","_col6","_col7","_col8","_col9","_col10","_col11"]
<-Map 38 [SIMPLE_EDGE] vectorized
- SHUFFLE [RS_510]
+ SHUFFLE [RS_512]
PartitionCols:_col0
- Select Operator [SEL_509] (rows=80000000 width=656)
+ Select Operator [SEL_511] (rows=80000000 width=656)
Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"]
- Filter Operator [FIL_508] (rows=80000000 width=656)
+ Filter Operator [FIL_510] (rows=80000000 width=656)
predicate:(c_customer_sk is not null and c_customer_id is not null)
TableScan [TS_109] (rows=80000000 width=656)
default@customer,customer,Tbl:COMPLETE,Col:COMPLETE,Output:["c_customer_sk","c_customer_id","c_first_name","c_last_name","c_preferred_cust_flag","c_birth_country","c_login","c_email_address"]
@@ -311,7 +311,7 @@ Stage-0
SHUFFLE [RS_115]
PartitionCols:_col1
Merge Join Operator [MERGEJOIN_466] (rows=187573258 width=115)
- Conds:RS_112._col0=RS_481._col0(Inner),Output:["_col1","_col2"]
+ Conds:RS_563._col0=RS_481._col0(Inner),Output:["_col1","_col2"]
<-Map 31 [SIMPLE_EDGE] vectorized
PARTITION_ONLY_SHUFFLE [RS_481]
PartitionCols:_col0
@@ -321,18 +321,18 @@ Stage-0
predicate:((d_year = 2002) and d_date_sk is not null)
TableScan [TS_106] (rows=73049 width=8)
default@date_dim,date_dim,Tbl:COMPLETE,Col:COMPLETE,Output:["d_date_sk","d_year"]
- <-Map 27 [SIMPLE_EDGE]
- SHUFFLE [RS_112]
+ <-Map 27 [SIMPLE_EDGE] vectorized
+ SHUFFLE [RS_563]
PartitionCols:_col0
- Select Operator [SEL_105] (rows=525327388 width=119)
+ Select Operator [SEL_562] (rows=525327388 width=119)
Output:["_col0","_col1","_col2"]
- Filter Operator [FIL_250] (rows=525327388 width=435)
+ Filter Operator [FIL_561] (rows=525327388 width=435)
predicate:(ss_sold_date_sk is not null and ss_customer_sk is not null and ss_sold_date_sk BETWEEN DynamicValue(RS_113_date_dim_d_date_sk_min) AND DynamicValue(RS_113_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_113_date_dim_d_date_sk_bloom_filter)))
TableScan [TS_103] (rows=575995635 width=435)
default@store_sales,store_sales,Tbl:COMPLETE,Col:COMPLETE,Output:["ss_sold_date_sk","ss_customer_sk","ss_ext_discount_amt","ss_ext_sales_price","ss_ext_wholesale_cost","ss_ext_list_price"]
<-Reducer 32 [BROADCAST_EDGE] vectorized
- BROADCAST [RS_550]
- Group By Operator [GBY_549] (rows=1 width=12)
+ BROADCAST [RS_560]
+ Group By Operator [GBY_559] (rows=1 width=12)
Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"]
<-Map 31 [CUSTOM_SIMPLE_EDGE] vectorized
PARTITION_ONLY_SHUFFLE [RS_499]
@@ -347,13 +347,13 @@ Stage-0
Filter Operator [FIL_135] (rows=12248093 width=668)
predicate:CASE WHEN (_col6) THEN (CASE WHEN (_col9) THEN (((_col11 / _col8) > (_col1 / _col5))) ELSE (false) END) ELSE (false) END
Merge Join Operator [MERGEJOIN_471] (rows=24496186 width=668)
- Conds:RS_132._col2=RS_548._col0(Inner),Output:["_col1","_col2","_col3","_col5","_col6","_col8","_col9","_col11"]
+ Conds:RS_132._col2=RS_558._col0(Inner),Output:["_col1","_col2","_col3","_col5","_col6","_col8","_col9","_col11"]
<-Reducer 26 [SIMPLE_EDGE] vectorized
- SHUFFLE [RS_548]
+ SHUFFLE [RS_558]
PartitionCols:_col0
- Select Operator [SEL_547] (rows=80000000 width=212)
+ Select Operator [SEL_557] (rows=80000000 width=212)
Output:["_col0","_col1"]
- Group By Operator [GBY_546] (rows=80000000 width=764)
+ Group By Operator [GBY_556] (rows=80000000 width=764)
Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4, KEY._col5, KEY._col6
<-Reducer 25 [SIMPLE_EDGE]
SHUFFLE [RS_100]
@@ -361,32 +361,32 @@ Stage-0
Group By Operator [GBY_99] (rows=80000000 width=764)
Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(_col2)"],keys:_col5, _col6, _col7, _col8, _col9, _col10, _col11
Merge Join Operator [MERGEJOIN_465] (rows=101084444 width=764)
- Conds:RS_95._col1=RS_511._col0(Inner),Output:["_col2","_col5","_col6","_col7","_col8","_col9","_col10","_col11"]
+ Conds:RS_95._col1=RS_513._col0(Inner),Output:["_col2","_col5","_col6","_col7","_col8","_col9","_col10","_col11"]
<-Map 38 [SIMPLE_EDGE] vectorized
- SHUFFLE [RS_511]
+ SHUFFLE [RS_513]
PartitionCols:_col0
- Please refer to the previous Select Operator [SEL_509]
+ Please refer to the previous Select Operator [SEL_511]
<-Reducer 24 [SIMPLE_EDGE]
SHUFFLE [RS_95]
PartitionCols:_col1
Merge Join Operator [MERGEJOIN_464] (rows=101084444 width=115)
- Conds:RS_92._col0=RS_483._col0(Inner),Output:["_col1","_col2"]
+ Conds:RS_555._col0=RS_483._col0(Inner),Output:["_col1","_col2"]
<-Map 31 [SIMPLE_EDGE] vectorized
PARTITION_ONLY_SHUFFLE [RS_483]
PartitionCols:_col0
Please refer to the previous Select Operator [SEL_477]
- <-Map 23 [SIMPLE_EDGE]
- SHUFFLE [RS_92]
+ <-Map 23 [SIMPLE_EDGE] vectorized
+ SHUFFLE [RS_555]
PartitionCols:_col0
- Select Operator [SEL_85] (rows=285117831 width=119)
+ Select Operator [SEL_554] (rows=285117831 width=119)
Output:["_col0","_col1","_col2"]
- Filter Operator [FIL_247] (rows=285117831 width=453)
+ Filter Operator [FIL_553] (rows=285117831 width=453)
predicate:(cs_sold_date_sk is not null and cs_bill_customer_sk is not null and cs_sold_date_sk BETWEEN DynamicValue(RS_93_date_dim_d_date_sk_min) AND DynamicValue(RS_93_date_dim_d_date_sk_max) and in_bloom_filter(cs_sold_date_sk, DynamicValue(RS_93_date_dim_d_date_sk_bloom_filter)))
TableScan [TS_83] (rows=287989836 width=453)
default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:COMPLETE,Output:["cs_sold_date_sk","cs_bill_customer_sk","cs_ext_discount_amt","cs_ext_sales_price","cs_ext_wholesale_cost","cs_ext_list_price"]
<-Reducer 33 [BROADCAST_EDGE] vectorized
- BROADCAST [RS_544]
- Group By Operator [GBY_543] (rows=1 width=12)
+ BROADCAST [RS_552]
+ Group By Operator [GBY_551] (rows=1 width=12)
Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"]
<-Map 31 [CUSTOM_SIMPLE_EDGE] vectorized
PARTITION_ONLY_SHUFFLE [RS_500]
@@ -399,17 +399,17 @@ Stage-0
FORWARD [RS_132]
PartitionCols:_col2
Merge Join Operator [MERGEJOIN_470] (rows=20485011 width=556)
- Conds:RS_129._col2=RS_542._col0(Inner),Output:["_col1","_col2","_col3","_col5","_col6","_col8","_col9"]
+ Conds:RS_129._col2=RS_550._col0(Inner),Output:["_col1","_col2","_col3","_col5","_col6","_col8","_col9"]
<-Reducer 22 [SIMPLE_EDGE] vectorized
- SHUFFLE [RS_542]
+ SHUFFLE [RS_550]
PartitionCols:_col0
- Select Operator [SEL_541] (rows=26666666 width=216)
+ Select Operator [SEL_549] (rows=26666666 width=216)
Output:["_col0","_col1","_col2"]
- Filter Operator [FIL_540] (rows=26666666 width=212)
+ Filter Operator [FIL_548] (rows=26666666 width=212)
predicate:(_col7 > 0)
- Select Operator [SEL_539] (rows=80000000 width=212)
+ Select Operator [SEL_547] (rows=80000000 width=212)
Output:["_col0","_col7"]
- Group By Operator [GBY_538] (rows=80000000 width=764)
+ Group By Operator [GBY_546] (rows=80000000 width=764)
Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4, KEY._col5, KEY._col6
<-Reducer 21 [SIMPLE_EDGE]
SHUFFLE [RS_79]
@@ -417,16 +417,16 @@ Stage-0
Group By Operator [GBY_78] (rows=80000000 width=764)
Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(_col2)"],keys:_col5, _col6, _col7, _col8, _col9, _col10, _col11
Merge Join Operator [MERGEJOIN_463] (rows=101084444 width=764)
- Conds:RS_74._col1=RS_515._col0(Inner),Output:["_col2","_col5","_col6","_col7","_col8","_col9","_col10","_col11"]
+ Conds:RS_74._col1=RS_517._col0(Inner),Output:["_col2","_col5","_col6","_col7","_col8","_col9","_col10","_col11"]
<-Map 38 [SIMPLE_EDGE] vectorized
- SHUFFLE [RS_515]
+ SHUFFLE [RS_517]
PartitionCols:_col0
- Please refer to the previous Select Operator [SEL_509]
+ Please refer to the previous Select Operator [SEL_511]
<-Reducer 20 [SIMPLE_EDGE]
SHUFFLE [RS_74]
PartitionCols:_col1
Merge Join Operator [MERGEJOIN_462] (rows=101084444 width=115)
- Conds:RS_71._col0=RS_491._col0(Inner),Output:["_col1","_col2"]
+ Conds:RS_545._col0=RS_491._col0(Inner),Output:["_col1","_col2"]
<-Map 31 [SIMPLE_EDGE] vectorized
PARTITION_ONLY_SHUFFLE [RS_491]
PartitionCols:_col0
@@ -435,18 +435,18 @@ Stage-0
Filter Operator [FIL_476] (rows=652 width=8)
predicate:((d_year = 2001) and d_date_sk is not null)
Please refer to the previous TableScan [TS_106]
- <-Map 19 [SIMPLE_EDGE]
- SHUFFLE [RS_71]
+ <-Map 19 [SIMPLE_EDGE] vectorized
+ SHUFFLE [RS_545]
PartitionCols:_col0
- Select Operator [SEL_64] (rows=285117831 width=119)
+ Select Operator [SEL_544] (rows=285117831 width=119)
Output:["_col0","_col1","_col2"]
- Filter Operator [FIL_244] (rows=285117831 width=453)
+ Filter Operator [FIL_543] (rows=285117831 width=453)
predicate:(cs_sold_date_sk is not null and cs_bill_customer_sk is not null and cs_sold_date_sk BETWEEN DynamicValue(RS_72_date_dim_d_date_sk_min) AND DynamicValue(RS_72_date_dim_d_date_sk_max) and in_bloom_filter(cs_sold_date_sk, DynamicValue(RS_72_date_dim_d_date_sk_bloom_filter)))
TableScan [TS_62] (rows=287989836 width=453)
default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:COMPLETE,Output:["cs_sold_date_sk","cs_bill_customer_sk","cs_ext_discount_amt","cs_ext_sales_price","cs_ext_wholesale_cost","cs_ext_list_price"]
<-Reducer 37 [BROADCAST_EDGE] vectorized
- BROADCAST [RS_536]
- Group By Operator [GBY_535] (rows=1 width=12)
+ BROADCAST [RS_542]
+ Group By Operator [GBY_541] (rows=1 width=12)
Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"]
<-Map 31 [CUSTOM_SIMPLE_EDGE] vectorized
PARTITION_ONLY_SHUFFLE [RS_504]
@@ -459,17 +459,17 @@ Stage-0
FORWARD [RS_129]
PartitionCols:_col2
Merge Join Operator [MERGEJOIN_469] (rows=20485011 width=440)
- Conds:RS_126._col2=RS_534._col0(Inner),Output:["_col1","_col2","_col3","_col5","_col6"]
+ Conds:RS_126._col2=RS_540._col0(Inner),Output:["_col1","_col2","_col3","_col5","_col6"]
<-Reducer 18 [SIMPLE_EDGE] vectorized
- SHUFFLE [RS_534]
+ SHUFFLE [RS_540]
PartitionCols:_col0
- Select Operator [SEL_533] (rows=17130654 width=216)
+ Select Operator [SEL_539] (rows=17130654 width=216)
Output:["_col0","_col1","_col2"]
- Filter Operator [FIL_532] (rows=17130654 width=212)
+ Filter Operator [FIL_538] (rows=17130654 width=212)
predicate:(_col7 > 0)
- Select Operator [SEL_531] (rows=51391963 width=212)
+ Select Operator [SEL_537] (rows=51391963 width=212)
Output:["_col0","_col7"]
- Group By Operator [GBY_530] (rows=51391963 width=764)
+ Group By Operator [GBY_536] (rows=51391963 width=764)
Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4, KEY._col5, KEY._col6
<-Reducer 17 [SIMPLE_EDGE]
SHUFFLE [RS_58]
@@ -477,16 +477,16 @@ Stage-0
Group By Operator [GBY_57] (rows=51391963 width=764)
Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(_col2)"],keys:_col5, _col6, _col7, _col8, _col9, _col10, _col11
Merge Join Operator [MERGEJOIN_461] (rows=51391963 width=764)
- Conds:RS_53._col1=RS_514._col0(Inner),Output:["_col2","_col5","_col6","_col7","_col8","_col9","_col10","_col11"]
+ Conds:RS_53._col1=RS_516._col0(Inner),Output:["_col2","_col5","_col6","_col7","_col8","_col9","_col10","_col11"]
<-Map 38 [SIMPLE_EDGE] vectorized
- SHUFFLE [RS_514]
+ SHUFFLE [RS_516]
PartitionCols:_col0
- Please refer to the previous Select Operator [SEL_509]
+ Please refer to the previous Select Operator [SEL_511]
<-Reducer 16 [SIMPLE_EDGE]
SHUFFLE [RS_53]
PartitionCols:_col1
Merge Join Operator [MERGEJOIN_460] (rows=51391963 width=115)
- Conds:RS_50._col0=RS_489._col0(Inner),Output:["_col1","_col2"]
+ Conds:RS_535._col0=RS_489._col0(Inner),Output:["_col1","_col2"]
<-Map 31 [SIMPLE_EDGE] vectorized
PARTITION_ONLY_SHUFFLE [RS_489]
PartitionCols:_col0
@@ -495,18 +495,18 @@ Stage-0
Filter Operator [FIL_475] (rows=652 width=8)
predicate:((d_year = 2001) and d_date_sk is not null)
Please refer to the previous TableScan [TS_106]
- <-Map 15 [SIMPLE_EDGE]
- SHUFFLE [RS_50]
+ <-Map 15 [SIMPLE_EDGE] vectorized
+ SHUFFLE [RS_535]
PartitionCols:_col0
- Select Operator [SEL_43] (rows=143930993 width=119)
+ Select Operator [SEL_534] (rows=143930993 width=119)
Output:["_col0","_col1","_col2"]
- Filter Operator [FIL_241] (rows=143930993 width=455)
+ Filter Operator [FIL_533] (rows=143930993 width=455)
predicate:(ws_bill_customer_sk is not null and ws_sold_date_sk is not null and ws_sold_date_sk BETWEEN DynamicValue(RS_51_date_dim_d_date_sk_min) AND DynamicValue(RS_51_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_51_date_dim_d_date_sk_bloom_filter)))
TableScan [TS_41] (rows=144002668 width=455)
default@web_sales,web_sales,Tbl:COMPLETE,Col:COMPLETE,Output:["ws_sold_date_sk","ws_bill_customer_sk","ws_ext_discount_amt","ws_ext_sales_price","ws_ext_wholesale_cost","ws_ext_list_price"]
<-Reducer 36 [BROADCAST_EDGE] vectorized
- BROADCAST [RS_528]
- Group By Operator [GBY_527] (rows=1 width=12)
+ BROADCAST [RS_532]
+ Group By Operator [GBY_531] (rows=1 width=12)
Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"]
<-Map 31 [CUSTOM_SIMPLE_EDGE] vectorized
PARTITION_ONLY_SHUFFLE [RS_503]
@@ -519,17 +519,17 @@ Stage-0
FORWARD [RS_126]
PartitionCols:_col2
Merge Join Operator [MERGEJOIN_468] (rows=31888273 width=324)
- Conds:RS_518._col0=RS_526._col0(Inner),Output:["_col1","_col2","_col3"]
+ Conds:RS_520._col0=RS_530._col0(Inner),Output:["_col1","_col2","_col3"]
<-Reducer 14 [SIMPLE_EDGE] vectorized
- SHUFFLE [RS_526]
+ SHUFFLE [RS_530]
PartitionCols:_col0
- Select Operator [SEL_525] (rows=26666666 width=212)
+ Select Operator [SEL_529] (rows=26666666 width=212)
Output:["_col0","_col1"]
- Filter Operator [FIL_524] (rows=26666666 width=212)
+ Filter Operator [FIL_528] (rows=26666666 width=212)
predicate:(_col7 > 0)
- Select Operator [SEL_523] (rows=80000000 width=212)
+ Select Operator [SEL_527] (rows=80000000 width=212)
Output:["_col0","_col7"]
- Group By Operator [GBY_522] (rows=80000000 width=764)
+ Group By Operator [GBY_526] (rows=80000000 width=764)
Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4, KEY._col5, KEY._col6
<-Reducer 13 [SIMPLE_EDGE]
SHUFFLE [RS_37]
@@ -537,16 +537,16 @@ Stage-0
Group By Operator [GBY_36] (rows=80000000 width=764)
Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(_col2)"],keys:_col5, _col6, _col7, _col8, _col9, _col10, _col11
Merge Join Operator [MERGEJOIN_459] (rows=187573258 width=764)
- Conds:RS_32._col1=RS_513._col0(Inner),Output:["_col2","_col5","_col6","_col7","_col8","_col9","_col10","_col11"]
+ Conds:RS_32._col1=RS_515._col0(Inner),Output:["_col2","_col5","_col6","_col7","_col8","_col9","_col10","_col11"]
<-Map 38 [SIMPLE_EDGE] vectorized
- SHUFFLE [RS_513]
+ SHUFFLE [RS_515]
PartitionCols:_col0
- Please refer to the previous Select Operator [SEL_509]
+ Please refer to the previous Select Operator [SEL_511]
<-Reducer 12 [SIMPLE_EDGE]
SHUFFLE [RS_32]
PartitionCols:_col1
Merge Join Operator [MERGEJOIN_458] (rows=187573258 width=115)
- Conds:RS_29._col0=RS_487._col0(Inner),Output:["_col1","_col2"]
+ Conds:RS_525._col0=RS_487._col0(Inner),Output:["_col1","_col2"]
<-Map 31 [SIMPLE_EDGE] vectorized
PARTITION_ONLY_SHUFFLE [RS_487]
PartitionCols:_col0
@@ -555,18 +555,18 @@ Stage-0
Filter Operator [FIL_474] (rows=652 width=8)
predicate:((d_year = 2001) and d_date_sk is not null)
Please refer to the previous TableScan [TS_106]
- <-Map 11 [SIMPLE_EDGE]
- SHUFFLE [RS_29]
+ <-Map 11 [SIMPLE_EDGE] vectorized
+ SHUFFLE [RS_525]
PartitionCols:_col0
- Select Operator [SEL_22] (rows=525327388 width=119)
+ Select Operator [SEL_524] (rows=525327388 width=119)
Output:["_col0","_col1","_col2"]
- Filter Operator [FIL_238] (rows=525327388 width=435)
+ Filter Operator [FIL_523] (rows=525327388 width=435)
predicate:(ss_sold_date_sk is not null and ss_customer_sk is not null and ss_sold_date_sk BETWEEN DynamicValue(RS_30_date_dim_d_date_sk_min) AND DynamicValue(RS_30_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_30_date_dim_d_date_sk_bloom_filter)))
TableScan [TS_20] (rows=575995635 width=435)
default@store_sales,store_sales,Tbl:COMPLETE,Col:COMPLETE,Output:["ss_sold_date_sk","ss_customer_sk","ss_ext_discount_amt","ss_ext_sales_price","ss_ext_wholesale_cost","ss_ext_list_price"]
<-Reducer 35 [BROADCAST_EDGE] vectorized
- BROADCAST [RS_520]
- Group By Operator [GBY_519] (rows=1 width=12)
+ BROADCAST [RS_522]
+ Group By Operator [GBY_521] (rows=1 width=12)
Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"]
<-Map 31 [CUSTOM_SIMPLE_EDGE] vectorized
PARTITION_ONLY_SHUFFLE [RS_502]
@@ -576,11 +576,11 @@ Stage-0
Output:["_col0"]
Please refer to the previous Select Operator [SEL_478]
<-Reducer 4 [SIMPLE_EDGE] vectorized
- SHUFFLE [RS_518]
+ SHUFFLE [RS_520]
PartitionCols:_col0
- Select Operator [SEL_517] (rows=51391963 width=212)
+ Select Operator [SEL_519] (rows=51391963 width=212)
Output:["_col0","_col1"]
- Group By Operator [GBY_516] (rows=51391963 width=764)
+ Group By Operator [GBY_518] (rows=51391963 width=764)
Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4, KEY._col5, KEY._col6
<-Reducer 3 [SIMPLE_EDGE]
SHUFFLE [RS_17]
@@ -588,26 +588,26 @@ Stage-0
Group By Operator [GBY_16] (rows=51391963 width=764)
Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(_col2)"],keys:_col5, _col6, _col7, _col8, _col9, _col10, _col11
Merge Join Operator [MERGEJOIN_457] (rows=51391963 width=764)
- Conds:RS_12._col1=RS_512._col0(Inner),Output:["_col2","_col5","_col6","_col7","_col8","_col9","_col10","_col11"]
+ Conds:RS_12._col1=RS_514._col0(Inner),Output:["_col2","_col5","_col6","_col7","_col8","_col9","_col10","_col11"]
<-Map 38 [SIMPLE_EDGE] vectorized
- SHUFFLE [RS_512]
+ SHUFFLE [RS_514]
PartitionCols:_col0
- Please refer to the previous Select Operator [SEL_509]
+ Please refer to the previous Select Operator [SEL_511]
<-Reducer 2 [SIMPLE_EDGE]
SHUFFLE [RS_12]
PartitionCols:_col1
Merge Join Operator [MERGEJOIN_456] (rows=51391963 width=115)
- Conds:RS_9._col0=RS_485._col0(Inner),Output:["_col1","_col2"]
+ Conds:RS_509._col0=RS_485._col0(Inner),Output:["_col1","_col2"]
<-Map 31 [SIMPLE_EDGE] vectorized
PARTITION_ONLY_SHUFFLE [RS_485]
PartitionCols:_col0
Please refer to the previous Select Operator [SEL_477]
- <-Map 1 [SIMPLE_EDGE]
- SHUFFLE [RS_9]
+ <-Map 1 [SIMPLE_EDGE] vectorized
+ SHUFFLE [RS_509]
PartitionCols:_col0
- Select Operator [SEL_2] (rows=143930993 width=119)
+ Select Operator [SEL_508] (rows=143930993 width=119)
Output:["_col0","_col1","_col2"]
- Filter Operator [FIL_235] (rows=143930993 width=455)
+ Filter Operator [FIL_507] (rows=143930993 width=455)
predicate:(ws_bill_customer_sk is not null and ws_sold_date_sk is not null and ws_sold_date_sk BETWEEN DynamicValue(RS_10_date_dim_d_date_sk_min) AND DynamicValue(RS_10_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_10_date_dim_d_date_sk_bloom_filter)))
TableScan [TS_0] (rows=144002668 width=455)
default@web_sales,web_sales,Tbl:COMPLETE,Col:COMPLETE,Output:["ws_sold_date_sk","ws_bill_customer_sk","ws_ext_discount_amt","ws_ext_sales_price","ws_ext_wholesale_cost","ws_ext_list_price"]
diff --git a/ql/src/test/results/clientpositive/vector_decimal_col_scalar_division.q.out b/ql/src/test/results/clientpositive/vector_decimal_col_scalar_division.q.out
new file mode 100644
index 0000000..7ce87e6
--- /dev/null
+++ b/ql/src/test/results/clientpositive/vector_decimal_col_scalar_division.q.out
@@ -0,0 +1,137 @@
+PREHOOK: query: CREATE temporary TABLE `catalog_Sales`(
+ `cs_quantity` int,
+ `cs_wholesale_cost` decimal(7,2),
+ `cs_list_price` decimal(7,2),
+ `cs_sales_price` decimal(7,2),
+ `cs_ext_discount_amt` decimal(7,2),
+ `cs_ext_sales_price` decimal(7,2),
+ `cs_ext_wholesale_cost` decimal(7,2),
+ `cs_ext_list_price` decimal(7,2),
+ `cs_ext_tax` decimal(7,2),
+ `cs_coupon_amt` decimal(7,2),
+ `cs_ext_ship_cost` decimal(7,2),
+ `cs_net_paid` decimal(7,2),
+ `cs_net_paid_inc_tax` decimal(7,2),
+ `cs_net_paid_inc_ship` decimal(7,2),
+ `cs_net_paid_inc_ship_tax` decimal(7,2),
+ `cs_net_profit` decimal(7,2))
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@catalog_Sales
+POSTHOOK: query: CREATE temporary TABLE `catalog_Sales`(
+ `cs_quantity` int,
+ `cs_wholesale_cost` decimal(7,2),
+ `cs_list_price` decimal(7,2),
+ `cs_sales_price` decimal(7,2),
+ `cs_ext_discount_amt` decimal(7,2),
+ `cs_ext_sales_price` decimal(7,2),
+ `cs_ext_wholesale_cost` decimal(7,2),
+ `cs_ext_list_price` decimal(7,2),
+ `cs_ext_tax` decimal(7,2),
+ `cs_coupon_amt` decimal(7,2),
+ `cs_ext_ship_cost` decimal(7,2),
+ `cs_net_paid` decimal(7,2),
+ `cs_net_paid_inc_tax` decimal(7,2),
+ `cs_net_paid_inc_ship` decimal(7,2),
+ `cs_net_paid_inc_ship_tax` decimal(7,2),
+ `cs_net_profit` decimal(7,2))
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@catalog_Sales
+PREHOOK: query: explain vectorization detail select max((((cs_ext_list_price - cs_ext_wholesale_cost) - cs_ext_discount_amt) + cs_ext_sales_price) / 2) from catalog_sales
+PREHOOK: type: QUERY
+PREHOOK: Input: default@catalog_sales
+#### A masked pattern was here ####
+POSTHOOK: query: explain vectorization detail select max((((cs_ext_list_price - cs_ext_wholesale_cost) - cs_ext_discount_amt) + cs_ext_sales_price) / 2) from catalog_sales
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@catalog_sales
+#### A masked pattern was here ####
+PLAN VECTORIZATION:
+ enabled: true
+ enabledConditionsMet: [hive.vectorized.execution.enabled IS true]
+
+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: catalog_sales
+ Statistics: Num rows: 1 Data size: 448 Basic stats: COMPLETE Column stats: NONE
+ TableScan Vectorization:
+ native: true
+ vectorizationSchemaColumns: [0:cs_quantity:int, 1:cs_wholesale_cost:decimal(7,2)/DECIMAL_64, 2:cs_list_price:decimal(7,2)/DECIMAL_64, 3:cs_sales_price:decimal(7,2)/DECIMAL_64, 4:cs_ext_discount_amt:decimal(7,2)/DECIMAL_64, 5:cs_ext_sales_price:decimal(7,2)/DECIMAL_64, 6:cs_ext_wholesale_cost:decimal(7,2)/DECIMAL_64, 7:cs_ext_list_price:decimal(7,2)/DECIMAL_64, 8:cs_ext_tax:decimal(7,2)/DECIMAL_64, 9:cs_coupon_amt:decimal(7,2)/DECIMAL_64, 10:cs_ext_ship_cost:decimal(7,2)/D [...]
+ Select Operator
+ expressions: ((((cs_ext_list_price - cs_ext_wholesale_cost) - cs_ext_discount_amt) + cs_ext_sales_price) / 2) (type: decimal(14,6))
+ outputColumnNames: _col0
+ Select Vectorization:
+ className: VectorSelectOperator
+ native: true
+ projectedOutputColumnNums: [20]
+ selectExpressions: DecimalColDivideDecimalScalar(col 21:decimal(10,2), val 2)(children: ConvertDecimal64ToDecimal(col 19:decimal(10,2)/DECIMAL_64)(children: Decimal64ColAddDecimal64Column(col 18:decimal(9,2)/DECIMAL_64, col 5:decimal(7,2)/DECIMAL_64)(children: Decimal64ColSubtractDecimal64Column(col 17:decimal(8,2)/DECIMAL_64, col 4:decimal(7,2)/DECIMAL_64)(children: Decimal64ColSubtractDecimal64Column(col 7:decimal(7,2)/DECIMAL_64, col 6:decimal(7,2)/DECIMAL_64) -> 17: [...]
+ Statistics: Num rows: 1 Data size: 448 Basic stats: COMPLETE Column stats: NONE
+ Group By Operator
+ aggregations: max(_col0)
+ Group By Vectorization:
+ aggregators: VectorUDAFMaxDecimal(col 20:decimal(14,6)) -> decimal(14,6)
+ className: VectorGroupByOperator
+ groupByMode: HASH
+ native: false
+ vectorProcessingMode: HASH
+ projectedOutputColumnNums: [0]
+ minReductionHashAggr: 0.99
+ mode: hash
+ outputColumnNames: _col0
+ Statistics: Num rows: 1 Data size: 560 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ sort order:
+ Reduce Sink Vectorization:
+ className: VectorReduceSinkOperator
+ native: false
+ nativeConditionsMet: hive.vectorized.execution.reducesink.new.enabled IS true, No PTF TopN IS true, No DISTINCT columns IS true, BinarySortableSerDe for keys IS true, LazyBinarySerDe for values IS true
+ nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false
+ Statistics: Num rows: 1 Data size: 560 Basic stats: COMPLETE Column stats: NONE
+ value expressions: _col0 (type: decimal(14,6))
+ Execution mode: vectorized
+ Map Vectorization:
+ enabled: true
+ enabledConditionsMet: hive.vectorized.use.vector.serde.deserialize IS true
+ inputFormatFeatureSupport: [DECIMAL_64]
+ featureSupportInUse: [DECIMAL_64]
+ inputFileFormats: org.apache.hadoop.mapred.TextInputFormat
+ allNative: false
+ usesVectorUDFAdaptor: false
+ vectorized: true
+ rowBatchContext:
+ dataColumnCount: 16
+ includeColumns: [4, 5, 6, 7]
+ dataColumns: cs_quantity:int, cs_wholesale_cost:decimal(7,2)/DECIMAL_64, cs_list_price:decimal(7,2)/DECIMAL_64, cs_sales_price:decimal(7,2)/DECIMAL_64, cs_ext_discount_amt:decimal(7,2)/DECIMAL_64, cs_ext_sales_price:decimal(7,2)/DECIMAL_64, cs_ext_wholesale_cost:decimal(7,2)/DECIMAL_64, cs_ext_list_price:decimal(7,2)/DECIMAL_64, cs_ext_tax:decimal(7,2)/DECIMAL_64, cs_coupon_amt:decimal(7,2)/DECIMAL_64, cs_ext_ship_cost:decimal(7,2)/DECIMAL_64, cs_net_paid:decimal(7,2)/DECIM [...]
+ partitionColumnCount: 0
+ scratchColumnTypeNames: [decimal(8,2)/DECIMAL_64, decimal(9,2)/DECIMAL_64, decimal(10,2)/DECIMAL_64, decimal(14,6), decimal(10,2)]
+ Reduce Vectorization:
+ enabled: false
+ enableConditionsMet: hive.vectorized.execution.reduce.enabled IS true
+ enableConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false
+ Reduce Operator Tree:
+ Group By Operator
+ aggregations: max(VALUE._col0)
+ mode: mergepartial
+ outputColumnNames: _col0
+ Statistics: Num rows: 1 Data size: 560 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 1 Data size: 560 Basic stats: COMPLETE Column stats: NONE
+ 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
+