commit e31cfd7c88d4300829940824f31706b2e4a9edff Author: Pengcheng Xiong Date: Sat Jun 3 18:27:32 2017 -0700 pa diff --git a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HiveFilterSetOpTransposeRule.java b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HiveFilterSetOpTransposeRule.java index 3ee29e0482..8487a91509 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HiveFilterSetOpTransposeRule.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HiveFilterSetOpTransposeRule.java @@ -17,14 +17,31 @@ */ package org.apache.hadoop.hive.ql.optimizer.calcite.rules; +import java.util.ArrayList; +import java.util.List; + +import org.apache.calcite.plan.RelOptPredicateList; import org.apache.calcite.plan.RelOptRuleCall; +import org.apache.calcite.plan.RelOptUtil; +import org.apache.calcite.rel.RelNode; import org.apache.calcite.rel.core.Filter; +import org.apache.calcite.rel.core.SetOp; +import org.apache.calcite.rel.core.Union; +import org.apache.calcite.rel.metadata.RelMetadataQuery; import org.apache.calcite.rel.rules.FilterSetOpTransposeRule; +import org.apache.calcite.rel.type.RelDataTypeField; +import org.apache.calcite.rex.RexBuilder; +import org.apache.calcite.rex.RexExecutor; import org.apache.calcite.rex.RexNode; +import org.apache.calcite.rex.RexSimplify; +import org.apache.calcite.rex.RexUtil; +import org.apache.calcite.tools.RelBuilder; import org.apache.calcite.tools.RelBuilderFactory; +import org.apache.calcite.util.Util; import org.apache.hadoop.hive.ql.optimizer.calcite.HiveCalciteUtil; import org.apache.hadoop.hive.ql.optimizer.calcite.HiveRelFactories; +import com.google.common.collect.ImmutableList; public class HiveFilterSetOpTransposeRule extends FilterSetOpTransposeRule { @@ -48,4 +65,63 @@ public boolean matches(RelOptRuleCall call) { return super.matches(call); } + + + //~ Methods ---------------------------------------------------------------- + + // implement RelOptRule + public void onMatch(RelOptRuleCall call) { + Filter filterRel = call.rel(0); + SetOp setOp = call.rel(1); + + RexNode condition = filterRel.getCondition(); + + // create filters on top of each setop child, modifying the filter + // condition to reference each setop child + RexBuilder rexBuilder = filterRel.getCluster().getRexBuilder(); + final RelBuilder relBuilder = call.builder(); + List origFields = setOp.getRowType().getFieldList(); + int[] adjustments = new int[origFields.size()]; + final List newSetOpInputs = new ArrayList<>(); + RelNode lastInput = null; + for (int index = 0; index < setOp.getInputs().size(); index++) { + RelNode input = setOp.getInput(index); + RexNode newCondition = condition.accept(new RelOptUtil.RexInputConverter(rexBuilder, + origFields, input.getRowType().getFieldList(), adjustments)); + if (setOp instanceof Union && setOp.all) { + final RelMetadataQuery mq = RelMetadataQuery.instance(); + final RelOptPredicateList predicates = mq.getPulledUpPredicates(input); + if (predicates != null) { + ImmutableList.Builder listBuilder = ImmutableList.builder(); + listBuilder.addAll(predicates.pulledUpPredicates); + listBuilder.add(newCondition); + RexExecutor executor = + Util.first(filterRel.getCluster().getPlanner().getExecutor(), RexUtil.EXECUTOR); + final RexSimplify simplify = + new RexSimplify(rexBuilder, true, executor); + final RexNode x = simplify.simplifyAnds(listBuilder.build()); + if (x.isAlwaysFalse()) { + // this is the last branch, and it is always false + if (index == setOp.getInputs().size() - 1) { + lastInput = relBuilder.push(input).filter(newCondition).build(); + } + // remove this branch + continue; + } + } + } + newSetOpInputs.add(relBuilder.push(input).filter(newCondition).build()); + } + if (newSetOpInputs.size() > 1) { + // create a new setop whose children are the filters created above + SetOp newSetOp = setOp.copy(setOp.getTraitSet(), newSetOpInputs); + call.transformTo(newSetOp); + } else if (newSetOpInputs.size() == 1) { + call.transformTo(newSetOpInputs.get(0)); + } else { + // we have to keep at least a branch before we support empty values() in + // hive + call.transformTo(lastInput); + } + } } diff --git a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HiveUnionMergeRule.java b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HiveUnionMergeRule.java new file mode 100644 index 0000000000..3a2002f7fb --- /dev/null +++ b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HiveUnionMergeRule.java @@ -0,0 +1,80 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.hadoop.hive.ql.optimizer.calcite.rules; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.calcite.plan.RelOptRule; +import org.apache.calcite.plan.RelOptRuleCall; +import org.apache.calcite.rel.RelNode; +import org.apache.hadoop.hive.ql.optimizer.calcite.reloperators.HiveIntersect; +import org.apache.hadoop.hive.ql.optimizer.calcite.reloperators.HiveUnion; +import org.apache.calcite.util.Util; + +/** + * Planner rule that merges multiple union into one + * Before the rule, it is + * union all-branch1 + * |-----union all-branch2 + * |-----branch3 + * After the rule, it becomes + * union all-branch1 + * |-----branch2 + * |-----branch3 + * {@link org.apache.hadoop.hive.ql.optimizer.calcite.reloperators.HiveUnion} + */ +public class HiveUnionMergeRule extends RelOptRule { + + public static final HiveUnionMergeRule INSTANCE = new HiveUnionMergeRule(); + + // ~ Constructors ----------------------------------------------------------- + + private HiveUnionMergeRule() { + super( + operand(HiveUnion.class, operand(RelNode.class, any()), operand(RelNode.class, any()))); + } + + // ~ Methods ---------------------------------------------------------------- + + public void onMatch(RelOptRuleCall call) { + final HiveUnion topUnion = call.rel(0); + + final HiveUnion bottomUnion; + if (call.rel(2) instanceof HiveUnion) { + bottomUnion = call.rel(2); + } else if (call.rel(1) instanceof HiveUnion) { + bottomUnion = call.rel(1); + } else { + return; + } + + List inputs = new ArrayList<>(); + if (call.rel(2) instanceof HiveUnion) { + inputs.add(topUnion.getInput(0)); + inputs.addAll(bottomUnion.getInputs()); + } else { + inputs.addAll(bottomUnion.getInputs()); + inputs.addAll(Util.skip(topUnion.getInputs())); + } + + HiveUnion newUnion = (HiveUnion) topUnion.copy( + topUnion.getTraitSet(), inputs, true); + call.transformTo(newUnion); + } +} diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/CalcitePlanner.java b/ql/src/java/org/apache/hadoop/hive/ql/parse/CalcitePlanner.java index 348331e052..931e074f3e 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/parse/CalcitePlanner.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/CalcitePlanner.java @@ -92,7 +92,6 @@ import org.apache.calcite.rel.rules.SemiJoinFilterTransposeRule; import org.apache.calcite.rel.rules.SemiJoinJoinTransposeRule; import org.apache.calcite.rel.rules.SemiJoinProjectTransposeRule; -import org.apache.calcite.rel.rules.UnionMergeRule; import org.apache.calcite.rel.type.RelDataType; import org.apache.calcite.rel.type.RelDataTypeFactory; import org.apache.calcite.rel.type.RelDataTypeField; @@ -209,6 +208,7 @@ import org.apache.hadoop.hive.ql.optimizer.calcite.rules.HiveSortRemoveRule; import org.apache.hadoop.hive.ql.optimizer.calcite.rules.HiveSortUnionReduceRule; import org.apache.hadoop.hive.ql.optimizer.calcite.rules.HiveSubQueryRemoveRule; +import org.apache.hadoop.hive.ql.optimizer.calcite.rules.HiveUnionMergeRule; import org.apache.hadoop.hive.ql.optimizer.calcite.rules.HiveUnionPullUpConstantsRule; import org.apache.hadoop.hive.ql.optimizer.calcite.rules.HiveWindowingFixRule; import org.apache.hadoop.hive.ql.optimizer.calcite.rules.views.HiveMaterializedViewFilterScanRule; @@ -260,6 +260,7 @@ import com.google.common.collect.ImmutableMap; import com.google.common.collect.Lists; import com.google.common.collect.Multimap; + import org.apache.calcite.config.CalciteConnectionConfig; public class CalcitePlanner extends SemanticAnalyzer { @@ -1437,7 +1438,7 @@ public RelNode apply(RelOptCluster cluster, RelOptSchema relOptSchema, SchemaPlu // 4. Run other optimizations that do not need stats perfLogger.PerfLogBegin(this.getClass().getName(), PerfLogger.OPTIMIZER); calciteOptimizedPlan = hepPlan(calciteOptimizedPlan, false, mdProvider.getMetadataProvider(), null, - HepMatchOrder.BOTTOM_UP, ProjectRemoveRule.INSTANCE, UnionMergeRule.INSTANCE, + HepMatchOrder.BOTTOM_UP, ProjectRemoveRule.INSTANCE, HiveUnionMergeRule.INSTANCE, HiveProjectMergeRule.INSTANCE_NO_FORCE, HiveAggregateProjectMergeRule.INSTANCE, HiveJoinCommuteRule.INSTANCE); perfLogger.PerfLogEnd(this.getClass().getName(), PerfLogger.OPTIMIZER, "Calcite: Optimizations without stats"); @@ -1618,9 +1619,10 @@ private RelNode applyPreJoinOrderingTransforms(RelNode basePlan, RelMetadataProv //0. SetOp rewrite perfLogger.PerfLogBegin(this.getClass().getName(), PerfLogger.OPTIMIZER); basePlan = hepPlan(basePlan, true, mdProvider, null, HepMatchOrder.BOTTOM_UP, - HiveProjectOverIntersectRemoveRule.INSTANCE, HiveIntersectMergeRule.INSTANCE); + HiveProjectOverIntersectRemoveRule.INSTANCE, HiveIntersectMergeRule.INSTANCE, + HiveUnionMergeRule.INSTANCE); perfLogger.PerfLogEnd(this.getClass().getName(), PerfLogger.OPTIMIZER, - "Calcite: HiveProjectOverIntersectRemoveRule and HiveIntersectMerge rules"); + "Calcite: HiveProjectOverIntersectRemoveRule, HiveIntersectMerge and HiveUnionMergeRule rules"); perfLogger.PerfLogBegin(this.getClass().getName(), PerfLogger.OPTIMIZER); basePlan = hepPlan(basePlan, false, mdProvider, executorProvider, HepMatchOrder.BOTTOM_UP, diff --git a/ql/src/test/queries/clientpositive/filter_union.q b/ql/src/test/queries/clientpositive/filter_union.q new file mode 100644 index 0000000000..17a68e72ae --- /dev/null +++ b/ql/src/test/queries/clientpositive/filter_union.q @@ -0,0 +1,55 @@ +set hive.mapred.mode=nonstrict; + +explain +select key, c, m from +( +select key, c, 1 as m from (select key, count(key) as c from src group by key)s1 +union all +select key, c, 2 as m from (select key, count(key) as c from src group by key)s2 +union all +select key, c, 3 as m from (select key, count(key) as c from src group by key)s3 +union all +select key, c, 4 as m from (select key, count(key) as c from src group by key)s4 +)sub +where m >2; + + +explain +select key, c, m from +( +select key, c, 1 as m from (select key, count(key) as c from src group by key)s1 +union all +select key, c, 2 as m from (select key, count(key) as c from src group by key)s2 +union all +select key, c, 3 as m from (select key, count(key) as c from src group by key)s3 +union all +select key, c, 4 as m from (select key, count(key) as c from src group by key)s4 +)sub +where m = 1; + +explain +select key, c, m from +( +select key, c, 1 as m from (select key, count(key) as c from src group by key)s1 +union all +select key, c, 2 as m from (select key, count(key) as c from src group by key)s2 +union all +select key, c, 3 as m from (select key, count(key) as c from src group by key)s3 +union all +select key, c, 4 as m from (select key, count(key) as c from src group by key)s4 +)sub +where m = 4; + + +explain +select key, c, m from +( +select key, c, 1 as m from (select key, count(key) as c from src group by key)s1 +union all +select key, c, 2 as m from (select key, count(key) as c from src group by key)s2 +union all +select key, c, 3 as m from (select key, count(key) as c from src group by key)s3 +union all +select key, c, 4 as m from (select key, count(key) as c from src group by key)s4 +)sub +where m = 5; diff --git a/ql/src/test/queries/clientpositive/perf/query11.q b/ql/src/test/queries/clientpositive/perf/query11.q new file mode 100644 index 0000000000..6017c89790 --- /dev/null +++ b/ql/src/test/queries/clientpositive/perf/query11.q @@ -0,0 +1,77 @@ +set hive.mapred.mode=nonstrict; +-- start query 1 in stream 0 using template query11.tpl and seed 1819994127 +explain +with year_total as ( + select c_customer_id customer_id + ,c_first_name customer_first_name + ,c_last_name customer_last_name + ,c_preferred_cust_flag + ,c_birth_country customer_birth_country + ,c_login customer_login + ,c_email_address customer_email_address + ,d_year dyear + ,sum(ss_ext_list_price-ss_ext_discount_amt) year_total + ,'s' sale_type + from customer + ,store_sales + ,date_dim + where c_customer_sk = ss_customer_sk + and ss_sold_date_sk = d_date_sk + group by c_customer_id + ,c_first_name + ,c_last_name + ,d_year + ,c_preferred_cust_flag + ,c_birth_country + ,c_login + ,c_email_address + ,d_year + union all + select c_customer_id customer_id + ,c_first_name customer_first_name + ,c_last_name customer_last_name + ,c_preferred_cust_flag + ,c_birth_country customer_birth_country + ,c_login customer_login + ,c_email_address customer_email_address + ,d_year dyear + ,sum(ws_ext_list_price-ws_ext_discount_amt) year_total + ,'w' sale_type + from customer + ,web_sales + ,date_dim + where c_customer_sk = ws_bill_customer_sk + and ws_sold_date_sk = d_date_sk + group by c_customer_id + ,c_first_name + ,c_last_name + ,c_preferred_cust_flag + ,c_birth_country + ,c_login + ,c_email_address + ,d_year + ) + select t_s_secyear.c_preferred_cust_flag + from year_total t_s_firstyear + ,year_total t_s_secyear + ,year_total t_w_firstyear + ,year_total t_w_secyear + where t_s_secyear.customer_id = t_s_firstyear.customer_id + and t_s_firstyear.customer_id = t_w_secyear.customer_id + and t_s_firstyear.customer_id = t_w_firstyear.customer_id + and t_s_firstyear.sale_type = 's' + and t_w_firstyear.sale_type = 'w' + and t_s_secyear.sale_type = 's' + and t_w_secyear.sale_type = 'w' + and t_s_firstyear.dyear = 2001 + and t_s_secyear.dyear = 2001+1 + and t_w_firstyear.dyear = 2001 + and t_w_secyear.dyear = 2001+1 + and t_s_firstyear.year_total > 0 + and t_w_firstyear.year_total > 0 + and case when t_w_firstyear.year_total > 0 then t_w_secyear.year_total / t_w_firstyear.year_total else null end + > case when t_s_firstyear.year_total > 0 then t_s_secyear.year_total / t_s_firstyear.year_total else null end + order by t_s_secyear.c_preferred_cust_flag +limit 100; + +-- end query 1 in stream 0 using template query11.tpl diff --git a/ql/src/test/results/clientpositive/filter_union.q.out b/ql/src/test/results/clientpositive/filter_union.q.out new file mode 100644 index 0000000000..038e4626b5 --- /dev/null +++ b/ql/src/test/results/clientpositive/filter_union.q.out @@ -0,0 +1,476 @@ +PREHOOK: query: explain +select key, c, m from +( +select key, c, 1 as m from (select key, count(key) as c from src group by key)s1 +union all +select key, c, 2 as m from (select key, count(key) as c from src group by key)s2 +union all +select key, c, 3 as m from (select key, count(key) as c from src group by key)s3 +union all +select key, c, 4 as m from (select key, count(key) as c from src group by key)s4 +)sub +where m >2 +PREHOOK: type: QUERY +POSTHOOK: query: explain +select key, c, m from +( +select key, c, 1 as m from (select key, count(key) as c from src group by key)s1 +union all +select key, c, 2 as m from (select key, count(key) as c from src group by key)s2 +union all +select key, c, 3 as m from (select key, count(key) as c from src group by key)s3 +union all +select key, c, 4 as m from (select key, count(key) as c from src group by key)s4 +)sub +where m >2 +POSTHOOK: type: QUERY +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-2 depends on stages: Stage-1, Stage-3, Stage-4, Stage-5 + Stage-3 is a root stage + Stage-4 is a root stage + Stage-5 is a root stage + Stage-0 depends on stages: Stage-2 + +STAGE PLANS: + Stage: Stage-1 + Map Reduce + Map Operator Tree: + TableScan + alias: src + Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE + Filter Operator + predicate: false (type: boolean) + Statistics: Num rows: 1 Data size: 10 Basic stats: COMPLETE Column stats: NONE + Group By Operator + aggregations: count(key) + keys: key (type: string) + mode: hash + outputColumnNames: _col0, _col1 + Statistics: Num rows: 1 Data size: 10 Basic stats: COMPLETE Column stats: NONE + Reduce Output Operator + key expressions: _col0 (type: string) + sort order: + + Map-reduce partition columns: _col0 (type: string) + Statistics: Num rows: 1 Data size: 10 Basic stats: COMPLETE Column stats: NONE + value expressions: _col1 (type: bigint) + Reduce Operator Tree: + Group By Operator + aggregations: count(VALUE._col0) + keys: KEY._col0 (type: string) + mode: mergepartial + outputColumnNames: _col0, _col1 + Statistics: Num rows: 1 Data size: 10 Basic stats: COMPLETE Column stats: NONE + Select Operator + expressions: _col0 (type: string), _col1 (type: bigint), 1 (type: int) + outputColumnNames: _col0, _col1, _col2 + Statistics: Num rows: 1 Data size: 10 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + table: + input format: org.apache.hadoop.mapred.SequenceFileInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat + serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe + + Stage: Stage-2 + Map Reduce + Map Operator Tree: + TableScan + Union + Statistics: Num rows: 502 Data size: 5332 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + Statistics: Num rows: 502 Data size: 5332 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 + TableScan + Union + Statistics: Num rows: 502 Data size: 5332 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + Statistics: Num rows: 502 Data size: 5332 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 + TableScan + Union + Statistics: Num rows: 502 Data size: 5332 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + Statistics: Num rows: 502 Data size: 5332 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 + TableScan + Union + Statistics: Num rows: 502 Data size: 5332 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + Statistics: Num rows: 502 Data size: 5332 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-3 + Map Reduce + Map Operator Tree: + TableScan + alias: src + Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE + Filter Operator + predicate: false (type: boolean) + Statistics: Num rows: 1 Data size: 10 Basic stats: COMPLETE Column stats: NONE + Group By Operator + aggregations: count(key) + keys: key (type: string) + mode: hash + outputColumnNames: _col0, _col1 + Statistics: Num rows: 1 Data size: 10 Basic stats: COMPLETE Column stats: NONE + Reduce Output Operator + key expressions: _col0 (type: string) + sort order: + + Map-reduce partition columns: _col0 (type: string) + Statistics: Num rows: 1 Data size: 10 Basic stats: COMPLETE Column stats: NONE + value expressions: _col1 (type: bigint) + Reduce Operator Tree: + Group By Operator + aggregations: count(VALUE._col0) + keys: KEY._col0 (type: string) + mode: mergepartial + outputColumnNames: _col0, _col1 + Statistics: Num rows: 1 Data size: 10 Basic stats: COMPLETE Column stats: NONE + Select Operator + expressions: _col0 (type: string), _col1 (type: bigint), 2 (type: int) + outputColumnNames: _col0, _col1, _col2 + Statistics: Num rows: 1 Data size: 10 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + table: + input format: org.apache.hadoop.mapred.SequenceFileInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat + serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe + + Stage: Stage-4 + Map Reduce + Map Operator Tree: + TableScan + alias: src + Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE + Select Operator + expressions: key (type: string) + outputColumnNames: key + Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE + Group By Operator + aggregations: count(key) + keys: key (type: string) + mode: hash + outputColumnNames: _col0, _col1 + Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE + Reduce Output Operator + key expressions: _col0 (type: string) + sort order: + + Map-reduce partition columns: _col0 (type: string) + Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE + value expressions: _col1 (type: bigint) + Reduce Operator Tree: + Group By Operator + aggregations: count(VALUE._col0) + keys: KEY._col0 (type: string) + mode: mergepartial + outputColumnNames: _col0, _col1 + Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE + Select Operator + expressions: _col0 (type: string), _col1 (type: bigint), 3 (type: int) + outputColumnNames: _col0, _col1, _col2 + Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + table: + input format: org.apache.hadoop.mapred.SequenceFileInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat + serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe + + Stage: Stage-5 + Map Reduce + Map Operator Tree: + TableScan + alias: src + Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE + Select Operator + expressions: key (type: string) + outputColumnNames: key + Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE + Group By Operator + aggregations: count(key) + keys: key (type: string) + mode: hash + outputColumnNames: _col0, _col1 + Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE + Reduce Output Operator + key expressions: _col0 (type: string) + sort order: + + Map-reduce partition columns: _col0 (type: string) + Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE + value expressions: _col1 (type: bigint) + Reduce Operator Tree: + Group By Operator + aggregations: count(VALUE._col0) + keys: KEY._col0 (type: string) + mode: mergepartial + outputColumnNames: _col0, _col1 + Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE + Select Operator + expressions: _col0 (type: string), _col1 (type: bigint), 4 (type: int) + outputColumnNames: _col0, _col1, _col2 + Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + table: + input format: org.apache.hadoop.mapred.SequenceFileInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat + serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe + + Stage: Stage-0 + Fetch Operator + limit: -1 + Processor Tree: + ListSink + +PREHOOK: query: explain +select key, c, m from +( +select key, c, 1 as m from (select key, count(key) as c from src group by key)s1 +union all +select key, c, 2 as m from (select key, count(key) as c from src group by key)s2 +union all +select key, c, 3 as m from (select key, count(key) as c from src group by key)s3 +union all +select key, c, 4 as m from (select key, count(key) as c from src group by key)s4 +)sub +where m = 1 +PREHOOK: type: QUERY +POSTHOOK: query: explain +select key, c, m from +( +select key, c, 1 as m from (select key, count(key) as c from src group by key)s1 +union all +select key, c, 2 as m from (select key, count(key) as c from src group by key)s2 +union all +select key, c, 3 as m from (select key, count(key) as c from src group by key)s3 +union all +select key, c, 4 as m from (select key, count(key) as c from src group by key)s4 +)sub +where m = 1 +POSTHOOK: type: QUERY +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: src + Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE + Select Operator + expressions: key (type: string) + outputColumnNames: key + Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE + Group By Operator + aggregations: count(key) + keys: key (type: string) + mode: hash + outputColumnNames: _col0, _col1 + Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE + Reduce Output Operator + key expressions: _col0 (type: string) + sort order: + + Map-reduce partition columns: _col0 (type: string) + Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE + value expressions: _col1 (type: bigint) + Reduce Operator Tree: + Group By Operator + aggregations: count(VALUE._col0) + keys: KEY._col0 (type: string) + mode: mergepartial + outputColumnNames: _col0, _col1 + Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE + Select Operator + expressions: _col0 (type: string), _col1 (type: bigint), 1 (type: int) + outputColumnNames: _col0, _col1, _col2 + Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + Statistics: Num rows: 250 Data size: 2656 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 + +PREHOOK: query: explain +select key, c, m from +( +select key, c, 1 as m from (select key, count(key) as c from src group by key)s1 +union all +select key, c, 2 as m from (select key, count(key) as c from src group by key)s2 +union all +select key, c, 3 as m from (select key, count(key) as c from src group by key)s3 +union all +select key, c, 4 as m from (select key, count(key) as c from src group by key)s4 +)sub +where m = 4 +PREHOOK: type: QUERY +POSTHOOK: query: explain +select key, c, m from +( +select key, c, 1 as m from (select key, count(key) as c from src group by key)s1 +union all +select key, c, 2 as m from (select key, count(key) as c from src group by key)s2 +union all +select key, c, 3 as m from (select key, count(key) as c from src group by key)s3 +union all +select key, c, 4 as m from (select key, count(key) as c from src group by key)s4 +)sub +where m = 4 +POSTHOOK: type: QUERY +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: src + Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE + Select Operator + expressions: key (type: string) + outputColumnNames: key + Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE + Group By Operator + aggregations: count(key) + keys: key (type: string) + mode: hash + outputColumnNames: _col0, _col1 + Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE + Reduce Output Operator + key expressions: _col0 (type: string) + sort order: + + Map-reduce partition columns: _col0 (type: string) + Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE + value expressions: _col1 (type: bigint) + Reduce Operator Tree: + Group By Operator + aggregations: count(VALUE._col0) + keys: KEY._col0 (type: string) + mode: mergepartial + outputColumnNames: _col0, _col1 + Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE + Select Operator + expressions: _col0 (type: string), _col1 (type: bigint), 4 (type: int) + outputColumnNames: _col0, _col1, _col2 + Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + Statistics: Num rows: 250 Data size: 2656 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 + +PREHOOK: query: explain +select key, c, m from +( +select key, c, 1 as m from (select key, count(key) as c from src group by key)s1 +union all +select key, c, 2 as m from (select key, count(key) as c from src group by key)s2 +union all +select key, c, 3 as m from (select key, count(key) as c from src group by key)s3 +union all +select key, c, 4 as m from (select key, count(key) as c from src group by key)s4 +)sub +where m = 5 +PREHOOK: type: QUERY +POSTHOOK: query: explain +select key, c, m from +( +select key, c, 1 as m from (select key, count(key) as c from src group by key)s1 +union all +select key, c, 2 as m from (select key, count(key) as c from src group by key)s2 +union all +select key, c, 3 as m from (select key, count(key) as c from src group by key)s3 +union all +select key, c, 4 as m from (select key, count(key) as c from src group by key)s4 +)sub +where m = 5 +POSTHOOK: type: QUERY +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: src + Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE + Filter Operator + predicate: false (type: boolean) + Statistics: Num rows: 1 Data size: 10 Basic stats: COMPLETE Column stats: NONE + Group By Operator + aggregations: count(key) + keys: key (type: string) + mode: hash + outputColumnNames: _col0, _col1 + Statistics: Num rows: 1 Data size: 10 Basic stats: COMPLETE Column stats: NONE + Reduce Output Operator + key expressions: _col0 (type: string) + sort order: + + Map-reduce partition columns: _col0 (type: string) + Statistics: Num rows: 1 Data size: 10 Basic stats: COMPLETE Column stats: NONE + value expressions: _col1 (type: bigint) + Reduce Operator Tree: + Group By Operator + aggregations: count(VALUE._col0) + keys: KEY._col0 (type: string) + mode: mergepartial + outputColumnNames: _col0, _col1 + Statistics: Num rows: 1 Data size: 10 Basic stats: COMPLETE Column stats: NONE + Select Operator + expressions: _col0 (type: string), _col1 (type: bigint), 4 (type: int) + outputColumnNames: _col0, _col1, _col2 + Statistics: Num rows: 1 Data size: 10 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + Statistics: Num rows: 1 Data size: 10 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 + diff --git a/ql/src/test/results/clientpositive/perf/query11.q.out b/ql/src/test/results/clientpositive/perf/query11.q.out new file mode 100644 index 0000000000..cce6350f2c --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/query11.q.out @@ -0,0 +1,375 @@ +PREHOOK: query: explain +with year_total as ( + select c_customer_id customer_id + ,c_first_name customer_first_name + ,c_last_name customer_last_name + ,c_preferred_cust_flag + ,c_birth_country customer_birth_country + ,c_login customer_login + ,c_email_address customer_email_address + ,d_year dyear + ,sum(ss_ext_list_price-ss_ext_discount_amt) year_total + ,'s' sale_type + from customer + ,store_sales + ,date_dim + where c_customer_sk = ss_customer_sk + and ss_sold_date_sk = d_date_sk + group by c_customer_id + ,c_first_name + ,c_last_name + ,d_year + ,c_preferred_cust_flag + ,c_birth_country + ,c_login + ,c_email_address + ,d_year + union all + select c_customer_id customer_id + ,c_first_name customer_first_name + ,c_last_name customer_last_name + ,c_preferred_cust_flag + ,c_birth_country customer_birth_country + ,c_login customer_login + ,c_email_address customer_email_address + ,d_year dyear + ,sum(ws_ext_list_price-ws_ext_discount_amt) year_total + ,'w' sale_type + from customer + ,web_sales + ,date_dim + where c_customer_sk = ws_bill_customer_sk + and ws_sold_date_sk = d_date_sk + group by c_customer_id + ,c_first_name + ,c_last_name + ,c_preferred_cust_flag + ,c_birth_country + ,c_login + ,c_email_address + ,d_year + ) + select t_s_secyear.c_preferred_cust_flag + from year_total t_s_firstyear + ,year_total t_s_secyear + ,year_total t_w_firstyear + ,year_total t_w_secyear + where t_s_secyear.customer_id = t_s_firstyear.customer_id + and t_s_firstyear.customer_id = t_w_secyear.customer_id + and t_s_firstyear.customer_id = t_w_firstyear.customer_id + and t_s_firstyear.sale_type = 's' + and t_w_firstyear.sale_type = 'w' + and t_s_secyear.sale_type = 's' + and t_w_secyear.sale_type = 'w' + and t_s_firstyear.dyear = 2001 + and t_s_secyear.dyear = 2001+1 + and t_w_firstyear.dyear = 2001 + and t_w_secyear.dyear = 2001+1 + and t_s_firstyear.year_total > 0 + and t_w_firstyear.year_total > 0 + and case when t_w_firstyear.year_total > 0 then t_w_secyear.year_total / t_w_firstyear.year_total else null end + > case when t_s_firstyear.year_total > 0 then t_s_secyear.year_total / t_s_firstyear.year_total else null end + order by t_s_secyear.c_preferred_cust_flag +limit 100 +PREHOOK: type: QUERY +POSTHOOK: query: explain +with year_total as ( + select c_customer_id customer_id + ,c_first_name customer_first_name + ,c_last_name customer_last_name + ,c_preferred_cust_flag + ,c_birth_country customer_birth_country + ,c_login customer_login + ,c_email_address customer_email_address + ,d_year dyear + ,sum(ss_ext_list_price-ss_ext_discount_amt) year_total + ,'s' sale_type + from customer + ,store_sales + ,date_dim + where c_customer_sk = ss_customer_sk + and ss_sold_date_sk = d_date_sk + group by c_customer_id + ,c_first_name + ,c_last_name + ,d_year + ,c_preferred_cust_flag + ,c_birth_country + ,c_login + ,c_email_address + ,d_year + union all + select c_customer_id customer_id + ,c_first_name customer_first_name + ,c_last_name customer_last_name + ,c_preferred_cust_flag + ,c_birth_country customer_birth_country + ,c_login customer_login + ,c_email_address customer_email_address + ,d_year dyear + ,sum(ws_ext_list_price-ws_ext_discount_amt) year_total + ,'w' sale_type + from customer + ,web_sales + ,date_dim + where c_customer_sk = ws_bill_customer_sk + and ws_sold_date_sk = d_date_sk + group by c_customer_id + ,c_first_name + ,c_last_name + ,c_preferred_cust_flag + ,c_birth_country + ,c_login + ,c_email_address + ,d_year + ) + select t_s_secyear.c_preferred_cust_flag + from year_total t_s_firstyear + ,year_total t_s_secyear + ,year_total t_w_firstyear + ,year_total t_w_secyear + where t_s_secyear.customer_id = t_s_firstyear.customer_id + and t_s_firstyear.customer_id = t_w_secyear.customer_id + and t_s_firstyear.customer_id = t_w_firstyear.customer_id + and t_s_firstyear.sale_type = 's' + and t_w_firstyear.sale_type = 'w' + and t_s_secyear.sale_type = 's' + and t_w_secyear.sale_type = 'w' + and t_s_firstyear.dyear = 2001 + and t_s_secyear.dyear = 2001+1 + and t_w_firstyear.dyear = 2001 + and t_w_secyear.dyear = 2001+1 + and t_s_firstyear.year_total > 0 + and t_w_firstyear.year_total > 0 + and case when t_w_firstyear.year_total > 0 then t_w_secyear.year_total / t_w_firstyear.year_total else null end + > case when t_s_firstyear.year_total > 0 then t_s_secyear.year_total / t_s_firstyear.year_total else null end + order by t_s_secyear.c_preferred_cust_flag +limit 100 +POSTHOOK: type: QUERY +Plan optimized by CBO. + +Vertex dependency in root stage +Reducer 11 <- Map 10 (SIMPLE_EDGE), Map 18 (SIMPLE_EDGE) +Reducer 12 <- Map 17 (SIMPLE_EDGE), Reducer 11 (SIMPLE_EDGE) +Reducer 13 <- Reducer 12 (SIMPLE_EDGE) +Reducer 14 <- Map 10 (SIMPLE_EDGE), Map 18 (SIMPLE_EDGE) +Reducer 15 <- Map 17 (SIMPLE_EDGE), Reducer 14 (SIMPLE_EDGE) +Reducer 16 <- Reducer 15 (SIMPLE_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 10 (SIMPLE_EDGE) +Reducer 3 <- Map 17 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) +Reducer 4 <- Reducer 3 (SIMPLE_EDGE) +Reducer 5 <- Reducer 13 (SIMPLE_EDGE), Reducer 16 (SIMPLE_EDGE), Reducer 4 (SIMPLE_EDGE), Reducer 9 (SIMPLE_EDGE) +Reducer 6 <- Reducer 5 (SIMPLE_EDGE) +Reducer 7 <- Map 1 (SIMPLE_EDGE), Map 10 (SIMPLE_EDGE) +Reducer 8 <- Map 17 (SIMPLE_EDGE), Reducer 7 (SIMPLE_EDGE) +Reducer 9 <- Reducer 8 (SIMPLE_EDGE) + +Stage-0 + Fetch Operator + limit:100 + Stage-1 + Reducer 6 + File Output Operator [FS_96] + Limit [LIM_95] (rows=100 width=88) + Number of rows:100 + Select Operator [SEL_94] (rows=574987679 width=88) + Output:["_col0"] + <-Reducer 5 [SIMPLE_EDGE] + SHUFFLE [RS_93] + Select Operator [SEL_92] (rows=574987679 width=88) + Output:["_col0"] + Filter Operator [FIL_91] (rows=574987679 width=88) + predicate:CASE WHEN ((_col14 > 0)) THEN (CASE WHEN ((_col22 > 0)) THEN (((_col7 / _col22) > (_col30 / _col14))) ELSE ((null > (_col30 / _col14))) END) ELSE (CASE WHEN ((_col22 > 0)) THEN (((_col7 / _col22) > null)) ELSE (null) END) END + Merge Join Operator [MERGEJOIN_175] (rows=1149975359 width=88) + Conds:RS_86._col0=RS_87._col0(Inner),RS_87._col0=RS_88._col0(Inner),RS_87._col0=RS_89._col0(Inner),Output:["_col7","_col14","_col22","_col26","_col30"] + <-Reducer 13 [SIMPLE_EDGE] + SHUFFLE [RS_87] + PartitionCols:_col0 + Select Operator [SEL_42] (rows=116159124 width=88) + Output:["_col0","_col6"] + Filter Operator [FIL_41] (rows=116159124 width=88) + predicate:(_col7 > 0) + Select Operator [SEL_166] (rows=348477374 width=88) + Output:["_col0","_col7"] + Group By Operator [GBY_40] (rows=348477374 width=88) + 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 12 [SIMPLE_EDGE] + SHUFFLE [RS_39] + PartitionCols:_col0, _col1, _col2, _col3, _col4, _col5, _col6 + Group By Operator [GBY_38] (rows=696954748 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(_col7)"],keys:_col0, _col1, _col2, _col3, _col4, _col5, _col6 + Select Operator [SEL_36] (rows=696954748 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] + Merge Join Operator [MERGEJOIN_170] (rows=696954748 width=88) + Conds:RS_33._col1=RS_34._col0(Inner),Output:["_col2","_col3","_col7","_col8","_col9","_col10","_col11","_col12","_col13"] + <-Map 17 [SIMPLE_EDGE] + SHUFFLE [RS_34] + PartitionCols:_col0 + Select Operator [SEL_29] (rows=80000000 width=860) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] + Filter Operator [FIL_158] (rows=80000000 width=860) + predicate:(c_customer_sk is not null and c_customer_id is not null) + TableScan [TS_6] (rows=80000000 width=860) + default@customer,customer,Tbl:COMPLETE,Col:NONE,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"] + <-Reducer 11 [SIMPLE_EDGE] + SHUFFLE [RS_33] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_169] (rows=633595212 width=88) + Conds:RS_30._col0=RS_31._col0(Inner),Output:["_col1","_col2","_col3"] + <-Map 10 [SIMPLE_EDGE] + SHUFFLE [RS_31] + PartitionCols:_col0 + Select Operator [SEL_26] (rows=36524 width=1119) + Output:["_col0"] + Filter Operator [FIL_157] (rows=36524 width=1119) + predicate:((d_year = 2001) and d_date_sk is not null) + TableScan [TS_3] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year"] + <-Map 18 [SIMPLE_EDGE] + SHUFFLE [RS_30] + PartitionCols:_col0 + Select Operator [SEL_23] (rows=575995635 width=88) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_156] (rows=575995635 width=88) + predicate:(ss_customer_sk is not null and ss_sold_date_sk is not null) + TableScan [TS_21] (rows=575995635 width=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_customer_sk","ss_ext_discount_amt","ss_ext_list_price"] + <-Reducer 16 [SIMPLE_EDGE] + SHUFFLE [RS_89] + PartitionCols:_col0 + Select Operator [SEL_85] (rows=348477374 width=88) + Output:["_col0","_col3","_col7"] + Group By Operator [GBY_84] (rows=348477374 width=88) + 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 15 [SIMPLE_EDGE] + SHUFFLE [RS_83] + PartitionCols:_col0, _col1, _col2, _col3, _col4, _col5, _col6 + Group By Operator [GBY_82] (rows=696954748 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(_col7)"],keys:_col0, _col1, _col2, _col3, _col4, _col5, _col6 + Select Operator [SEL_80] (rows=696954748 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] + Merge Join Operator [MERGEJOIN_174] (rows=696954748 width=88) + Conds:RS_77._col1=RS_78._col0(Inner),Output:["_col2","_col3","_col7","_col8","_col9","_col10","_col11","_col12","_col13"] + <-Map 17 [SIMPLE_EDGE] + SHUFFLE [RS_78] + PartitionCols:_col0 + Select Operator [SEL_73] (rows=80000000 width=860) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] + Filter Operator [FIL_164] (rows=80000000 width=860) + predicate:(c_customer_sk is not null and c_customer_id is not null) + Please refer to the previous TableScan [TS_6] + <-Reducer 14 [SIMPLE_EDGE] + SHUFFLE [RS_77] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_173] (rows=633595212 width=88) + Conds:RS_74._col0=RS_75._col0(Inner),Output:["_col1","_col2","_col3"] + <-Map 10 [SIMPLE_EDGE] + SHUFFLE [RS_75] + PartitionCols:_col0 + Select Operator [SEL_70] (rows=36524 width=1119) + Output:["_col0"] + Filter Operator [FIL_163] (rows=36524 width=1119) + predicate:((d_year = 2002) and d_date_sk is not null) + Please refer to the previous TableScan [TS_3] + <-Map 18 [SIMPLE_EDGE] + SHUFFLE [RS_74] + PartitionCols:_col0 + Select Operator [SEL_67] (rows=575995635 width=88) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_162] (rows=575995635 width=88) + predicate:(ss_customer_sk is not null and ss_sold_date_sk is not null) + Please refer to the previous TableScan [TS_21] + <-Reducer 4 [SIMPLE_EDGE] + SHUFFLE [RS_86] + PartitionCols:_col0 + Select Operator [SEL_20] (rows=87121617 width=135) + Output:["_col0","_col7"] + Group By Operator [GBY_19] (rows=87121617 width=135) + 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_18] + PartitionCols:_col0, _col1, _col2, _col3, _col4, _col5, _col6 + Group By Operator [GBY_17] (rows=174243235 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(_col7)"],keys:_col0, _col1, _col2, _col3, _col4, _col5, _col6 + Select Operator [SEL_15] (rows=174243235 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] + Merge Join Operator [MERGEJOIN_168] (rows=174243235 width=135) + Conds:RS_12._col1=RS_13._col0(Inner),Output:["_col2","_col3","_col7","_col8","_col9","_col10","_col11","_col12","_col13"] + <-Map 17 [SIMPLE_EDGE] + SHUFFLE [RS_13] + PartitionCols:_col0 + Select Operator [SEL_8] (rows=80000000 width=860) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] + Filter Operator [FIL_155] (rows=80000000 width=860) + predicate:(c_customer_sk is not null and c_customer_id is not null) + Please refer to the previous TableScan [TS_6] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_12] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_167] (rows=158402938 width=135) + Conds:RS_9._col0=RS_10._col0(Inner),Output:["_col1","_col2","_col3"] + <-Map 10 [SIMPLE_EDGE] + SHUFFLE [RS_10] + PartitionCols:_col0 + Select Operator [SEL_5] (rows=36524 width=1119) + Output:["_col0"] + Filter Operator [FIL_154] (rows=36524 width=1119) + predicate:((d_year = 2002) and d_date_sk is not null) + Please refer to the previous TableScan [TS_3] + <-Map 1 [SIMPLE_EDGE] + SHUFFLE [RS_9] + PartitionCols:_col0 + Select Operator [SEL_2] (rows=144002668 width=135) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_153] (rows=144002668 width=135) + predicate:(ws_bill_customer_sk is not null and ws_sold_date_sk is not null) + TableScan [TS_0] (rows=144002668 width=135) + default@web_sales,web_sales,Tbl:COMPLETE,Col:NONE,Output:["ws_sold_date_sk","ws_bill_customer_sk","ws_ext_discount_amt","ws_ext_list_price"] + <-Reducer 9 [SIMPLE_EDGE] + SHUFFLE [RS_88] + PartitionCols:_col0 + Filter Operator [FIL_63] (rows=29040539 width=135) + predicate:(_col7 > 0) + Select Operator [SEL_165] (rows=87121617 width=135) + Output:["_col0","_col7"] + Group By Operator [GBY_62] (rows=87121617 width=135) + 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 8 [SIMPLE_EDGE] + SHUFFLE [RS_61] + PartitionCols:_col0, _col1, _col2, _col3, _col4, _col5, _col6 + Group By Operator [GBY_60] (rows=174243235 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(_col7)"],keys:_col0, _col1, _col2, _col3, _col4, _col5, _col6 + Select Operator [SEL_58] (rows=174243235 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] + Merge Join Operator [MERGEJOIN_172] (rows=174243235 width=135) + Conds:RS_55._col1=RS_56._col0(Inner),Output:["_col2","_col3","_col7","_col8","_col9","_col10","_col11","_col12","_col13"] + <-Map 17 [SIMPLE_EDGE] + SHUFFLE [RS_56] + PartitionCols:_col0 + Select Operator [SEL_51] (rows=80000000 width=860) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] + Filter Operator [FIL_161] (rows=80000000 width=860) + predicate:(c_customer_sk is not null and c_customer_id is not null) + Please refer to the previous TableScan [TS_6] + <-Reducer 7 [SIMPLE_EDGE] + SHUFFLE [RS_55] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_171] (rows=158402938 width=135) + Conds:RS_52._col0=RS_53._col0(Inner),Output:["_col1","_col2","_col3"] + <-Map 10 [SIMPLE_EDGE] + SHUFFLE [RS_53] + PartitionCols:_col0 + Select Operator [SEL_48] (rows=36524 width=1119) + Output:["_col0"] + Filter Operator [FIL_160] (rows=36524 width=1119) + predicate:((d_year = 2001) and d_date_sk is not null) + Please refer to the previous TableScan [TS_3] + <-Map 1 [SIMPLE_EDGE] + SHUFFLE [RS_52] + PartitionCols:_col0 + Select Operator [SEL_45] (rows=144002668 width=135) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_159] (rows=144002668 width=135) + predicate:(ws_bill_customer_sk is not null and ws_sold_date_sk is not null) + Please refer to the previous TableScan [TS_0] + diff --git a/ql/src/test/results/clientpositive/perf/query4.q.out b/ql/src/test/results/clientpositive/perf/query4.q.out index 1b2048649a..5f41b4a68f 100644 --- a/ql/src/test/results/clientpositive/perf/query4.q.out +++ b/ql/src/test/results/clientpositive/perf/query4.q.out @@ -217,912 +217,324 @@ POSTHOOK: type: QUERY Plan optimized by CBO. Vertex dependency in root stage -Reducer 10 <- Reducer 9 (SIMPLE_EDGE), Union 11 (CONTAINS) -Reducer 12 <- Map 1 (SIMPLE_EDGE), Map 28 (SIMPLE_EDGE) -Reducer 13 <- Map 65 (SIMPLE_EDGE), Reducer 12 (SIMPLE_EDGE) -Reducer 14 <- Reducer 13 (SIMPLE_EDGE), Union 15 (CONTAINS) -Reducer 16 <- Map 1 (SIMPLE_EDGE), Map 28 (SIMPLE_EDGE) -Reducer 17 <- Map 65 (SIMPLE_EDGE), Reducer 16 (SIMPLE_EDGE) -Reducer 18 <- Reducer 17 (SIMPLE_EDGE), Union 19 (CONTAINS) -Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 28 (SIMPLE_EDGE) -Reducer 20 <- Map 1 (SIMPLE_EDGE), Map 28 (SIMPLE_EDGE) -Reducer 21 <- Map 65 (SIMPLE_EDGE), Reducer 20 (SIMPLE_EDGE) -Reducer 22 <- Reducer 21 (SIMPLE_EDGE), Union 23 (CONTAINS) -Reducer 24 <- Map 1 (SIMPLE_EDGE), Map 28 (SIMPLE_EDGE) -Reducer 25 <- Map 65 (SIMPLE_EDGE), Reducer 24 (SIMPLE_EDGE) -Reducer 26 <- Reducer 25 (SIMPLE_EDGE), Union 27 (CONTAINS) -Reducer 29 <- Map 28 (SIMPLE_EDGE), Map 66 (SIMPLE_EDGE) -Reducer 3 <- Map 65 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) -Reducer 30 <- Map 65 (SIMPLE_EDGE), Reducer 29 (SIMPLE_EDGE) -Reducer 31 <- Reducer 30 (SIMPLE_EDGE), Union 5 (CONTAINS) -Reducer 32 <- Map 28 (SIMPLE_EDGE), Map 67 (SIMPLE_EDGE) -Reducer 33 <- Map 65 (SIMPLE_EDGE), Reducer 32 (SIMPLE_EDGE) -Reducer 34 <- Reducer 33 (SIMPLE_EDGE), Union 5 (CONTAINS) -Reducer 35 <- Map 28 (SIMPLE_EDGE), Map 66 (SIMPLE_EDGE) -Reducer 36 <- Map 65 (SIMPLE_EDGE), Reducer 35 (SIMPLE_EDGE) -Reducer 37 <- Reducer 36 (SIMPLE_EDGE), Union 11 (CONTAINS) -Reducer 38 <- Map 28 (SIMPLE_EDGE), Map 67 (SIMPLE_EDGE) -Reducer 39 <- Map 65 (SIMPLE_EDGE), Reducer 38 (SIMPLE_EDGE) -Reducer 4 <- Reducer 3 (SIMPLE_EDGE), Union 5 (CONTAINS) -Reducer 40 <- Reducer 39 (SIMPLE_EDGE), Union 11 (CONTAINS) -Reducer 41 <- Map 28 (SIMPLE_EDGE), Map 66 (SIMPLE_EDGE) -Reducer 42 <- Map 65 (SIMPLE_EDGE), Reducer 41 (SIMPLE_EDGE) -Reducer 43 <- Reducer 42 (SIMPLE_EDGE), Union 15 (CONTAINS) -Reducer 44 <- Map 28 (SIMPLE_EDGE), Map 67 (SIMPLE_EDGE) -Reducer 45 <- Map 65 (SIMPLE_EDGE), Reducer 44 (SIMPLE_EDGE) -Reducer 46 <- Reducer 45 (SIMPLE_EDGE), Union 15 (CONTAINS) -Reducer 47 <- Map 28 (SIMPLE_EDGE), Map 66 (SIMPLE_EDGE) -Reducer 48 <- Map 65 (SIMPLE_EDGE), Reducer 47 (SIMPLE_EDGE) -Reducer 49 <- Reducer 48 (SIMPLE_EDGE), Union 19 (CONTAINS) -Reducer 50 <- Map 28 (SIMPLE_EDGE), Map 67 (SIMPLE_EDGE) -Reducer 51 <- Map 65 (SIMPLE_EDGE), Reducer 50 (SIMPLE_EDGE) -Reducer 52 <- Reducer 51 (SIMPLE_EDGE), Union 19 (CONTAINS) -Reducer 53 <- Map 28 (SIMPLE_EDGE), Map 66 (SIMPLE_EDGE) -Reducer 54 <- Map 65 (SIMPLE_EDGE), Reducer 53 (SIMPLE_EDGE) -Reducer 55 <- Reducer 54 (SIMPLE_EDGE), Union 23 (CONTAINS) -Reducer 56 <- Map 28 (SIMPLE_EDGE), Map 67 (SIMPLE_EDGE) -Reducer 57 <- Map 65 (SIMPLE_EDGE), Reducer 56 (SIMPLE_EDGE) -Reducer 58 <- Reducer 57 (SIMPLE_EDGE), Union 23 (CONTAINS) -Reducer 59 <- Map 28 (SIMPLE_EDGE), Map 66 (SIMPLE_EDGE) -Reducer 6 <- Union 11 (SIMPLE_EDGE), Union 15 (SIMPLE_EDGE), Union 19 (SIMPLE_EDGE), Union 23 (SIMPLE_EDGE), Union 27 (SIMPLE_EDGE), Union 5 (SIMPLE_EDGE) -Reducer 60 <- Map 65 (SIMPLE_EDGE), Reducer 59 (SIMPLE_EDGE) -Reducer 61 <- Reducer 60 (SIMPLE_EDGE), Union 27 (CONTAINS) -Reducer 62 <- Map 28 (SIMPLE_EDGE), Map 67 (SIMPLE_EDGE) -Reducer 63 <- Map 65 (SIMPLE_EDGE), Reducer 62 (SIMPLE_EDGE) -Reducer 64 <- Reducer 63 (SIMPLE_EDGE), Union 27 (CONTAINS) -Reducer 7 <- Reducer 6 (SIMPLE_EDGE) -Reducer 8 <- Map 1 (SIMPLE_EDGE), Map 28 (SIMPLE_EDGE) -Reducer 9 <- Map 65 (SIMPLE_EDGE), Reducer 8 (SIMPLE_EDGE) +Reducer 11 <- Map 10 (SIMPLE_EDGE), Map 24 (SIMPLE_EDGE) +Reducer 12 <- Map 23 (SIMPLE_EDGE), Reducer 11 (SIMPLE_EDGE) +Reducer 13 <- Reducer 12 (SIMPLE_EDGE) +Reducer 14 <- Map 10 (SIMPLE_EDGE), Map 25 (SIMPLE_EDGE) +Reducer 15 <- Map 23 (SIMPLE_EDGE), Reducer 14 (SIMPLE_EDGE) +Reducer 16 <- Reducer 15 (SIMPLE_EDGE) +Reducer 17 <- Map 10 (SIMPLE_EDGE), Map 25 (SIMPLE_EDGE) +Reducer 18 <- Map 23 (SIMPLE_EDGE), Reducer 17 (SIMPLE_EDGE) +Reducer 19 <- Reducer 18 (SIMPLE_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 10 (SIMPLE_EDGE) +Reducer 20 <- Map 10 (SIMPLE_EDGE), Map 24 (SIMPLE_EDGE) +Reducer 21 <- Map 23 (SIMPLE_EDGE), Reducer 20 (SIMPLE_EDGE) +Reducer 22 <- Reducer 21 (SIMPLE_EDGE) +Reducer 3 <- Map 23 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) +Reducer 4 <- Reducer 3 (SIMPLE_EDGE) +Reducer 5 <- Reducer 13 (SIMPLE_EDGE), Reducer 16 (SIMPLE_EDGE), Reducer 19 (SIMPLE_EDGE), Reducer 22 (SIMPLE_EDGE), Reducer 4 (SIMPLE_EDGE), Reducer 9 (SIMPLE_EDGE) +Reducer 6 <- Reducer 5 (SIMPLE_EDGE) +Reducer 7 <- Map 1 (SIMPLE_EDGE), Map 10 (SIMPLE_EDGE) +Reducer 8 <- Map 23 (SIMPLE_EDGE), Reducer 7 (SIMPLE_EDGE) +Reducer 9 <- Reducer 8 (SIMPLE_EDGE) Stage-0 Fetch Operator limit:100 Stage-1 - Reducer 7 - File Output Operator [FS_412] - Limit [LIM_411] (rows=100 width=88) + Reducer 6 + File Output Operator [FS_142] + Limit [LIM_141] (rows=100 width=88) Number of rows:100 - Select Operator [SEL_410] (rows=479156402 width=88) + Select Operator [SEL_140] (rows=479156399 width=88) Output:["_col0"] - <-Reducer 6 [SIMPLE_EDGE] - SHUFFLE [RS_409] - Select Operator [SEL_408] (rows=479156402 width=88) + <-Reducer 5 [SIMPLE_EDGE] + SHUFFLE [RS_139] + Select Operator [SEL_138] (rows=479156399 width=88) Output:["_col0"] - Filter Operator [FIL_406] (rows=479156402 width=88) - predicate:(CASE WHEN ((_col1 > 0)) THEN (CASE WHEN ((_col3 > 0)) THEN (((_col9 / _col3) > (_col12 / _col1))) ELSE ((null > (_col12 / _col1))) END) ELSE (CASE WHEN ((_col3 > 0)) THEN (((_col9 / _col3) > null)) ELSE (null) END) END and CASE WHEN ((_col5 > 0)) THEN (CASE WHEN ((_col3 > 0)) THEN (((_col9 / _col3) > (_col7 / _col5))) ELSE ((null > (_col7 / _col5))) END) ELSE (CASE WHEN ((_col3 > 0)) THEN (((_col9 / _col3) > null)) ELSE (null) END) END) - Merge Join Operator [MERGEJOIN_866] (rows=1916625609 width=88) - Conds:Union 5._col0=Union 11._col0(Inner),Union 5._col0=Union 15._col0(Inner),Union 5._col0=Union 19._col0(Inner),Union 5._col0=Union 23._col0(Inner),Union 5._col0=Union 27._col0(Inner),Output:["_col1","_col3","_col5","_col7","_col9","_col11","_col12"] - <-Union 11 [SIMPLE_EDGE] - <-Reducer 10 [CONTAINS] - Reduce Output Operator [RS_400] - PartitionCols:_col0 - Select Operator [SEL_87] (rows=1 width=105) - Output:["_col0","_col1"] - Group By Operator [GBY_86] (rows=1 width=105) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4, KEY._col5, KEY._col6, KEY._col7 - <-Reducer 9 [SIMPLE_EDGE] - SHUFFLE [RS_85] - PartitionCols:_col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7 - Group By Operator [GBY_84] (rows=1 width=105) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8"],aggregations:["sum(_col8)"],keys:_col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7 - Select Operator [SEL_82] (rows=1 width=105) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8"] - Merge Join Operator [MERGEJOIN_837] (rows=1 width=105) - Conds:RS_79._col1=RS_80._col0(Inner),Output:["_col2","_col3","_col4","_col5","_col7","_col9","_col10","_col11","_col12","_col13","_col14","_col15"] - <-Map 65 [SIMPLE_EDGE] - SHUFFLE [RS_80] - PartitionCols:_col0 - Select Operator [SEL_75] (rows=1 width=860) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] - Filter Operator [FIL_784] (rows=1 width=860) - predicate:false - TableScan [TS_6] (rows=80000000 width=860) - default@customer,customer,Tbl:COMPLETE,Col:NONE,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"] - <-Reducer 8 [SIMPLE_EDGE] - SHUFFLE [RS_79] - PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_836] (rows=1 width=96) - Conds:RS_76._col0=RS_77._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col5","_col7"] - <-Map 28 [SIMPLE_EDGE] - SHUFFLE [RS_77] - PartitionCols:_col0 - Select Operator [SEL_72] (rows=1 width=1119) - Output:["_col0","_col1"] - Filter Operator [FIL_783] (rows=1 width=1119) - predicate:false - TableScan [TS_3] (rows=73049 width=1119) - default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year"] - <-Map 1 [SIMPLE_EDGE] - SHUFFLE [RS_76] - PartitionCols:_col0 - Select Operator [SEL_69] (rows=1 width=88) - Output:["_col0","_col1","_col2","_col3","_col4","_col5"] - Filter Operator [FIL_782] (rows=1 width=88) - predicate:false - TableScan [TS_0] (rows=575995635 width=88) - default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,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 37 [CONTAINS] - Reduce Output Operator [RS_400] - PartitionCols:_col0 - Select Operator [SEL_109] (rows=58077952 width=135) - Output:["_col0","_col1"] - Filter Operator [FIL_108] (rows=58077952 width=135) - predicate:(_col7 > 0) - Select Operator [SEL_827] (rows=174233858 width=135) - Output:["_col0","_col7"] - Group By Operator [GBY_107] (rows=174233858 width=135) - 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 36 [SIMPLE_EDGE] - SHUFFLE [RS_106] - PartitionCols:_col0, _col1, _col2, _col3, _col4, _col5, _col6 - Group By Operator [GBY_105] (rows=348467716 width=135) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(_col7)"],keys:_col0, _col1, _col2, _col3, _col4, _col5, _col6 - Select Operator [SEL_103] (rows=348467716 width=135) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] - Merge Join Operator [MERGEJOIN_839] (rows=348467716 width=135) - Conds:RS_100._col1=RS_101._col0(Inner),Output:["_col2","_col3","_col4","_col5","_col9","_col10","_col11","_col12","_col13","_col14","_col15"] - <-Map 65 [SIMPLE_EDGE] - SHUFFLE [RS_101] - PartitionCols:_col0 - Select Operator [SEL_96] (rows=80000000 width=860) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] - Filter Operator [FIL_787] (rows=80000000 width=860) - predicate:(c_customer_sk is not null and c_customer_id is not null) - Please refer to the previous TableScan [TS_6] - <-Reducer 35 [SIMPLE_EDGE] - SHUFFLE [RS_100] - PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_838] (rows=316788826 width=135) - Conds:RS_97._col0=RS_98._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col5"] - <-Map 28 [SIMPLE_EDGE] - SHUFFLE [RS_98] - PartitionCols:_col0 - Select Operator [SEL_93] (rows=36524 width=1119) - Output:["_col0"] - Filter Operator [FIL_786] (rows=36524 width=1119) - predicate:((d_year = 2001) and d_date_sk is not null) - Please refer to the previous TableScan [TS_3] - <-Map 66 [SIMPLE_EDGE] - SHUFFLE [RS_97] - PartitionCols:_col0 - Select Operator [SEL_90] (rows=287989836 width=135) - Output:["_col0","_col1","_col2","_col3","_col4","_col5"] - Filter Operator [FIL_785] (rows=287989836 width=135) - predicate:(cs_bill_customer_sk is not null and cs_sold_date_sk is not null) - TableScan [TS_22] (rows=287989836 width=135) - default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:NONE,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 40 [CONTAINS] - Reduce Output Operator [RS_400] - PartitionCols:_col0 - Select Operator [SEL_132] (rows=1 width=162) - Output:["_col0","_col1"] - Group By Operator [GBY_131] (rows=1 width=162) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4, KEY._col5, KEY._col6, KEY._col7 - <-Reducer 39 [SIMPLE_EDGE] - SHUFFLE [RS_130] - PartitionCols:_col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7 - Group By Operator [GBY_129] (rows=1 width=162) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8"],aggregations:["sum(_col8)"],keys:_col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7 - Select Operator [SEL_127] (rows=1 width=162) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8"] - Merge Join Operator [MERGEJOIN_841] (rows=1 width=162) - Conds:RS_124._col1=RS_125._col0(Inner),Output:["_col2","_col3","_col4","_col5","_col7","_col9","_col10","_col11","_col12","_col13","_col14","_col15"] - <-Map 65 [SIMPLE_EDGE] - SHUFFLE [RS_125] - PartitionCols:_col0 - Select Operator [SEL_120] (rows=1 width=860) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] - Filter Operator [FIL_790] (rows=1 width=860) - predicate:false - Please refer to the previous TableScan [TS_6] - <-Reducer 38 [SIMPLE_EDGE] - SHUFFLE [RS_124] - PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_840] (rows=1 width=148) - Conds:RS_121._col0=RS_122._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col5","_col7"] - <-Map 28 [SIMPLE_EDGE] - SHUFFLE [RS_122] - PartitionCols:_col0 - Select Operator [SEL_117] (rows=1 width=1119) - Output:["_col0","_col1"] - Filter Operator [FIL_789] (rows=1 width=1119) - predicate:false - Please refer to the previous TableScan [TS_3] - <-Map 67 [SIMPLE_EDGE] - SHUFFLE [RS_121] - PartitionCols:_col0 - Select Operator [SEL_114] (rows=1 width=135) - Output:["_col0","_col1","_col2","_col3","_col4","_col5"] - Filter Operator [FIL_788] (rows=1 width=135) - predicate:false - TableScan [TS_45] (rows=144002668 width=135) - default@web_sales,web_sales,Tbl:COMPLETE,Col:NONE,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"] - <-Union 15 [SIMPLE_EDGE] - <-Reducer 14 [CONTAINS] - Reduce Output Operator [RS_401] - PartitionCols:_col0 - Select Operator [SEL_154] (rows=1 width=105) - Output:["_col0","_col1"] - Group By Operator [GBY_153] (rows=1 width=105) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4, KEY._col5, KEY._col6, KEY._col7 - <-Reducer 13 [SIMPLE_EDGE] - SHUFFLE [RS_152] - PartitionCols:_col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7 - Group By Operator [GBY_151] (rows=1 width=105) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8"],aggregations:["sum(_col8)"],keys:_col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7 - Select Operator [SEL_149] (rows=1 width=105) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8"] - Merge Join Operator [MERGEJOIN_843] (rows=1 width=105) - Conds:RS_146._col1=RS_147._col0(Inner),Output:["_col2","_col3","_col4","_col5","_col7","_col9","_col10","_col11","_col12","_col13","_col14","_col15"] - <-Map 65 [SIMPLE_EDGE] - SHUFFLE [RS_147] - PartitionCols:_col0 - Select Operator [SEL_142] (rows=1 width=860) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] - Filter Operator [FIL_793] (rows=1 width=860) - predicate:false - Please refer to the previous TableScan [TS_6] - <-Reducer 12 [SIMPLE_EDGE] - SHUFFLE [RS_146] - PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_842] (rows=1 width=96) - Conds:RS_143._col0=RS_144._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col5","_col7"] - <-Map 28 [SIMPLE_EDGE] - SHUFFLE [RS_144] - PartitionCols:_col0 - Select Operator [SEL_139] (rows=1 width=1119) - Output:["_col0","_col1"] - Filter Operator [FIL_792] (rows=1 width=1119) - predicate:false - Please refer to the previous TableScan [TS_3] - <-Map 1 [SIMPLE_EDGE] - SHUFFLE [RS_143] - PartitionCols:_col0 - Select Operator [SEL_136] (rows=1 width=88) - Output:["_col0","_col1","_col2","_col3","_col4","_col5"] - Filter Operator [FIL_791] (rows=1 width=88) - predicate:false - Please refer to the previous TableScan [TS_0] - <-Reducer 43 [CONTAINS] - Reduce Output Operator [RS_401] - PartitionCols:_col0 - Select Operator [SEL_175] (rows=1 width=162) - Output:["_col0","_col1"] - Group By Operator [GBY_174] (rows=1 width=162) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4, KEY._col5, KEY._col6, KEY._col7 - <-Reducer 42 [SIMPLE_EDGE] - SHUFFLE [RS_173] - PartitionCols:_col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7 - Group By Operator [GBY_172] (rows=1 width=162) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8"],aggregations:["sum(_col8)"],keys:_col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7 - Select Operator [SEL_170] (rows=1 width=162) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8"] - Merge Join Operator [MERGEJOIN_845] (rows=1 width=162) - Conds:RS_167._col1=RS_168._col0(Inner),Output:["_col2","_col3","_col4","_col5","_col7","_col9","_col10","_col11","_col12","_col13","_col14","_col15"] - <-Map 65 [SIMPLE_EDGE] - SHUFFLE [RS_168] - PartitionCols:_col0 - Select Operator [SEL_163] (rows=1 width=860) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] - Filter Operator [FIL_796] (rows=1 width=860) - predicate:false - Please refer to the previous TableScan [TS_6] - <-Reducer 41 [SIMPLE_EDGE] - SHUFFLE [RS_167] - PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_844] (rows=1 width=148) - Conds:RS_164._col0=RS_165._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col5","_col7"] - <-Map 28 [SIMPLE_EDGE] - SHUFFLE [RS_165] - PartitionCols:_col0 - Select Operator [SEL_160] (rows=1 width=1119) - Output:["_col0","_col1"] - Filter Operator [FIL_795] (rows=1 width=1119) - predicate:false - Please refer to the previous TableScan [TS_3] - <-Map 66 [SIMPLE_EDGE] - SHUFFLE [RS_164] - PartitionCols:_col0 - Select Operator [SEL_157] (rows=1 width=135) - Output:["_col0","_col1","_col2","_col3","_col4","_col5"] - Filter Operator [FIL_794] (rows=1 width=135) - predicate:false - Please refer to the previous TableScan [TS_22] - <-Reducer 46 [CONTAINS] - Reduce Output Operator [RS_401] - PartitionCols:_col0 - Select Operator [SEL_199] (rows=29040539 width=135) - Output:["_col0","_col1"] - Filter Operator [FIL_198] (rows=29040539 width=135) - predicate:(_col7 > 0) - Select Operator [SEL_828] (rows=87121617 width=135) - Output:["_col0","_col7"] - Group By Operator [GBY_197] (rows=87121617 width=135) - 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 45 [SIMPLE_EDGE] - SHUFFLE [RS_196] - PartitionCols:_col0, _col1, _col2, _col3, _col4, _col5, _col6 - Group By Operator [GBY_195] (rows=174243235 width=135) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(_col7)"],keys:_col0, _col1, _col2, _col3, _col4, _col5, _col6 - Select Operator [SEL_193] (rows=174243235 width=135) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] - Merge Join Operator [MERGEJOIN_847] (rows=174243235 width=135) - Conds:RS_190._col1=RS_191._col0(Inner),Output:["_col2","_col3","_col4","_col5","_col9","_col10","_col11","_col12","_col13","_col14","_col15"] - <-Map 65 [SIMPLE_EDGE] - SHUFFLE [RS_191] - PartitionCols:_col0 - Select Operator [SEL_186] (rows=80000000 width=860) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] - Filter Operator [FIL_799] (rows=80000000 width=860) - predicate:(c_customer_sk is not null and c_customer_id is not null) - Please refer to the previous TableScan [TS_6] - <-Reducer 44 [SIMPLE_EDGE] - SHUFFLE [RS_190] - PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_846] (rows=158402938 width=135) - Conds:RS_187._col0=RS_188._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col5"] - <-Map 28 [SIMPLE_EDGE] - SHUFFLE [RS_188] - PartitionCols:_col0 - Select Operator [SEL_183] (rows=36524 width=1119) - Output:["_col0"] - Filter Operator [FIL_798] (rows=36524 width=1119) - predicate:((d_year = 2001) and d_date_sk is not null) - Please refer to the previous TableScan [TS_3] - <-Map 67 [SIMPLE_EDGE] - SHUFFLE [RS_187] - PartitionCols:_col0 - Select Operator [SEL_180] (rows=144002668 width=135) - Output:["_col0","_col1","_col2","_col3","_col4","_col5"] - Filter Operator [FIL_797] (rows=144002668 width=135) - predicate:(ws_bill_customer_sk is not null and ws_sold_date_sk is not null) - Please refer to the previous TableScan [TS_45] - <-Union 19 [SIMPLE_EDGE] - <-Reducer 18 [CONTAINS] - Reduce Output Operator [RS_402] - PartitionCols:_col0 - Select Operator [SEL_221] (rows=1 width=105) - Output:["_col0","_col1"] - Group By Operator [GBY_220] (rows=1 width=105) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4, KEY._col5, KEY._col6, KEY._col7 - <-Reducer 17 [SIMPLE_EDGE] - SHUFFLE [RS_219] - PartitionCols:_col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7 - Group By Operator [GBY_218] (rows=1 width=105) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8"],aggregations:["sum(_col8)"],keys:_col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7 - Select Operator [SEL_216] (rows=1 width=105) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8"] - Merge Join Operator [MERGEJOIN_849] (rows=1 width=105) - Conds:RS_213._col1=RS_214._col0(Inner),Output:["_col2","_col3","_col4","_col5","_col7","_col9","_col10","_col11","_col12","_col13","_col14","_col15"] - <-Map 65 [SIMPLE_EDGE] - SHUFFLE [RS_214] - PartitionCols:_col0 - Select Operator [SEL_209] (rows=1 width=860) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] - Filter Operator [FIL_802] (rows=1 width=860) - predicate:false - Please refer to the previous TableScan [TS_6] - <-Reducer 16 [SIMPLE_EDGE] - SHUFFLE [RS_213] - PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_848] (rows=1 width=96) - Conds:RS_210._col0=RS_211._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col5","_col7"] - <-Map 28 [SIMPLE_EDGE] - SHUFFLE [RS_211] - PartitionCols:_col0 - Select Operator [SEL_206] (rows=1 width=1119) - Output:["_col0","_col1"] - Filter Operator [FIL_801] (rows=1 width=1119) - predicate:false - Please refer to the previous TableScan [TS_3] - <-Map 1 [SIMPLE_EDGE] - SHUFFLE [RS_210] - PartitionCols:_col0 - Select Operator [SEL_203] (rows=1 width=88) - Output:["_col0","_col1","_col2","_col3","_col4","_col5"] - Filter Operator [FIL_800] (rows=1 width=88) - predicate:false - Please refer to the previous TableScan [TS_0] - <-Reducer 49 [CONTAINS] - Reduce Output Operator [RS_402] - PartitionCols:_col0 - Select Operator [SEL_242] (rows=1 width=162) - Output:["_col0","_col1"] - Group By Operator [GBY_241] (rows=1 width=162) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4, KEY._col5, KEY._col6, KEY._col7 - <-Reducer 48 [SIMPLE_EDGE] - SHUFFLE [RS_240] - PartitionCols:_col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7 - Group By Operator [GBY_239] (rows=1 width=162) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8"],aggregations:["sum(_col8)"],keys:_col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7 - Select Operator [SEL_237] (rows=1 width=162) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8"] - Merge Join Operator [MERGEJOIN_851] (rows=1 width=162) - Conds:RS_234._col1=RS_235._col0(Inner),Output:["_col2","_col3","_col4","_col5","_col7","_col9","_col10","_col11","_col12","_col13","_col14","_col15"] - <-Map 65 [SIMPLE_EDGE] - SHUFFLE [RS_235] - PartitionCols:_col0 - Select Operator [SEL_230] (rows=1 width=860) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] - Filter Operator [FIL_805] (rows=1 width=860) - predicate:false - Please refer to the previous TableScan [TS_6] - <-Reducer 47 [SIMPLE_EDGE] - SHUFFLE [RS_234] - PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_850] (rows=1 width=148) - Conds:RS_231._col0=RS_232._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col5","_col7"] - <-Map 28 [SIMPLE_EDGE] - SHUFFLE [RS_232] - PartitionCols:_col0 - Select Operator [SEL_227] (rows=1 width=1119) - Output:["_col0","_col1"] - Filter Operator [FIL_804] (rows=1 width=1119) - predicate:false - Please refer to the previous TableScan [TS_3] - <-Map 66 [SIMPLE_EDGE] - SHUFFLE [RS_231] - PartitionCols:_col0 - Select Operator [SEL_224] (rows=1 width=135) - Output:["_col0","_col1","_col2","_col3","_col4","_col5"] - Filter Operator [FIL_803] (rows=1 width=135) - predicate:false - Please refer to the previous TableScan [TS_22] - <-Reducer 52 [CONTAINS] - Reduce Output Operator [RS_402] - PartitionCols:_col0 - Select Operator [SEL_265] (rows=87121617 width=135) - Output:["_col0","_col1"] - Group By Operator [GBY_264] (rows=87121617 width=135) + Filter Operator [FIL_136] (rows=479156399 width=88) + predicate:(CASE WHEN ((_col15 > 0)) THEN (CASE WHEN ((_col23 > 0)) THEN (((_col39 / _col23) > (_col47 / _col15))) ELSE ((null > (_col47 / _col15))) END) ELSE (CASE WHEN ((_col23 > 0)) THEN (((_col39 / _col23) > null)) ELSE (null) END) END and CASE WHEN ((_col31 > 0)) THEN (CASE WHEN ((_col23 > 0)) THEN (((_col39 / _col23) > (_col7 / _col31))) ELSE ((null > (_col7 / _col31))) END) ELSE (CASE WHEN ((_col23 > 0)) THEN (((_col39 / _col23) > null)) ELSE (null) END) END) + Merge Join Operator [MERGEJOIN_296] (rows=1916625598 width=88) + Conds:RS_129._col0=RS_130._col0(Inner),RS_130._col0=RS_131._col0(Inner),RS_130._col0=RS_132._col0(Inner),RS_130._col0=RS_133._col0(Inner),RS_130._col0=RS_134._col0(Inner),Output:["_col7","_col15","_col23","_col31","_col39","_col43","_col47"] + <-Reducer 13 [SIMPLE_EDGE] + SHUFFLE [RS_130] + PartitionCols:_col0 + Filter Operator [FIL_41] (rows=116159124 width=88) + predicate:(_col7 > 0) + Select Operator [SEL_283] (rows=348477374 width=88) + Output:["_col0","_col7"] + Group By Operator [GBY_40] (rows=348477374 width=88) 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 51 [SIMPLE_EDGE] - SHUFFLE [RS_263] + <-Reducer 12 [SIMPLE_EDGE] + SHUFFLE [RS_39] PartitionCols:_col0, _col1, _col2, _col3, _col4, _col5, _col6 - Group By Operator [GBY_262] (rows=174243235 width=135) + Group By Operator [GBY_38] (rows=696954748 width=88) Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(_col7)"],keys:_col0, _col1, _col2, _col3, _col4, _col5, _col6 - Select Operator [SEL_260] (rows=174243235 width=135) + Select Operator [SEL_36] (rows=696954748 width=88) Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] - Merge Join Operator [MERGEJOIN_853] (rows=174243235 width=135) - Conds:RS_257._col1=RS_258._col0(Inner),Output:["_col2","_col3","_col4","_col5","_col9","_col10","_col11","_col12","_col13","_col14","_col15"] - <-Map 65 [SIMPLE_EDGE] - SHUFFLE [RS_258] + Merge Join Operator [MERGEJOIN_287] (rows=696954748 width=88) + Conds:RS_33._col1=RS_34._col0(Inner),Output:["_col2","_col3","_col4","_col5","_col9","_col10","_col11","_col12","_col13","_col14","_col15"] + <-Map 23 [SIMPLE_EDGE] + SHUFFLE [RS_34] PartitionCols:_col0 - Select Operator [SEL_253] (rows=80000000 width=860) + Select Operator [SEL_29] (rows=80000000 width=860) Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] - Filter Operator [FIL_808] (rows=80000000 width=860) + Filter Operator [FIL_268] (rows=80000000 width=860) predicate:(c_customer_sk is not null and c_customer_id is not null) - Please refer to the previous TableScan [TS_6] - <-Reducer 50 [SIMPLE_EDGE] - SHUFFLE [RS_257] + TableScan [TS_6] (rows=80000000 width=860) + default@customer,customer,Tbl:COMPLETE,Col:NONE,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"] + <-Reducer 11 [SIMPLE_EDGE] + SHUFFLE [RS_33] PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_852] (rows=158402938 width=135) - Conds:RS_254._col0=RS_255._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col5"] - <-Map 28 [SIMPLE_EDGE] - SHUFFLE [RS_255] + Merge Join Operator [MERGEJOIN_286] (rows=633595212 width=88) + Conds:RS_30._col0=RS_31._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col5"] + <-Map 10 [SIMPLE_EDGE] + SHUFFLE [RS_31] PartitionCols:_col0 - Select Operator [SEL_250] (rows=36524 width=1119) + Select Operator [SEL_26] (rows=36524 width=1119) Output:["_col0"] - Filter Operator [FIL_807] (rows=36524 width=1119) - predicate:((d_year = 2002) and d_date_sk is not null) - Please refer to the previous TableScan [TS_3] - <-Map 67 [SIMPLE_EDGE] - SHUFFLE [RS_254] - PartitionCols:_col0 - Select Operator [SEL_247] (rows=144002668 width=135) - Output:["_col0","_col1","_col2","_col3","_col4","_col5"] - Filter Operator [FIL_806] (rows=144002668 width=135) - predicate:(ws_bill_customer_sk is not null and ws_sold_date_sk is not null) - Please refer to the previous TableScan [TS_45] - <-Union 23 [SIMPLE_EDGE] - <-Reducer 22 [CONTAINS] - Reduce Output Operator [RS_403] - PartitionCols:_col0 - Select Operator [SEL_287] (rows=1 width=105) - Output:["_col0","_col1"] - Group By Operator [GBY_286] (rows=1 width=105) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4, KEY._col5, KEY._col6, KEY._col7 - <-Reducer 21 [SIMPLE_EDGE] - SHUFFLE [RS_285] - PartitionCols:_col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7 - Group By Operator [GBY_284] (rows=1 width=105) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8"],aggregations:["sum(_col8)"],keys:_col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7 - Select Operator [SEL_282] (rows=1 width=105) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8"] - Merge Join Operator [MERGEJOIN_855] (rows=1 width=105) - Conds:RS_279._col1=RS_280._col0(Inner),Output:["_col2","_col3","_col4","_col5","_col7","_col9","_col10","_col11","_col12","_col13","_col14","_col15"] - <-Map 65 [SIMPLE_EDGE] - SHUFFLE [RS_280] - PartitionCols:_col0 - Select Operator [SEL_275] (rows=1 width=860) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] - Filter Operator [FIL_811] (rows=1 width=860) - predicate:false - Please refer to the previous TableScan [TS_6] - <-Reducer 20 [SIMPLE_EDGE] - SHUFFLE [RS_279] - PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_854] (rows=1 width=96) - Conds:RS_276._col0=RS_277._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col5","_col7"] - <-Map 28 [SIMPLE_EDGE] - SHUFFLE [RS_277] - PartitionCols:_col0 - Select Operator [SEL_272] (rows=1 width=1119) - Output:["_col0","_col1"] - Filter Operator [FIL_810] (rows=1 width=1119) - predicate:false - Please refer to the previous TableScan [TS_3] - <-Map 1 [SIMPLE_EDGE] - SHUFFLE [RS_276] + Filter Operator [FIL_267] (rows=36524 width=1119) + predicate:((d_year = 2001) and d_date_sk is not null) + TableScan [TS_3] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year"] + <-Map 24 [SIMPLE_EDGE] + SHUFFLE [RS_30] PartitionCols:_col0 - Select Operator [SEL_269] (rows=1 width=88) + Select Operator [SEL_23] (rows=575995635 width=88) Output:["_col0","_col1","_col2","_col3","_col4","_col5"] - Filter Operator [FIL_809] (rows=1 width=88) - predicate:false - Please refer to the previous TableScan [TS_0] - <-Reducer 55 [CONTAINS] - Reduce Output Operator [RS_403] - PartitionCols:_col0 - Select Operator [SEL_308] (rows=174233858 width=135) - Output:["_col0","_col1"] - Group By Operator [GBY_307] (rows=174233858 width=135) + Filter Operator [FIL_266] (rows=575995635 width=88) + predicate:(ss_customer_sk is not null and ss_sold_date_sk is not null) + TableScan [TS_21] (rows=575995635 width=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,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 16 [SIMPLE_EDGE] + SHUFFLE [RS_131] + PartitionCols:_col0 + Filter Operator [FIL_63] (rows=58077952 width=135) + predicate:(_col7 > 0) + Select Operator [SEL_281] (rows=174233858 width=135) + Output:["_col0","_col7"] + Group By Operator [GBY_62] (rows=174233858 width=135) 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 54 [SIMPLE_EDGE] - SHUFFLE [RS_306] + <-Reducer 15 [SIMPLE_EDGE] + SHUFFLE [RS_61] PartitionCols:_col0, _col1, _col2, _col3, _col4, _col5, _col6 - Group By Operator [GBY_305] (rows=348467716 width=135) + Group By Operator [GBY_60] (rows=348467716 width=135) Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(_col7)"],keys:_col0, _col1, _col2, _col3, _col4, _col5, _col6 - Select Operator [SEL_303] (rows=348467716 width=135) + Select Operator [SEL_58] (rows=348467716 width=135) Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] - Merge Join Operator [MERGEJOIN_857] (rows=348467716 width=135) - Conds:RS_300._col1=RS_301._col0(Inner),Output:["_col2","_col3","_col4","_col5","_col9","_col10","_col11","_col12","_col13","_col14","_col15"] - <-Map 65 [SIMPLE_EDGE] - SHUFFLE [RS_301] + Merge Join Operator [MERGEJOIN_289] (rows=348467716 width=135) + Conds:RS_55._col1=RS_56._col0(Inner),Output:["_col2","_col3","_col4","_col5","_col9","_col10","_col11","_col12","_col13","_col14","_col15"] + <-Map 23 [SIMPLE_EDGE] + SHUFFLE [RS_56] PartitionCols:_col0 - Select Operator [SEL_296] (rows=80000000 width=860) + Select Operator [SEL_51] (rows=80000000 width=860) Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] - Filter Operator [FIL_814] (rows=80000000 width=860) + Filter Operator [FIL_271] (rows=80000000 width=860) predicate:(c_customer_sk is not null and c_customer_id is not null) Please refer to the previous TableScan [TS_6] - <-Reducer 53 [SIMPLE_EDGE] - SHUFFLE [RS_300] + <-Reducer 14 [SIMPLE_EDGE] + SHUFFLE [RS_55] PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_856] (rows=316788826 width=135) - Conds:RS_297._col0=RS_298._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col5"] - <-Map 28 [SIMPLE_EDGE] - SHUFFLE [RS_298] + Merge Join Operator [MERGEJOIN_288] (rows=316788826 width=135) + Conds:RS_52._col0=RS_53._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col5"] + <-Map 10 [SIMPLE_EDGE] + SHUFFLE [RS_53] PartitionCols:_col0 - Select Operator [SEL_293] (rows=36524 width=1119) + Select Operator [SEL_48] (rows=36524 width=1119) Output:["_col0"] - Filter Operator [FIL_813] (rows=36524 width=1119) - predicate:((d_year = 2002) and d_date_sk is not null) + Filter Operator [FIL_270] (rows=36524 width=1119) + predicate:((d_year = 2001) and d_date_sk is not null) Please refer to the previous TableScan [TS_3] - <-Map 66 [SIMPLE_EDGE] - SHUFFLE [RS_297] + <-Map 25 [SIMPLE_EDGE] + SHUFFLE [RS_52] PartitionCols:_col0 - Select Operator [SEL_290] (rows=287989836 width=135) + Select Operator [SEL_45] (rows=287989836 width=135) Output:["_col0","_col1","_col2","_col3","_col4","_col5"] - Filter Operator [FIL_812] (rows=287989836 width=135) + Filter Operator [FIL_269] (rows=287989836 width=135) predicate:(cs_bill_customer_sk is not null and cs_sold_date_sk is not null) - Please refer to the previous TableScan [TS_22] - <-Reducer 58 [CONTAINS] - Reduce Output Operator [RS_403] - PartitionCols:_col0 - Select Operator [SEL_331] (rows=1 width=162) - Output:["_col0","_col1"] - Group By Operator [GBY_330] (rows=1 width=162) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4, KEY._col5, KEY._col6, KEY._col7 - <-Reducer 57 [SIMPLE_EDGE] - SHUFFLE [RS_329] - PartitionCols:_col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7 - Group By Operator [GBY_328] (rows=1 width=162) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8"],aggregations:["sum(_col8)"],keys:_col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7 - Select Operator [SEL_326] (rows=1 width=162) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8"] - Merge Join Operator [MERGEJOIN_859] (rows=1 width=162) - Conds:RS_323._col1=RS_324._col0(Inner),Output:["_col2","_col3","_col4","_col5","_col7","_col9","_col10","_col11","_col12","_col13","_col14","_col15"] - <-Map 65 [SIMPLE_EDGE] - SHUFFLE [RS_324] - PartitionCols:_col0 - Select Operator [SEL_319] (rows=1 width=860) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] - Filter Operator [FIL_817] (rows=1 width=860) - predicate:false - Please refer to the previous TableScan [TS_6] - <-Reducer 56 [SIMPLE_EDGE] - SHUFFLE [RS_323] - PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_858] (rows=1 width=148) - Conds:RS_320._col0=RS_321._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col5","_col7"] - <-Map 28 [SIMPLE_EDGE] - SHUFFLE [RS_321] - PartitionCols:_col0 - Select Operator [SEL_316] (rows=1 width=1119) - Output:["_col0","_col1"] - Filter Operator [FIL_816] (rows=1 width=1119) - predicate:false - Please refer to the previous TableScan [TS_3] - <-Map 67 [SIMPLE_EDGE] - SHUFFLE [RS_320] - PartitionCols:_col0 - Select Operator [SEL_313] (rows=1 width=135) - Output:["_col0","_col1","_col2","_col3","_col4","_col5"] - Filter Operator [FIL_815] (rows=1 width=135) - predicate:false - Please refer to the previous TableScan [TS_45] - <-Union 27 [SIMPLE_EDGE] - <-Reducer 26 [CONTAINS] - Reduce Output Operator [RS_404] - PartitionCols:_col0 - Select Operator [SEL_353] (rows=348477374 width=88) - Output:["_col0","_col1","_col2"] - Group By Operator [GBY_352] (rows=348477374 width=88) + TableScan [TS_43] (rows=287989836 width=135) + default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:NONE,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 19 [SIMPLE_EDGE] + SHUFFLE [RS_133] + PartitionCols:_col0 + Select Operator [SEL_107] (rows=174233858 width=135) + Output:["_col0","_col7"] + Group By Operator [GBY_106] (rows=174233858 width=135) + 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 18 [SIMPLE_EDGE] + SHUFFLE [RS_105] + PartitionCols:_col0, _col1, _col2, _col3, _col4, _col5, _col6 + Group By Operator [GBY_104] (rows=348467716 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(_col7)"],keys:_col0, _col1, _col2, _col3, _col4, _col5, _col6 + Select Operator [SEL_102] (rows=348467716 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] + Merge Join Operator [MERGEJOIN_293] (rows=348467716 width=135) + Conds:RS_99._col1=RS_100._col0(Inner),Output:["_col2","_col3","_col4","_col5","_col9","_col10","_col11","_col12","_col13","_col14","_col15"] + <-Map 23 [SIMPLE_EDGE] + SHUFFLE [RS_100] + PartitionCols:_col0 + Select Operator [SEL_95] (rows=80000000 width=860) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] + Filter Operator [FIL_277] (rows=80000000 width=860) + predicate:(c_customer_sk is not null and c_customer_id is not null) + Please refer to the previous TableScan [TS_6] + <-Reducer 17 [SIMPLE_EDGE] + SHUFFLE [RS_99] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_292] (rows=316788826 width=135) + Conds:RS_96._col0=RS_97._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col5"] + <-Map 10 [SIMPLE_EDGE] + SHUFFLE [RS_97] + PartitionCols:_col0 + Select Operator [SEL_92] (rows=36524 width=1119) + Output:["_col0"] + Filter Operator [FIL_276] (rows=36524 width=1119) + predicate:((d_year = 2002) and d_date_sk is not null) + Please refer to the previous TableScan [TS_3] + <-Map 25 [SIMPLE_EDGE] + SHUFFLE [RS_96] + PartitionCols:_col0 + Select Operator [SEL_89] (rows=287989836 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + Filter Operator [FIL_275] (rows=287989836 width=135) + predicate:(cs_bill_customer_sk is not null and cs_sold_date_sk is not null) + Please refer to the previous TableScan [TS_43] + <-Reducer 22 [SIMPLE_EDGE] + SHUFFLE [RS_134] + PartitionCols:_col0 + Select Operator [SEL_128] (rows=348477374 width=88) + Output:["_col0","_col3","_col7"] + Group By Operator [GBY_127] (rows=348477374 width=88) + 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_126] + PartitionCols:_col0, _col1, _col2, _col3, _col4, _col5, _col6 + Group By Operator [GBY_125] (rows=696954748 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(_col7)"],keys:_col0, _col1, _col2, _col3, _col4, _col5, _col6 + Select Operator [SEL_123] (rows=696954748 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] + Merge Join Operator [MERGEJOIN_295] (rows=696954748 width=88) + Conds:RS_120._col1=RS_121._col0(Inner),Output:["_col2","_col3","_col4","_col5","_col9","_col10","_col11","_col12","_col13","_col14","_col15"] + <-Map 23 [SIMPLE_EDGE] + SHUFFLE [RS_121] + PartitionCols:_col0 + Select Operator [SEL_116] (rows=80000000 width=860) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] + Filter Operator [FIL_280] (rows=80000000 width=860) + predicate:(c_customer_sk is not null and c_customer_id is not null) + Please refer to the previous TableScan [TS_6] + <-Reducer 20 [SIMPLE_EDGE] + SHUFFLE [RS_120] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_294] (rows=633595212 width=88) + Conds:RS_117._col0=RS_118._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col5"] + <-Map 10 [SIMPLE_EDGE] + SHUFFLE [RS_118] + PartitionCols:_col0 + Select Operator [SEL_113] (rows=36524 width=1119) + Output:["_col0"] + Filter Operator [FIL_279] (rows=36524 width=1119) + predicate:((d_year = 2002) and d_date_sk is not null) + Please refer to the previous TableScan [TS_3] + <-Map 24 [SIMPLE_EDGE] + SHUFFLE [RS_117] + PartitionCols:_col0 + Select Operator [SEL_110] (rows=575995635 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + Filter Operator [FIL_278] (rows=575995635 width=88) + predicate:(ss_customer_sk is not null and ss_sold_date_sk is not null) + Please refer to the previous TableScan [TS_21] + <-Reducer 4 [SIMPLE_EDGE] + SHUFFLE [RS_129] + PartitionCols:_col0 + Select Operator [SEL_20] (rows=87121617 width=135) + Output:["_col0","_col7"] + Group By Operator [GBY_19] (rows=87121617 width=135) + 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_18] + PartitionCols:_col0, _col1, _col2, _col3, _col4, _col5, _col6 + Group By Operator [GBY_17] (rows=174243235 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(_col7)"],keys:_col0, _col1, _col2, _col3, _col4, _col5, _col6 + Select Operator [SEL_15] (rows=174243235 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] + Merge Join Operator [MERGEJOIN_285] (rows=174243235 width=135) + Conds:RS_12._col1=RS_13._col0(Inner),Output:["_col2","_col3","_col4","_col5","_col9","_col10","_col11","_col12","_col13","_col14","_col15"] + <-Map 23 [SIMPLE_EDGE] + SHUFFLE [RS_13] + PartitionCols:_col0 + Select Operator [SEL_8] (rows=80000000 width=860) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] + Filter Operator [FIL_265] (rows=80000000 width=860) + predicate:(c_customer_sk is not null and c_customer_id is not null) + Please refer to the previous TableScan [TS_6] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_12] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_284] (rows=158402938 width=135) + Conds:RS_9._col0=RS_10._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col5"] + <-Map 10 [SIMPLE_EDGE] + SHUFFLE [RS_10] + PartitionCols:_col0 + Select Operator [SEL_5] (rows=36524 width=1119) + Output:["_col0"] + Filter Operator [FIL_264] (rows=36524 width=1119) + predicate:((d_year = 2002) and d_date_sk is not null) + Please refer to the previous TableScan [TS_3] + <-Map 1 [SIMPLE_EDGE] + SHUFFLE [RS_9] + PartitionCols:_col0 + Select Operator [SEL_2] (rows=144002668 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + Filter Operator [FIL_263] (rows=144002668 width=135) + predicate:(ws_bill_customer_sk is not null and ws_sold_date_sk is not null) + TableScan [TS_0] (rows=144002668 width=135) + default@web_sales,web_sales,Tbl:COMPLETE,Col:NONE,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 9 [SIMPLE_EDGE] + SHUFFLE [RS_132] + PartitionCols:_col0 + Filter Operator [FIL_85] (rows=29040539 width=135) + predicate:(_col7 > 0) + Select Operator [SEL_282] (rows=87121617 width=135) + Output:["_col0","_col7"] + Group By Operator [GBY_84] (rows=87121617 width=135) 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_351] + <-Reducer 8 [SIMPLE_EDGE] + SHUFFLE [RS_83] PartitionCols:_col0, _col1, _col2, _col3, _col4, _col5, _col6 - Group By Operator [GBY_350] (rows=696954748 width=88) + Group By Operator [GBY_82] (rows=174243235 width=135) Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(_col7)"],keys:_col0, _col1, _col2, _col3, _col4, _col5, _col6 - Select Operator [SEL_348] (rows=696954748 width=88) + Select Operator [SEL_80] (rows=174243235 width=135) Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] - Merge Join Operator [MERGEJOIN_861] (rows=696954748 width=88) - Conds:RS_345._col1=RS_346._col0(Inner),Output:["_col2","_col3","_col4","_col5","_col9","_col10","_col11","_col12","_col13","_col14","_col15"] - <-Map 65 [SIMPLE_EDGE] - SHUFFLE [RS_346] + Merge Join Operator [MERGEJOIN_291] (rows=174243235 width=135) + Conds:RS_77._col1=RS_78._col0(Inner),Output:["_col2","_col3","_col4","_col5","_col9","_col10","_col11","_col12","_col13","_col14","_col15"] + <-Map 23 [SIMPLE_EDGE] + SHUFFLE [RS_78] PartitionCols:_col0 - Select Operator [SEL_341] (rows=80000000 width=860) + Select Operator [SEL_73] (rows=80000000 width=860) Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] - Filter Operator [FIL_820] (rows=80000000 width=860) + Filter Operator [FIL_274] (rows=80000000 width=860) predicate:(c_customer_sk is not null and c_customer_id is not null) Please refer to the previous TableScan [TS_6] - <-Reducer 24 [SIMPLE_EDGE] - SHUFFLE [RS_345] + <-Reducer 7 [SIMPLE_EDGE] + SHUFFLE [RS_77] PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_860] (rows=633595212 width=88) - Conds:RS_342._col0=RS_343._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col5"] - <-Map 28 [SIMPLE_EDGE] - SHUFFLE [RS_343] + Merge Join Operator [MERGEJOIN_290] (rows=158402938 width=135) + Conds:RS_74._col0=RS_75._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col5"] + <-Map 10 [SIMPLE_EDGE] + SHUFFLE [RS_75] PartitionCols:_col0 - Select Operator [SEL_338] (rows=36524 width=1119) + Select Operator [SEL_70] (rows=36524 width=1119) Output:["_col0"] - Filter Operator [FIL_819] (rows=36524 width=1119) - predicate:((d_year = 2002) and d_date_sk is not null) + Filter Operator [FIL_273] (rows=36524 width=1119) + predicate:((d_year = 2001) and d_date_sk is not null) Please refer to the previous TableScan [TS_3] <-Map 1 [SIMPLE_EDGE] - SHUFFLE [RS_342] + SHUFFLE [RS_74] PartitionCols:_col0 - Select Operator [SEL_335] (rows=575995635 width=88) + Select Operator [SEL_67] (rows=144002668 width=135) Output:["_col0","_col1","_col2","_col3","_col4","_col5"] - Filter Operator [FIL_818] (rows=575995635 width=88) - predicate:(ss_customer_sk is not null and ss_sold_date_sk is not null) + Filter Operator [FIL_272] (rows=144002668 width=135) + predicate:(ws_bill_customer_sk is not null and ws_sold_date_sk is not null) Please refer to the previous TableScan [TS_0] - <-Reducer 61 [CONTAINS] - Reduce Output Operator [RS_404] - PartitionCols:_col0 - Select Operator [SEL_374] (rows=1 width=162) - Output:["_col0","_col1","_col2"] - Group By Operator [GBY_373] (rows=1 width=162) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4, KEY._col5, KEY._col6, KEY._col7 - <-Reducer 60 [SIMPLE_EDGE] - SHUFFLE [RS_372] - PartitionCols:_col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7 - Group By Operator [GBY_371] (rows=1 width=162) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8"],aggregations:["sum(_col8)"],keys:_col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7 - Select Operator [SEL_369] (rows=1 width=162) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8"] - Merge Join Operator [MERGEJOIN_863] (rows=1 width=162) - Conds:RS_366._col1=RS_367._col0(Inner),Output:["_col2","_col3","_col4","_col5","_col7","_col9","_col10","_col11","_col12","_col13","_col14","_col15"] - <-Map 65 [SIMPLE_EDGE] - SHUFFLE [RS_367] - PartitionCols:_col0 - Select Operator [SEL_362] (rows=1 width=860) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] - Filter Operator [FIL_823] (rows=1 width=860) - predicate:false - Please refer to the previous TableScan [TS_6] - <-Reducer 59 [SIMPLE_EDGE] - SHUFFLE [RS_366] - PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_862] (rows=1 width=148) - Conds:RS_363._col0=RS_364._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col5","_col7"] - <-Map 28 [SIMPLE_EDGE] - SHUFFLE [RS_364] - PartitionCols:_col0 - Select Operator [SEL_359] (rows=1 width=1119) - Output:["_col0","_col1"] - Filter Operator [FIL_822] (rows=1 width=1119) - predicate:false - Please refer to the previous TableScan [TS_3] - <-Map 66 [SIMPLE_EDGE] - SHUFFLE [RS_363] - PartitionCols:_col0 - Select Operator [SEL_356] (rows=1 width=135) - Output:["_col0","_col1","_col2","_col3","_col4","_col5"] - Filter Operator [FIL_821] (rows=1 width=135) - predicate:false - Please refer to the previous TableScan [TS_22] - <-Reducer 64 [CONTAINS] - Reduce Output Operator [RS_404] - PartitionCols:_col0 - Select Operator [SEL_397] (rows=1 width=162) - Output:["_col0","_col1","_col2"] - Group By Operator [GBY_396] (rows=1 width=162) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4, KEY._col5, KEY._col6, KEY._col7 - <-Reducer 63 [SIMPLE_EDGE] - SHUFFLE [RS_395] - PartitionCols:_col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7 - Group By Operator [GBY_394] (rows=1 width=162) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8"],aggregations:["sum(_col8)"],keys:_col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7 - Select Operator [SEL_392] (rows=1 width=162) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8"] - Merge Join Operator [MERGEJOIN_865] (rows=1 width=162) - Conds:RS_389._col1=RS_390._col0(Inner),Output:["_col2","_col3","_col4","_col5","_col7","_col9","_col10","_col11","_col12","_col13","_col14","_col15"] - <-Map 65 [SIMPLE_EDGE] - SHUFFLE [RS_390] - PartitionCols:_col0 - Select Operator [SEL_385] (rows=1 width=860) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] - Filter Operator [FIL_826] (rows=1 width=860) - predicate:false - Please refer to the previous TableScan [TS_6] - <-Reducer 62 [SIMPLE_EDGE] - SHUFFLE [RS_389] - PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_864] (rows=1 width=148) - Conds:RS_386._col0=RS_387._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col5","_col7"] - <-Map 28 [SIMPLE_EDGE] - SHUFFLE [RS_387] - PartitionCols:_col0 - Select Operator [SEL_382] (rows=1 width=1119) - Output:["_col0","_col1"] - Filter Operator [FIL_825] (rows=1 width=1119) - predicate:false - Please refer to the previous TableScan [TS_3] - <-Map 67 [SIMPLE_EDGE] - SHUFFLE [RS_386] - PartitionCols:_col0 - Select Operator [SEL_379] (rows=1 width=135) - Output:["_col0","_col1","_col2","_col3","_col4","_col5"] - Filter Operator [FIL_824] (rows=1 width=135) - predicate:false - Please refer to the previous TableScan [TS_45] - <-Union 5 [SIMPLE_EDGE] - <-Reducer 31 [CONTAINS] - Reduce Output Operator [RS_399] - PartitionCols:_col0 - Select Operator [SEL_42] (rows=1 width=162) - Output:["_col0","_col1"] - Group By Operator [GBY_41] (rows=1 width=162) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4, KEY._col5, KEY._col6, KEY._col7 - <-Reducer 30 [SIMPLE_EDGE] - SHUFFLE [RS_40] - PartitionCols:_col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7 - Group By Operator [GBY_39] (rows=1 width=162) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8"],aggregations:["sum(_col8)"],keys:_col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7 - Select Operator [SEL_37] (rows=1 width=162) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8"] - Merge Join Operator [MERGEJOIN_833] (rows=1 width=162) - Conds:RS_34._col1=RS_35._col0(Inner),Output:["_col2","_col3","_col4","_col5","_col7","_col9","_col10","_col11","_col12","_col13","_col14","_col15"] - <-Map 65 [SIMPLE_EDGE] - SHUFFLE [RS_35] - PartitionCols:_col0 - Select Operator [SEL_30] (rows=1 width=860) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] - Filter Operator [FIL_778] (rows=1 width=860) - predicate:false - Please refer to the previous TableScan [TS_6] - <-Reducer 29 [SIMPLE_EDGE] - SHUFFLE [RS_34] - PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_832] (rows=1 width=148) - Conds:RS_31._col0=RS_32._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col5","_col7"] - <-Map 28 [SIMPLE_EDGE] - SHUFFLE [RS_32] - PartitionCols:_col0 - Select Operator [SEL_27] (rows=1 width=1119) - Output:["_col0","_col1"] - Filter Operator [FIL_777] (rows=1 width=1119) - predicate:false - Please refer to the previous TableScan [TS_3] - <-Map 66 [SIMPLE_EDGE] - SHUFFLE [RS_31] - PartitionCols:_col0 - Select Operator [SEL_24] (rows=1 width=135) - Output:["_col0","_col1","_col2","_col3","_col4","_col5"] - Filter Operator [FIL_776] (rows=1 width=135) - predicate:false - Please refer to the previous TableScan [TS_22] - <-Reducer 34 [CONTAINS] - Reduce Output Operator [RS_399] - PartitionCols:_col0 - Select Operator [SEL_65] (rows=1 width=162) - Output:["_col0","_col1"] - Group By Operator [GBY_64] (rows=1 width=162) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4, KEY._col5, KEY._col6, KEY._col7 - <-Reducer 33 [SIMPLE_EDGE] - SHUFFLE [RS_63] - PartitionCols:_col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7 - Group By Operator [GBY_62] (rows=1 width=162) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8"],aggregations:["sum(_col8)"],keys:_col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7 - Select Operator [SEL_60] (rows=1 width=162) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8"] - Merge Join Operator [MERGEJOIN_835] (rows=1 width=162) - Conds:RS_57._col1=RS_58._col0(Inner),Output:["_col2","_col3","_col4","_col5","_col7","_col9","_col10","_col11","_col12","_col13","_col14","_col15"] - <-Map 65 [SIMPLE_EDGE] - SHUFFLE [RS_58] - PartitionCols:_col0 - Select Operator [SEL_53] (rows=1 width=860) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] - Filter Operator [FIL_781] (rows=1 width=860) - predicate:false - Please refer to the previous TableScan [TS_6] - <-Reducer 32 [SIMPLE_EDGE] - SHUFFLE [RS_57] - PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_834] (rows=1 width=148) - Conds:RS_54._col0=RS_55._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col5","_col7"] - <-Map 28 [SIMPLE_EDGE] - SHUFFLE [RS_55] - PartitionCols:_col0 - Select Operator [SEL_50] (rows=1 width=1119) - Output:["_col0","_col1"] - Filter Operator [FIL_780] (rows=1 width=1119) - predicate:false - Please refer to the previous TableScan [TS_3] - <-Map 67 [SIMPLE_EDGE] - SHUFFLE [RS_54] - PartitionCols:_col0 - Select Operator [SEL_47] (rows=1 width=135) - Output:["_col0","_col1","_col2","_col3","_col4","_col5"] - Filter Operator [FIL_779] (rows=1 width=135) - predicate:false - Please refer to the previous TableScan [TS_45] - <-Reducer 4 [CONTAINS] - Reduce Output Operator [RS_399] - PartitionCols:_col0 - Select Operator [SEL_21] (rows=116159124 width=88) - Output:["_col0","_col1"] - Filter Operator [FIL_20] (rows=116159124 width=88) - predicate:(_col7 > 0) - Select Operator [SEL_829] (rows=348477374 width=88) - Output:["_col0","_col7"] - Group By Operator [GBY_19] (rows=348477374 width=88) - 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_18] - PartitionCols:_col0, _col1, _col2, _col3, _col4, _col5, _col6 - Group By Operator [GBY_17] (rows=696954748 width=88) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(_col7)"],keys:_col0, _col1, _col2, _col3, _col4, _col5, _col6 - Select Operator [SEL_15] (rows=696954748 width=88) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] - Merge Join Operator [MERGEJOIN_831] (rows=696954748 width=88) - Conds:RS_12._col1=RS_13._col0(Inner),Output:["_col2","_col3","_col4","_col5","_col9","_col10","_col11","_col12","_col13","_col14","_col15"] - <-Map 65 [SIMPLE_EDGE] - SHUFFLE [RS_13] - PartitionCols:_col0 - Select Operator [SEL_8] (rows=80000000 width=860) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] - Filter Operator [FIL_775] (rows=80000000 width=860) - predicate:(c_customer_sk is not null and c_customer_id is not null) - Please refer to the previous TableScan [TS_6] - <-Reducer 2 [SIMPLE_EDGE] - SHUFFLE [RS_12] - PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_830] (rows=633595212 width=88) - Conds:RS_9._col0=RS_10._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col5"] - <-Map 28 [SIMPLE_EDGE] - SHUFFLE [RS_10] - PartitionCols:_col0 - Select Operator [SEL_5] (rows=36524 width=1119) - Output:["_col0"] - Filter Operator [FIL_774] (rows=36524 width=1119) - predicate:((d_year = 2001) and d_date_sk is not null) - Please refer to the previous TableScan [TS_3] - <-Map 1 [SIMPLE_EDGE] - SHUFFLE [RS_9] - PartitionCols:_col0 - Select Operator [SEL_2] (rows=575995635 width=88) - Output:["_col0","_col1","_col2","_col3","_col4","_col5"] - Filter Operator [FIL_773] (rows=575995635 width=88) - predicate:(ss_customer_sk is not null and ss_sold_date_sk is not null) - Please refer to the previous TableScan [TS_0] diff --git a/ql/src/test/results/clientpositive/perf/query74.q.out b/ql/src/test/results/clientpositive/perf/query74.q.out index bb4a71e6ce..50d97e7056 100644 --- a/ql/src/test/results/clientpositive/perf/query74.q.out +++ b/ql/src/test/results/clientpositive/perf/query74.q.out @@ -121,409 +121,217 @@ POSTHOOK: type: QUERY Plan optimized by CBO. Vertex dependency in root stage -Reducer 10 <- Reducer 9 (SIMPLE_EDGE), Union 11 (CONTAINS) -Reducer 12 <- Map 1 (SIMPLE_EDGE), Map 20 (SIMPLE_EDGE) -Reducer 13 <- Map 33 (SIMPLE_EDGE), Reducer 12 (SIMPLE_EDGE) -Reducer 14 <- Reducer 13 (SIMPLE_EDGE), Union 15 (CONTAINS) -Reducer 16 <- Map 1 (SIMPLE_EDGE), Map 20 (SIMPLE_EDGE) -Reducer 17 <- Map 33 (SIMPLE_EDGE), Reducer 16 (SIMPLE_EDGE) -Reducer 18 <- Reducer 17 (SIMPLE_EDGE), Union 19 (CONTAINS) -Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 20 (SIMPLE_EDGE) -Reducer 21 <- Map 20 (SIMPLE_EDGE), Map 34 (SIMPLE_EDGE) -Reducer 22 <- Map 33 (SIMPLE_EDGE), Reducer 21 (SIMPLE_EDGE) -Reducer 23 <- Reducer 22 (SIMPLE_EDGE), Union 5 (CONTAINS) -Reducer 24 <- Map 20 (SIMPLE_EDGE), Map 34 (SIMPLE_EDGE) -Reducer 25 <- Map 33 (SIMPLE_EDGE), Reducer 24 (SIMPLE_EDGE) -Reducer 26 <- Reducer 25 (SIMPLE_EDGE), Union 11 (CONTAINS) -Reducer 27 <- Map 20 (SIMPLE_EDGE), Map 34 (SIMPLE_EDGE) -Reducer 28 <- Map 33 (SIMPLE_EDGE), Reducer 27 (SIMPLE_EDGE) -Reducer 29 <- Reducer 28 (SIMPLE_EDGE), Union 15 (CONTAINS) -Reducer 3 <- Map 33 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) -Reducer 30 <- Map 20 (SIMPLE_EDGE), Map 34 (SIMPLE_EDGE) -Reducer 31 <- Map 33 (SIMPLE_EDGE), Reducer 30 (SIMPLE_EDGE) -Reducer 32 <- Reducer 31 (SIMPLE_EDGE), Union 19 (CONTAINS) -Reducer 4 <- Reducer 3 (SIMPLE_EDGE), Union 5 (CONTAINS) -Reducer 6 <- Union 11 (SIMPLE_EDGE), Union 15 (SIMPLE_EDGE), Union 19 (SIMPLE_EDGE), Union 5 (SIMPLE_EDGE) -Reducer 7 <- Reducer 6 (SIMPLE_EDGE) -Reducer 8 <- Map 1 (SIMPLE_EDGE), Map 20 (SIMPLE_EDGE) -Reducer 9 <- Map 33 (SIMPLE_EDGE), Reducer 8 (SIMPLE_EDGE) +Reducer 11 <- Map 10 (SIMPLE_EDGE), Map 18 (SIMPLE_EDGE) +Reducer 12 <- Map 17 (SIMPLE_EDGE), Reducer 11 (SIMPLE_EDGE) +Reducer 13 <- Reducer 12 (SIMPLE_EDGE) +Reducer 14 <- Map 10 (SIMPLE_EDGE), Map 18 (SIMPLE_EDGE) +Reducer 15 <- Map 17 (SIMPLE_EDGE), Reducer 14 (SIMPLE_EDGE) +Reducer 16 <- Reducer 15 (SIMPLE_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 10 (SIMPLE_EDGE) +Reducer 3 <- Map 17 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) +Reducer 4 <- Reducer 3 (SIMPLE_EDGE) +Reducer 5 <- Reducer 13 (SIMPLE_EDGE), Reducer 16 (SIMPLE_EDGE), Reducer 4 (SIMPLE_EDGE), Reducer 9 (SIMPLE_EDGE) +Reducer 6 <- Reducer 5 (SIMPLE_EDGE) +Reducer 7 <- Map 1 (SIMPLE_EDGE), Map 10 (SIMPLE_EDGE) +Reducer 8 <- Map 17 (SIMPLE_EDGE), Reducer 7 (SIMPLE_EDGE) +Reducer 9 <- Reducer 8 (SIMPLE_EDGE) Stage-0 Fetch Operator limit:100 Stage-1 - Reducer 7 - File Output Operator [FS_184] - Limit [LIM_183] (rows=100 width=88) + Reducer 6 + File Output Operator [FS_92] + Limit [LIM_91] (rows=100 width=88) Number of rows:100 - Select Operator [SEL_182] (rows=574987681 width=88) + Select Operator [SEL_90] (rows=574987679 width=88) Output:["_col0","_col1","_col2"] - <-Reducer 6 [SIMPLE_EDGE] - SHUFFLE [RS_181] - Select Operator [SEL_180] (rows=574987681 width=88) + <-Reducer 5 [SIMPLE_EDGE] + SHUFFLE [RS_89] + Select Operator [SEL_88] (rows=574987679 width=88) Output:["_col0","_col1","_col2"] - Filter Operator [FIL_179] (rows=574987681 width=88) - predicate:CASE WHEN ((_col1 > 0)) THEN (CASE WHEN ((_col3 > 0)) THEN (((_col5 / _col3) > (_col9 / _col1))) ELSE ((null > (_col9 / _col1))) END) ELSE (CASE WHEN ((_col3 > 0)) THEN (((_col5 / _col3) > null)) ELSE (null) END) END - Merge Join Operator [MERGEJOIN_339] (rows=1149975362 width=88) - Conds:Union 5._col0=Union 11._col0(Inner),Union 5._col0=Union 15._col0(Inner),Union 5._col0=Union 19._col0(Inner),Output:["_col1","_col3","_col5","_col6","_col7","_col8","_col9"] - <-Union 11 [SIMPLE_EDGE] - <-Reducer 10 [CONTAINS] - Reduce Output Operator [RS_175] - PartitionCols:_col0 - Select Operator [SEL_63] (rows=1 width=105) - Output:["_col0","_col1"] - Group By Operator [GBY_62] (rows=1 width=105) + Filter Operator [FIL_87] (rows=574987679 width=88) + predicate:CASE WHEN ((_col9 > 0)) THEN (CASE WHEN ((_col14 > 0)) THEN (((_col4 / _col14) > (_col19 / _col9))) ELSE ((null > (_col19 / _col9))) END) ELSE (CASE WHEN ((_col14 > 0)) THEN (((_col4 / _col14) > null)) ELSE (null) END) END + Merge Join Operator [MERGEJOIN_171] (rows=1149975359 width=88) + Conds:RS_82._col0=RS_83._col0(Inner),RS_83._col0=RS_84._col0(Inner),RS_83._col0=RS_85._col0(Inner),Output:["_col4","_col9","_col14","_col15","_col16","_col17","_col19"] + <-Reducer 13 [SIMPLE_EDGE] + SHUFFLE [RS_83] + PartitionCols:_col0 + Filter Operator [FIL_39] (rows=116159124 width=88) + predicate:(_col4 > 0) + Select Operator [SEL_162] (rows=348477374 width=88) + Output:["_col0","_col4"] + Group By Operator [GBY_38] (rows=348477374 width=88) Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["max(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3 - <-Reducer 9 [SIMPLE_EDGE] - SHUFFLE [RS_61] + <-Reducer 12 [SIMPLE_EDGE] + SHUFFLE [RS_37] PartitionCols:_col0, _col1, _col2, _col3 - Group By Operator [GBY_60] (rows=1 width=105) - Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["max(_col2)"],keys:_col6, _col4, _col7, _col8 - Merge Join Operator [MERGEJOIN_328] (rows=1 width=105) - Conds:RS_56._col1=RS_57._col0(Inner),Output:["_col2","_col4","_col6","_col7","_col8"] - <-Map 33 [SIMPLE_EDGE] - SHUFFLE [RS_57] + Group By Operator [GBY_36] (rows=696954748 width=88) + Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["max(_col2)"],keys:_col6, _col7, _col8, _col4 + Merge Join Operator [MERGEJOIN_166] (rows=696954748 width=88) + Conds:RS_32._col1=RS_33._col0(Inner),Output:["_col2","_col4","_col6","_col7","_col8"] + <-Map 17 [SIMPLE_EDGE] + SHUFFLE [RS_33] PartitionCols:_col0 - Select Operator [SEL_52] (rows=1 width=860) + Select Operator [SEL_28] (rows=80000000 width=860) Output:["_col0","_col1","_col2","_col3"] - Filter Operator [FIL_305] (rows=1 width=860) - predicate:false + Filter Operator [FIL_154] (rows=80000000 width=860) + predicate:(c_customer_sk is not null and c_customer_id is not null) TableScan [TS_6] (rows=80000000 width=860) default@customer,customer,Tbl:COMPLETE,Col:NONE,Output:["c_customer_sk","c_customer_id","c_first_name","c_last_name"] - <-Reducer 8 [SIMPLE_EDGE] - SHUFFLE [RS_56] + <-Reducer 11 [SIMPLE_EDGE] + SHUFFLE [RS_32] PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_327] (rows=1 width=96) - Conds:RS_53._col0=RS_54._col0(Inner),Output:["_col1","_col2","_col4"] - <-Map 20 [SIMPLE_EDGE] - SHUFFLE [RS_54] + Merge Join Operator [MERGEJOIN_165] (rows=633595212 width=88) + Conds:RS_29._col0=RS_30._col0(Inner),Output:["_col1","_col2","_col4"] + <-Map 10 [SIMPLE_EDGE] + SHUFFLE [RS_30] PartitionCols:_col0 - Select Operator [SEL_49] (rows=1 width=1119) + Select Operator [SEL_25] (rows=18262 width=1119) Output:["_col0","_col1"] - Filter Operator [FIL_304] (rows=1 width=1119) - predicate:false + Filter Operator [FIL_153] (rows=18262 width=1119) + predicate:((d_year) IN (2001, 2002) and (d_year = 2001) and d_date_sk is not null) TableScan [TS_3] (rows=73049 width=1119) default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year"] - <-Map 1 [SIMPLE_EDGE] - SHUFFLE [RS_53] + <-Map 18 [SIMPLE_EDGE] + SHUFFLE [RS_29] PartitionCols:_col0 - Select Operator [SEL_46] (rows=1 width=88) + Select Operator [SEL_22] (rows=575995635 width=88) Output:["_col0","_col1","_col2"] - Filter Operator [FIL_303] (rows=1 width=88) - predicate:false - TableScan [TS_0] (rows=575995635 width=88) + Filter Operator [FIL_152] (rows=575995635 width=88) + predicate:(ss_customer_sk is not null and ss_sold_date_sk is not null) + TableScan [TS_20] (rows=575995635 width=88) default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_customer_sk","ss_net_paid"] - <-Reducer 26 [CONTAINS] - Reduce Output Operator [RS_175] - PartitionCols:_col0 - Select Operator [SEL_85] (rows=29040539 width=135) - Output:["_col0","_col1"] - Filter Operator [FIL_84] (rows=29040539 width=135) - predicate:(_col4 > 0) - Select Operator [SEL_321] (rows=87121617 width=135) - Output:["_col0","_col4"] - Group By Operator [GBY_83] (rows=87121617 width=135) - Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["max(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3 - <-Reducer 25 [SIMPLE_EDGE] - SHUFFLE [RS_82] - PartitionCols:_col0, _col1, _col2, _col3 - Group By Operator [GBY_81] (rows=174243235 width=135) - Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["max(_col2)"],keys:_col6, _col7, _col8, _col4 - Merge Join Operator [MERGEJOIN_330] (rows=174243235 width=135) - Conds:RS_77._col1=RS_78._col0(Inner),Output:["_col2","_col4","_col6","_col7","_col8"] - <-Map 33 [SIMPLE_EDGE] - SHUFFLE [RS_78] - PartitionCols:_col0 - Select Operator [SEL_73] (rows=80000000 width=860) - Output:["_col0","_col1","_col2","_col3"] - Filter Operator [FIL_308] (rows=80000000 width=860) - predicate:(c_customer_sk is not null and c_customer_id is not null) - Please refer to the previous TableScan [TS_6] - <-Reducer 24 [SIMPLE_EDGE] - SHUFFLE [RS_77] - PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_329] (rows=158402938 width=135) - Conds:RS_74._col0=RS_75._col0(Inner),Output:["_col1","_col2","_col4"] - <-Map 20 [SIMPLE_EDGE] - SHUFFLE [RS_75] - PartitionCols:_col0 - Select Operator [SEL_70] (rows=18262 width=1119) - Output:["_col0","_col1"] - Filter Operator [FIL_307] (rows=18262 width=1119) - predicate:((d_year) IN (2001, 2002) and (d_year = 2001) and d_date_sk is not null) - Please refer to the previous TableScan [TS_3] - <-Map 34 [SIMPLE_EDGE] - SHUFFLE [RS_74] - PartitionCols:_col0 - Select Operator [SEL_67] (rows=144002668 width=135) - Output:["_col0","_col1","_col2"] - Filter Operator [FIL_306] (rows=144002668 width=135) - predicate:(ws_bill_customer_sk is not null and ws_sold_date_sk is not null) - TableScan [TS_21] (rows=144002668 width=135) - default@web_sales,web_sales,Tbl:COMPLETE,Col:NONE,Output:["ws_sold_date_sk","ws_bill_customer_sk","ws_net_paid"] - <-Union 15 [SIMPLE_EDGE] - <-Reducer 14 [CONTAINS] - Reduce Output Operator [RS_176] - PartitionCols:_col0 - Select Operator [SEL_107] (rows=1 width=105) - Output:["_col0","_col1"] - Group By Operator [GBY_106] (rows=1 width=105) + <-Reducer 16 [SIMPLE_EDGE] + SHUFFLE [RS_85] + PartitionCols:_col0 + Select Operator [SEL_81] (rows=348477374 width=88) + Output:["_col0","_col1","_col2","_col4"] + Group By Operator [GBY_80] (rows=348477374 width=88) + Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["max(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3 + <-Reducer 15 [SIMPLE_EDGE] + SHUFFLE [RS_79] + PartitionCols:_col0, _col1, _col2, _col3 + Group By Operator [GBY_78] (rows=696954748 width=88) + Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["max(_col2)"],keys:_col6, _col7, _col8, _col4 + Merge Join Operator [MERGEJOIN_170] (rows=696954748 width=88) + Conds:RS_74._col1=RS_75._col0(Inner),Output:["_col2","_col4","_col6","_col7","_col8"] + <-Map 17 [SIMPLE_EDGE] + SHUFFLE [RS_75] + PartitionCols:_col0 + Select Operator [SEL_70] (rows=80000000 width=860) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_160] (rows=80000000 width=860) + predicate:(c_customer_sk is not null and c_customer_id is not null) + Please refer to the previous TableScan [TS_6] + <-Reducer 14 [SIMPLE_EDGE] + SHUFFLE [RS_74] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_169] (rows=633595212 width=88) + Conds:RS_71._col0=RS_72._col0(Inner),Output:["_col1","_col2","_col4"] + <-Map 10 [SIMPLE_EDGE] + SHUFFLE [RS_72] + PartitionCols:_col0 + Select Operator [SEL_67] (rows=18262 width=1119) + Output:["_col0","_col1"] + Filter Operator [FIL_159] (rows=18262 width=1119) + predicate:((d_year) IN (2001, 2002) and (d_year = 2002) and d_date_sk is not null) + Please refer to the previous TableScan [TS_3] + <-Map 18 [SIMPLE_EDGE] + SHUFFLE [RS_71] + PartitionCols:_col0 + Select Operator [SEL_64] (rows=575995635 width=88) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_158] (rows=575995635 width=88) + predicate:(ss_customer_sk is not null and ss_sold_date_sk is not null) + Please refer to the previous TableScan [TS_20] + <-Reducer 4 [SIMPLE_EDGE] + SHUFFLE [RS_82] + PartitionCols:_col0 + Select Operator [SEL_19] (rows=87121617 width=135) + Output:["_col0","_col4"] + Group By Operator [GBY_18] (rows=87121617 width=135) + Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["max(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3 + <-Reducer 3 [SIMPLE_EDGE] + SHUFFLE [RS_17] + PartitionCols:_col0, _col1, _col2, _col3 + Group By Operator [GBY_16] (rows=174243235 width=135) + Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["max(_col2)"],keys:_col6, _col7, _col8, _col4 + Merge Join Operator [MERGEJOIN_164] (rows=174243235 width=135) + Conds:RS_12._col1=RS_13._col0(Inner),Output:["_col2","_col4","_col6","_col7","_col8"] + <-Map 17 [SIMPLE_EDGE] + SHUFFLE [RS_13] + PartitionCols:_col0 + Select Operator [SEL_8] (rows=80000000 width=860) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_151] (rows=80000000 width=860) + predicate:(c_customer_sk is not null and c_customer_id is not null) + Please refer to the previous TableScan [TS_6] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_12] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_163] (rows=158402938 width=135) + Conds:RS_9._col0=RS_10._col0(Inner),Output:["_col1","_col2","_col4"] + <-Map 10 [SIMPLE_EDGE] + SHUFFLE [RS_10] + PartitionCols:_col0 + Select Operator [SEL_5] (rows=18262 width=1119) + Output:["_col0","_col1"] + Filter Operator [FIL_150] (rows=18262 width=1119) + predicate:((d_year) IN (2001, 2002) and (d_year = 2002) and d_date_sk is not null) + Please refer to the previous TableScan [TS_3] + <-Map 1 [SIMPLE_EDGE] + SHUFFLE [RS_9] + PartitionCols:_col0 + Select Operator [SEL_2] (rows=144002668 width=135) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_149] (rows=144002668 width=135) + predicate:(ws_bill_customer_sk is not null and ws_sold_date_sk is not null) + TableScan [TS_0] (rows=144002668 width=135) + default@web_sales,web_sales,Tbl:COMPLETE,Col:NONE,Output:["ws_sold_date_sk","ws_bill_customer_sk","ws_net_paid"] + <-Reducer 9 [SIMPLE_EDGE] + SHUFFLE [RS_84] + PartitionCols:_col0 + Filter Operator [FIL_60] (rows=29040539 width=135) + predicate:(_col4 > 0) + Select Operator [SEL_161] (rows=87121617 width=135) + Output:["_col0","_col4"] + Group By Operator [GBY_59] (rows=87121617 width=135) Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["max(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3 - <-Reducer 13 [SIMPLE_EDGE] - SHUFFLE [RS_105] + <-Reducer 8 [SIMPLE_EDGE] + SHUFFLE [RS_58] PartitionCols:_col0, _col1, _col2, _col3 - Group By Operator [GBY_104] (rows=1 width=105) - Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["max(_col2)"],keys:_col6, _col4, _col7, _col8 - Merge Join Operator [MERGEJOIN_332] (rows=1 width=105) - Conds:RS_100._col1=RS_101._col0(Inner),Output:["_col2","_col4","_col6","_col7","_col8"] - <-Map 33 [SIMPLE_EDGE] - SHUFFLE [RS_101] - PartitionCols:_col0 - Select Operator [SEL_96] (rows=1 width=860) - Output:["_col0","_col1","_col2","_col3"] - Filter Operator [FIL_311] (rows=1 width=860) - predicate:false - Please refer to the previous TableScan [TS_6] - <-Reducer 12 [SIMPLE_EDGE] - SHUFFLE [RS_100] - PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_331] (rows=1 width=96) - Conds:RS_97._col0=RS_98._col0(Inner),Output:["_col1","_col2","_col4"] - <-Map 20 [SIMPLE_EDGE] - SHUFFLE [RS_98] - PartitionCols:_col0 - Select Operator [SEL_93] (rows=1 width=1119) - Output:["_col0","_col1"] - Filter Operator [FIL_310] (rows=1 width=1119) - predicate:false - Please refer to the previous TableScan [TS_3] - <-Map 1 [SIMPLE_EDGE] - SHUFFLE [RS_97] - PartitionCols:_col0 - Select Operator [SEL_90] (rows=1 width=88) - Output:["_col0","_col1","_col2"] - Filter Operator [FIL_309] (rows=1 width=88) - predicate:false - Please refer to the previous TableScan [TS_0] - <-Reducer 29 [CONTAINS] - Reduce Output Operator [RS_176] - PartitionCols:_col0 - Select Operator [SEL_128] (rows=87121617 width=135) - Output:["_col0","_col1"] - Group By Operator [GBY_127] (rows=87121617 width=135) - Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["max(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3 - <-Reducer 28 [SIMPLE_EDGE] - SHUFFLE [RS_126] - PartitionCols:_col0, _col1, _col2, _col3 - Group By Operator [GBY_125] (rows=174243235 width=135) + Group By Operator [GBY_57] (rows=174243235 width=135) Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["max(_col2)"],keys:_col6, _col7, _col8, _col4 - Merge Join Operator [MERGEJOIN_334] (rows=174243235 width=135) - Conds:RS_121._col1=RS_122._col0(Inner),Output:["_col2","_col4","_col6","_col7","_col8"] - <-Map 33 [SIMPLE_EDGE] - SHUFFLE [RS_122] + Merge Join Operator [MERGEJOIN_168] (rows=174243235 width=135) + Conds:RS_53._col1=RS_54._col0(Inner),Output:["_col2","_col4","_col6","_col7","_col8"] + <-Map 17 [SIMPLE_EDGE] + SHUFFLE [RS_54] PartitionCols:_col0 - Select Operator [SEL_117] (rows=80000000 width=860) + Select Operator [SEL_49] (rows=80000000 width=860) Output:["_col0","_col1","_col2","_col3"] - Filter Operator [FIL_314] (rows=80000000 width=860) + Filter Operator [FIL_157] (rows=80000000 width=860) predicate:(c_customer_sk is not null and c_customer_id is not null) Please refer to the previous TableScan [TS_6] - <-Reducer 27 [SIMPLE_EDGE] - SHUFFLE [RS_121] + <-Reducer 7 [SIMPLE_EDGE] + SHUFFLE [RS_53] PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_333] (rows=158402938 width=135) - Conds:RS_118._col0=RS_119._col0(Inner),Output:["_col1","_col2","_col4"] - <-Map 20 [SIMPLE_EDGE] - SHUFFLE [RS_119] + Merge Join Operator [MERGEJOIN_167] (rows=158402938 width=135) + Conds:RS_50._col0=RS_51._col0(Inner),Output:["_col1","_col2","_col4"] + <-Map 10 [SIMPLE_EDGE] + SHUFFLE [RS_51] PartitionCols:_col0 - Select Operator [SEL_114] (rows=18262 width=1119) + Select Operator [SEL_46] (rows=18262 width=1119) Output:["_col0","_col1"] - Filter Operator [FIL_313] (rows=18262 width=1119) - predicate:((d_year) IN (2001, 2002) and (d_year = 2002) and d_date_sk is not null) - Please refer to the previous TableScan [TS_3] - <-Map 34 [SIMPLE_EDGE] - SHUFFLE [RS_118] - PartitionCols:_col0 - Select Operator [SEL_111] (rows=144002668 width=135) - Output:["_col0","_col1","_col2"] - Filter Operator [FIL_312] (rows=144002668 width=135) - predicate:(ws_bill_customer_sk is not null and ws_sold_date_sk is not null) - Please refer to the previous TableScan [TS_21] - <-Union 19 [SIMPLE_EDGE] - <-Reducer 18 [CONTAINS] - Reduce Output Operator [RS_177] - PartitionCols:_col0 - Select Operator [SEL_150] (rows=348477374 width=88) - Output:["_col0","_col1","_col2","_col3"] - Group By Operator [GBY_149] (rows=348477374 width=88) - Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["max(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3 - <-Reducer 17 [SIMPLE_EDGE] - SHUFFLE [RS_148] - PartitionCols:_col0, _col1, _col2, _col3 - Group By Operator [GBY_147] (rows=696954748 width=88) - Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["max(_col2)"],keys:_col6, _col7, _col8, _col4 - Merge Join Operator [MERGEJOIN_336] (rows=696954748 width=88) - Conds:RS_143._col1=RS_144._col0(Inner),Output:["_col2","_col4","_col6","_col7","_col8"] - <-Map 33 [SIMPLE_EDGE] - SHUFFLE [RS_144] - PartitionCols:_col0 - Select Operator [SEL_139] (rows=80000000 width=860) - Output:["_col0","_col1","_col2","_col3"] - Filter Operator [FIL_317] (rows=80000000 width=860) - predicate:(c_customer_sk is not null and c_customer_id is not null) - Please refer to the previous TableScan [TS_6] - <-Reducer 16 [SIMPLE_EDGE] - SHUFFLE [RS_143] - PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_335] (rows=633595212 width=88) - Conds:RS_140._col0=RS_141._col0(Inner),Output:["_col1","_col2","_col4"] - <-Map 20 [SIMPLE_EDGE] - SHUFFLE [RS_141] - PartitionCols:_col0 - Select Operator [SEL_136] (rows=18262 width=1119) - Output:["_col0","_col1"] - Filter Operator [FIL_316] (rows=18262 width=1119) - predicate:((d_year) IN (2001, 2002) and (d_year = 2002) and d_date_sk is not null) + Filter Operator [FIL_156] (rows=18262 width=1119) + predicate:((d_year) IN (2001, 2002) and (d_year = 2001) and d_date_sk is not null) Please refer to the previous TableScan [TS_3] <-Map 1 [SIMPLE_EDGE] - SHUFFLE [RS_140] + SHUFFLE [RS_50] PartitionCols:_col0 - Select Operator [SEL_133] (rows=575995635 width=88) + Select Operator [SEL_43] (rows=144002668 width=135) Output:["_col0","_col1","_col2"] - Filter Operator [FIL_315] (rows=575995635 width=88) - predicate:(ss_customer_sk is not null and ss_sold_date_sk is not null) + Filter Operator [FIL_155] (rows=144002668 width=135) + predicate:(ws_bill_customer_sk is not null and ws_sold_date_sk is not null) Please refer to the previous TableScan [TS_0] - <-Reducer 32 [CONTAINS] - Reduce Output Operator [RS_177] - PartitionCols:_col0 - Select Operator [SEL_170] (rows=1 width=162) - Output:["_col0","_col1","_col2","_col3"] - Group By Operator [GBY_169] (rows=1 width=162) - Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["max(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3 - <-Reducer 31 [SIMPLE_EDGE] - SHUFFLE [RS_168] - PartitionCols:_col0, _col1, _col2, _col3 - Group By Operator [GBY_167] (rows=1 width=162) - Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["max(_col2)"],keys:_col6, _col4, _col7, _col8 - Merge Join Operator [MERGEJOIN_338] (rows=1 width=162) - Conds:RS_163._col1=RS_164._col0(Inner),Output:["_col2","_col4","_col6","_col7","_col8"] - <-Map 33 [SIMPLE_EDGE] - SHUFFLE [RS_164] - PartitionCols:_col0 - Select Operator [SEL_159] (rows=1 width=860) - Output:["_col0","_col1","_col2","_col3"] - Filter Operator [FIL_320] (rows=1 width=860) - predicate:false - Please refer to the previous TableScan [TS_6] - <-Reducer 30 [SIMPLE_EDGE] - SHUFFLE [RS_163] - PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_337] (rows=1 width=148) - Conds:RS_160._col0=RS_161._col0(Inner),Output:["_col1","_col2","_col4"] - <-Map 20 [SIMPLE_EDGE] - SHUFFLE [RS_161] - PartitionCols:_col0 - Select Operator [SEL_156] (rows=1 width=1119) - Output:["_col0","_col1"] - Filter Operator [FIL_319] (rows=1 width=1119) - predicate:false - Please refer to the previous TableScan [TS_3] - <-Map 34 [SIMPLE_EDGE] - SHUFFLE [RS_160] - PartitionCols:_col0 - Select Operator [SEL_153] (rows=1 width=135) - Output:["_col0","_col1","_col2"] - Filter Operator [FIL_318] (rows=1 width=135) - predicate:false - Please refer to the previous TableScan [TS_21] - <-Union 5 [SIMPLE_EDGE] - <-Reducer 23 [CONTAINS] - Reduce Output Operator [RS_174] - PartitionCols:_col0 - Select Operator [SEL_40] (rows=1 width=162) - Output:["_col0","_col1"] - Group By Operator [GBY_39] (rows=1 width=162) - Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["max(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3 - <-Reducer 22 [SIMPLE_EDGE] - SHUFFLE [RS_38] - PartitionCols:_col0, _col1, _col2, _col3 - Group By Operator [GBY_37] (rows=1 width=162) - Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["max(_col2)"],keys:_col6, _col4, _col7, _col8 - Merge Join Operator [MERGEJOIN_326] (rows=1 width=162) - Conds:RS_33._col1=RS_34._col0(Inner),Output:["_col2","_col4","_col6","_col7","_col8"] - <-Map 33 [SIMPLE_EDGE] - SHUFFLE [RS_34] - PartitionCols:_col0 - Select Operator [SEL_29] (rows=1 width=860) - Output:["_col0","_col1","_col2","_col3"] - Filter Operator [FIL_302] (rows=1 width=860) - predicate:false - Please refer to the previous TableScan [TS_6] - <-Reducer 21 [SIMPLE_EDGE] - SHUFFLE [RS_33] - PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_325] (rows=1 width=148) - Conds:RS_30._col0=RS_31._col0(Inner),Output:["_col1","_col2","_col4"] - <-Map 20 [SIMPLE_EDGE] - SHUFFLE [RS_31] - PartitionCols:_col0 - Select Operator [SEL_26] (rows=1 width=1119) - Output:["_col0","_col1"] - Filter Operator [FIL_301] (rows=1 width=1119) - predicate:false - Please refer to the previous TableScan [TS_3] - <-Map 34 [SIMPLE_EDGE] - SHUFFLE [RS_30] - PartitionCols:_col0 - Select Operator [SEL_23] (rows=1 width=135) - Output:["_col0","_col1","_col2"] - Filter Operator [FIL_300] (rows=1 width=135) - predicate:false - Please refer to the previous TableScan [TS_21] - <-Reducer 4 [CONTAINS] - Reduce Output Operator [RS_174] - PartitionCols:_col0 - Select Operator [SEL_20] (rows=116159124 width=88) - Output:["_col0","_col1"] - Filter Operator [FIL_19] (rows=116159124 width=88) - predicate:(_col4 > 0) - Select Operator [SEL_322] (rows=348477374 width=88) - Output:["_col0","_col4"] - Group By Operator [GBY_18] (rows=348477374 width=88) - Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["max(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3 - <-Reducer 3 [SIMPLE_EDGE] - SHUFFLE [RS_17] - PartitionCols:_col0, _col1, _col2, _col3 - Group By Operator [GBY_16] (rows=696954748 width=88) - Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["max(_col2)"],keys:_col6, _col7, _col8, _col4 - Merge Join Operator [MERGEJOIN_324] (rows=696954748 width=88) - Conds:RS_12._col1=RS_13._col0(Inner),Output:["_col2","_col4","_col6","_col7","_col8"] - <-Map 33 [SIMPLE_EDGE] - SHUFFLE [RS_13] - PartitionCols:_col0 - Select Operator [SEL_8] (rows=80000000 width=860) - Output:["_col0","_col1","_col2","_col3"] - Filter Operator [FIL_299] (rows=80000000 width=860) - predicate:(c_customer_sk is not null and c_customer_id is not null) - Please refer to the previous TableScan [TS_6] - <-Reducer 2 [SIMPLE_EDGE] - SHUFFLE [RS_12] - PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_323] (rows=633595212 width=88) - Conds:RS_9._col0=RS_10._col0(Inner),Output:["_col1","_col2","_col4"] - <-Map 20 [SIMPLE_EDGE] - SHUFFLE [RS_10] - PartitionCols:_col0 - Select Operator [SEL_5] (rows=18262 width=1119) - Output:["_col0","_col1"] - Filter Operator [FIL_298] (rows=18262 width=1119) - predicate:((d_year) IN (2001, 2002) and (d_year = 2001) and d_date_sk is not null) - Please refer to the previous TableScan [TS_3] - <-Map 1 [SIMPLE_EDGE] - SHUFFLE [RS_9] - PartitionCols:_col0 - Select Operator [SEL_2] (rows=575995635 width=88) - Output:["_col0","_col1","_col2"] - Filter Operator [FIL_297] (rows=575995635 width=88) - predicate:(ss_customer_sk is not null and ss_sold_date_sk is not null) - Please refer to the previous TableScan [TS_0]