diff --git a/ql/src/gen/vectorization/ExpressionTemplates/ColumnDivideScalarDecimal.txt b/ql/src/gen/vectorization/ExpressionTemplates/ColumnDivideScalarDecimal.txt index 0bd7c004215..1a1918dd92f 100644 --- a/ql/src/gen/vectorization/ExpressionTemplates/ColumnDivideScalarDecimal.txt +++ b/ql/src/gen/vectorization/ExpressionTemplates/ColumnDivideScalarDecimal.txt @@ -72,7 +72,7 @@ public class 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 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 0a16e08d61e..94a07d30b3a 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 HiveIntervalDayTime getIntervalDayTimeValue() { 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 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 52e8dcb0904..1cf44b358a6 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 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 @@ private static VectorExpression fixDecimalDataTypePhysicalVariations(final Vecto } } } 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 00000000000..6ac7bd3bd53 --- /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 a7e317cc3c9..c9ac6f16414 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 293b2816a13..c9cb57b4ce3 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 47515eda2f8..8f4760ce385 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 00000000000..7ce87e67a36 --- /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)/DECIMAL_64, 11:cs_net_paid:decimal(7,2)/DECIMAL_64, 12:cs_net_paid_inc_tax:decimal(7,2)/DECIMAL_64, 13:cs_net_paid_inc_ship:decimal(7,2)/DECIMAL_64, 14:cs_net_paid_inc_ship_tax:decimal(7,2)/DECIMAL_64, 15:cs_net_profit:decimal(7,2)/DECIMAL_64, 16:ROW__ID:struct] + 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:decimal(8,2)/DECIMAL_64) -> 18:decimal(9,2)/DECIMAL_64) -> 19:decimal(10,2)/DECIMAL_64) -> 21:decimal(10,2)) -> 20:decimal(14,6) + 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)/DECIMAL_64, cs_net_paid_inc_tax:decimal(7,2)/DECIMAL_64, cs_net_paid_inc_ship:decimal(7,2)/DECIMAL_64, cs_net_paid_inc_ship_tax:decimal(7,2)/DECIMAL_64, cs_net_profit:decimal(7,2)/DECIMAL_64 + 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 +