diff --git a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HiveSemiJoinRule.java b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HiveSemiJoinRule.java index 7799090d43..252a9677b0 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HiveSemiJoinRule.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HiveSemiJoinRule.java @@ -29,8 +29,10 @@ import org.apache.calcite.rel.core.JoinInfo; import org.apache.calcite.rel.core.JoinRelType; import org.apache.calcite.rel.core.Project; +import org.apache.calcite.rel.type.RelDataTypeField; import org.apache.calcite.rex.RexBuilder; import org.apache.calcite.rex.RexNode; +import org.apache.calcite.tools.RelBuilder; import org.apache.calcite.tools.RelBuilderFactory; import org.apache.calcite.util.ImmutableBitSet; import org.apache.calcite.util.ImmutableIntList; @@ -42,6 +44,7 @@ import com.google.common.collect.Lists; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; /** @@ -59,6 +62,9 @@ public static final HiveProjectToSemiJoinRule INSTANCE_PROJECT = new HiveProjectToSemiJoinRule(HiveRelFactories.HIVE_BUILDER); + public static final HiveProjectToSemiJoinRuleSwapInputs INSTANCE_PROJECT_SWAPPED = + new HiveProjectToSemiJoinRuleSwapInputs (HiveRelFactories.HIVE_BUILDER); + public static final HiveAggregateToSemiJoinRule INSTANCE_AGGREGATE = new HiveAggregateToSemiJoinRule(HiveRelFactories.HIVE_BUILDER); @@ -153,6 +159,97 @@ public HiveProjectToSemiJoinRule(RelBuilderFactory relBuilder) { } } + /** SemiJoinRule that matches a Project on top of a Join with an Aggregate + * as its right child. */ + public static class HiveProjectToSemiJoinRuleSwapInputs extends HiveSemiJoinRule { + + /** Creates a HiveProjectToSemiJoinRule. */ + public HiveProjectToSemiJoinRuleSwapInputs(RelBuilderFactory relBuilder) { + super( + operand(Project.class, + some(operand(Join.class, + some( + operand(Aggregate.class, any()), + operand(RelNode.class, any()))))), + relBuilder); + } + + private Project swapInputs(Join join, Project topProject, RelBuilder builder) { + RexBuilder rexBuilder = join.getCluster().getRexBuilder(); + + int rightInputSize = join.getRight().getRowType().getFieldCount(); + int leftInputSize = join.getLeft().getRowType().getFieldCount(); + List joinFields = join.getRowType().getFieldList(); + + //swap the join inputs + //adjust join condition + int[] condAdjustments = new int[joinFields.size()]; + for(int i=0; i newProjects = new ArrayList<>(); + + List swappedJoinFeilds = swappedJoin.getRowType().getFieldList(); + for(RexNode project:topProject.getProjects()) { + RexNode newProject = project.accept(new RelOptUtil.RexInputConverter(rexBuilder,swappedJoinFeilds, + swappedJoinFeilds, condAdjustments)); + newProjects.add(newProject); + } + return (Project)builder.push(swappedJoin).project(newProjects).build(); + } + + @Override public void onMatch(RelOptRuleCall call) { + final Project project = call.rel(0); + final Join join = call.rel(1); + final RelNode right = call.rel(3); + final Aggregate aggregate = call.rel(2); + + // make sure the following conditions are met + // Join is INNER + // Join keys are same as gb keys + // project above is referring to inputs only from non-aggregate side + final JoinInfo joinInfo = join.analyzeCondition(); + if(!joinInfo.isEqui()) { + return; + } + if (!joinInfo.leftSet().equals( + ImmutableBitSet.range(aggregate.getGroupCount()))) { + // Rule requires that aggregate key to be the same as the join key. + // By the way, neither a super-set nor a sub-set would work. + return; + } + final ImmutableBitSet topRefs = + RelOptUtil.InputFinder.bits(project.getChildExps(), null); + + final ImmutableBitSet leftBits = + ImmutableBitSet.range(0, join.getLeft().getRowType().getFieldCount()); + + if (topRefs.intersects(leftBits)) { + return; + } + // it is safe to swap inputs + final Project swappedProject = swapInputs(join, project, call.builder()); + final RelNode swappedJoin = swappedProject.getInput(); + assert(swappedJoin instanceof Join); + + final ImmutableBitSet swappedTopRefs = + RelOptUtil.InputFinder.bits(swappedProject.getChildExps(), null); + + perform(call, swappedTopRefs, swappedProject, (Join)swappedJoin, right, aggregate); + } + } + /** SemiJoinRule that matches a Aggregate on top of a Join with an Aggregate * as its right child. */ public static class HiveAggregateToSemiJoinRule extends HiveSemiJoinRule { 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 11c8f5f02c..35f2b0a942 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 @@ -1883,7 +1883,7 @@ public RelNode apply(RelOptCluster cluster, RelOptSchema relOptSchema, SchemaPlu if (conf.getBoolVar(ConfVars.SEMIJOIN_CONVERSION)) { perfLogger.PerfLogBegin(this.getClass().getName(), PerfLogger.OPTIMIZER); calciteOptimizedPlan = hepPlan(calciteOptimizedPlan, false, mdProvider.getMetadataProvider(), null, - HiveSemiJoinRule.INSTANCE_PROJECT, HiveSemiJoinRule.INSTANCE_AGGREGATE); + HiveSemiJoinRule.INSTANCE_PROJECT, HiveSemiJoinRule.INSTANCE_PROJECT_SWAPPED, HiveSemiJoinRule.INSTANCE_AGGREGATE); perfLogger.PerfLogEnd(this.getClass().getName(), PerfLogger.OPTIMIZER, "Calcite: Semijoin conversion"); } diff --git a/ql/src/test/queries/clientpositive/semijoin.q b/ql/src/test/queries/clientpositive/semijoin.q index 144069bbe6..e1d31cc8f3 100644 --- a/ql/src/test/queries/clientpositive/semijoin.q +++ b/ql/src/test/queries/clientpositive/semijoin.q @@ -1,4 +1,5 @@ --! qt:dataset:src +--! qt:dataset:part SET hive.vectorized.execution.enabled=false; set hive.mapred.mode=nonstrict; -- SORT_QUERY_RESULTS @@ -86,3 +87,6 @@ explain select key, value from src outr left semi join select key, value from src outr left semi join (select a.key, b.value from src a join (select distinct value from src) b on a.value > b.value group by a.key, b.value) inr on outr.key=inr.key and outr.value=inr.value; + +explain cbo select pp.p_partkey from (select distinct p_name from part) p join part pp on pp.p_name = p.p_name; +select pp.p_partkey from (select distinct p_name from part) p join part pp on pp.p_name = p.p_name; diff --git a/ql/src/test/results/clientpositive/llap/semijoin.q.out b/ql/src/test/results/clientpositive/llap/semijoin.q.out index 531ef46c78..63a270e57d 100644 --- a/ql/src/test/results/clientpositive/llap/semijoin.q.out +++ b/ql/src/test/results/clientpositive/llap/semijoin.q.out @@ -3076,3 +3076,55 @@ POSTHOOK: query: select key, value from src outr left semi join POSTHOOK: type: QUERY POSTHOOK: Input: default@src #### A masked pattern was here #### +PREHOOK: query: explain cbo select pp.p_partkey from (select distinct p_name from part) p join part pp on pp.p_name = p.p_name +PREHOOK: type: QUERY +PREHOOK: Input: default@part +#### A masked pattern was here #### +POSTHOOK: query: explain cbo select pp.p_partkey from (select distinct p_name from part) p join part pp on pp.p_name = p.p_name +POSTHOOK: type: QUERY +POSTHOOK: Input: default@part +#### A masked pattern was here #### +CBO PLAN: +HiveProject(p_partkey=[$0]) + HiveSemiJoin(condition=[=($1, $3)], joinType=[inner]) + HiveProject(p_partkey=[$0], p_name=[$1]) + HiveFilter(condition=[IS NOT NULL($1)]) + HiveTableScan(table=[[default, part]], table:alias=[pp]) + HiveProject(p_partkey=[$0], p_name=[$1], p_mfgr=[$2], p_brand=[$3], p_type=[$4], p_size=[$5], p_container=[$6], p_retailprice=[$7], p_comment=[$8], BLOCK__OFFSET__INSIDE__FILE=[$9], INPUT__FILE__NAME=[$10], ROW__ID=[$11]) + HiveFilter(condition=[IS NOT NULL($1)]) + HiveTableScan(table=[[default, part]], table:alias=[part]) + +PREHOOK: query: select pp.p_partkey from (select distinct p_name from part) p join part pp on pp.p_name = p.p_name +PREHOOK: type: QUERY +PREHOOK: Input: default@part +#### A masked pattern was here #### +POSTHOOK: query: select pp.p_partkey from (select distinct p_name from part) p join part pp on pp.p_name = p.p_name +POSTHOOK: type: QUERY +POSTHOOK: Input: default@part +#### A masked pattern was here #### +105685 +110592 +112398 +121152 +121152 +132666 +144293 +146985 +15103 +155733 +17273 +17927 +191709 +192697 +195606 +33357 +40982 +42669 +45261 +48427 +49671 +65667 +78486 +85768 +86428 +90681 diff --git a/ql/src/test/results/clientpositive/perf/tez/cbo_query14.q.out b/ql/src/test/results/clientpositive/perf/tez/cbo_query14.q.out index 9bb4f2e7f2..43a4fab43e 100644 --- a/ql/src/test/results/clientpositive/perf/tez/cbo_query14.q.out +++ b/ql/src/test/results/clientpositive/perf/tez/cbo_query14.q.out @@ -1,9 +1,9 @@ -Warning: Shuffle Join MERGEJOIN[1446][tables = [$hdt$_1, $hdt$_2]] in Stage 'Reducer 5' is a cross product -Warning: Shuffle Join MERGEJOIN[1458][tables = [$hdt$_1, $hdt$_2, $hdt$_0]] in Stage 'Reducer 6' is a cross product -Warning: Shuffle Join MERGEJOIN[1448][tables = [$hdt$_1, $hdt$_2]] in Stage 'Reducer 13' is a cross product -Warning: Shuffle Join MERGEJOIN[1471][tables = [$hdt$_1, $hdt$_2, $hdt$_0]] in Stage 'Reducer 14' is a cross product -Warning: Shuffle Join MERGEJOIN[1450][tables = [$hdt$_2, $hdt$_3]] in Stage 'Reducer 18' is a cross product -Warning: Shuffle Join MERGEJOIN[1484][tables = [$hdt$_2, $hdt$_3, $hdt$_1]] in Stage 'Reducer 19' is a cross product +Warning: Shuffle Join MERGEJOIN[1440][tables = [$hdt$_1, $hdt$_2]] in Stage 'Reducer 5' is a cross product +Warning: Shuffle Join MERGEJOIN[1452][tables = [$hdt$_1, $hdt$_2, $hdt$_0]] in Stage 'Reducer 6' is a cross product +Warning: Shuffle Join MERGEJOIN[1442][tables = [$hdt$_1, $hdt$_2]] in Stage 'Reducer 13' is a cross product +Warning: Shuffle Join MERGEJOIN[1465][tables = [$hdt$_1, $hdt$_2, $hdt$_0]] in Stage 'Reducer 14' is a cross product +Warning: Shuffle Join MERGEJOIN[1444][tables = [$hdt$_2, $hdt$_3]] in Stage 'Reducer 18' is a cross product +Warning: Shuffle Join MERGEJOIN[1478][tables = [$hdt$_2, $hdt$_3, $hdt$_1]] in Stage 'Reducer 19' is a cross product PREHOOK: query: explain cbo with cross_items as (select i_item_sk ss_item_sk @@ -230,60 +230,10 @@ HiveSortLimit(sort0=[$0], sort1=[$1], sort2=[$2], sort3=[$3], dir0=[ASC], dir1=[ HiveUnion(all=[true]) HiveProject(channel=[_UTF-16LE'store'], i_brand_id=[$0], i_class_id=[$1], i_category_id=[$2], sales=[$3], number_sales=[$4]) HiveJoin(condition=[>($3, $6)], joinType=[inner], algorithm=[none], cost=[not available]) - HiveProject($f0=[$0], $f1=[$1], $f2=[$2], $f3=[$3], $f4=[$4]) + HiveProject(i_brand_id=[$0], i_class_id=[$1], i_category_id=[$2], $f3=[$3], $f4=[$4]) HiveAggregate(group=[{0, 1, 2}], agg#0=[sum($3)], agg#1=[count()]) - HiveProject($f0=[$2], $f1=[$3], $f2=[$4], $f3=[*(CAST($7):DECIMAL(10, 0), $8)]) - HiveJoin(condition=[=($6, $0)], joinType=[inner], algorithm=[none], cost=[not available]) - HiveProject(i_item_sk=[$0]) - HiveAggregate(group=[{0}]) - HiveJoin(condition=[AND(AND(=($1, $4), =($2, $5)), =($3, $6))], joinType=[inner], algorithm=[none], cost=[not available]) - HiveProject(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11]) - HiveFilter(condition=[AND(IS NOT NULL($7), IS NOT NULL($9), IS NOT NULL($11), IS NOT NULL($0))]) - HiveTableScan(table=[[default, item]], table:alias=[item]) - HiveProject($f0=[$0], $f1=[$1], $f2=[$2]) - HiveFilter(condition=[=($3, 3)]) - HiveAggregate(group=[{0, 1, 2}], agg#0=[count($3)]) - HiveProject(i_brand_id=[$0], i_class_id=[$1], i_category_id=[$2], $f3=[$3]) - HiveUnion(all=[true]) - HiveProject(i_brand_id=[$0], i_class_id=[$1], i_category_id=[$2], $f3=[$3]) - HiveAggregate(group=[{5, 6, 7}], agg#0=[count()]) - HiveJoin(condition=[=($1, $4)], joinType=[inner], algorithm=[none], cost=[not available]) - HiveJoin(condition=[=($0, $2)], joinType=[inner], algorithm=[none], cost=[not available]) - HiveProject(ss_sold_date_sk=[$0], ss_item_sk=[$2]) - HiveFilter(condition=[AND(IS NOT NULL($2), IS NOT NULL($0))]) - HiveTableScan(table=[[default, store_sales]], table:alias=[store_sales]) - HiveProject(d_date_sk=[$0], d_year=[$6]) - HiveFilter(condition=[AND(BETWEEN(false, $6, 1999, 2001), IS NOT NULL($0))]) - HiveTableScan(table=[[default, date_dim]], table:alias=[d1]) - HiveProject(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11]) - HiveFilter(condition=[AND(IS NOT NULL($0), IS NOT NULL($7), IS NOT NULL($9), IS NOT NULL($11))]) - HiveTableScan(table=[[default, item]], table:alias=[iss]) - HiveProject(i_brand_id=[$0], i_class_id=[$1], i_category_id=[$2], $f3=[$3]) - HiveAggregate(group=[{5, 6, 7}], agg#0=[count()]) - HiveJoin(condition=[=($1, $4)], joinType=[inner], algorithm=[none], cost=[not available]) - HiveJoin(condition=[=($0, $2)], joinType=[inner], algorithm=[none], cost=[not available]) - HiveProject(cs_sold_date_sk=[$0], cs_item_sk=[$15]) - HiveFilter(condition=[AND(IS NOT NULL($15), IS NOT NULL($0))]) - HiveTableScan(table=[[default, catalog_sales]], table:alias=[catalog_sales]) - HiveProject(d_date_sk=[$0], d_year=[$6]) - HiveFilter(condition=[AND(BETWEEN(false, $6, 1999, 2001), IS NOT NULL($0))]) - HiveTableScan(table=[[default, date_dim]], table:alias=[d2]) - HiveProject(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11]) - HiveFilter(condition=[AND(IS NOT NULL($0), IS NOT NULL($7), IS NOT NULL($9), IS NOT NULL($11))]) - HiveTableScan(table=[[default, item]], table:alias=[ics]) - HiveProject(i_brand_id=[$0], i_class_id=[$1], i_category_id=[$2], $f3=[$3]) - HiveAggregate(group=[{5, 6, 7}], agg#0=[count()]) - HiveJoin(condition=[=($1, $4)], joinType=[inner], algorithm=[none], cost=[not available]) - HiveJoin(condition=[=($0, $2)], joinType=[inner], algorithm=[none], cost=[not available]) - HiveProject(ws_sold_date_sk=[$0], ws_item_sk=[$3]) - HiveFilter(condition=[AND(IS NOT NULL($3), IS NOT NULL($0))]) - HiveTableScan(table=[[default, web_sales]], table:alias=[web_sales]) - HiveProject(d_date_sk=[$0], d_year=[$6]) - HiveFilter(condition=[AND(BETWEEN(false, $6, 1999, 2001), IS NOT NULL($0))]) - HiveTableScan(table=[[default, date_dim]], table:alias=[d3]) - HiveProject(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11]) - HiveFilter(condition=[AND(IS NOT NULL($0), IS NOT NULL($7), IS NOT NULL($9), IS NOT NULL($11))]) - HiveTableScan(table=[[default, item]], table:alias=[iws]) + HiveProject(i_brand_id=[$1], i_class_id=[$2], i_category_id=[$3], $f3=[*(CAST($6):DECIMAL(10, 0), $7)]) + HiveSemiJoin(condition=[=($5, $11)], joinType=[inner]) HiveJoin(condition=[=($5, $0)], joinType=[inner], algorithm=[none], cost=[not available]) HiveProject(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11]) HiveFilter(condition=[IS NOT NULL($0)]) @@ -295,6 +245,55 @@ HiveSortLimit(sort0=[$0], sort1=[$1], sort2=[$2], sort3=[$3], dir0=[ASC], dir1=[ HiveProject(d_date_sk=[$0], d_year=[CAST(2000):INTEGER], d_moy=[CAST(11):INTEGER]) HiveFilter(condition=[AND(=($6, 2000), =($8, 11), IS NOT NULL($0))]) HiveTableScan(table=[[default, date_dim]], table:alias=[date_dim]) + HiveProject(i_item_sk=[$0], i_brand_id=[$1], i_class_id=[$2], i_category_id=[$3], $f0=[$4], $f1=[$5], $f2=[$6]) + HiveJoin(condition=[AND(AND(=($1, $4), =($2, $5)), =($3, $6))], joinType=[inner], algorithm=[none], cost=[not available]) + HiveProject(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11]) + HiveFilter(condition=[AND(IS NOT NULL($7), IS NOT NULL($9), IS NOT NULL($11), IS NOT NULL($0))]) + HiveTableScan(table=[[default, item]], table:alias=[item]) + HiveProject($f0=[$0], $f1=[$1], $f2=[$2]) + HiveFilter(condition=[=($3, 3)]) + HiveAggregate(group=[{0, 1, 2}], agg#0=[count($3)]) + HiveProject(i_brand_id=[$0], i_class_id=[$1], i_category_id=[$2], $f3=[$3]) + HiveUnion(all=[true]) + HiveProject(i_brand_id=[$0], i_class_id=[$1], i_category_id=[$2], $f3=[$3]) + HiveAggregate(group=[{5, 6, 7}], agg#0=[count()]) + HiveJoin(condition=[=($1, $4)], joinType=[inner], algorithm=[none], cost=[not available]) + HiveJoin(condition=[=($0, $2)], joinType=[inner], algorithm=[none], cost=[not available]) + HiveProject(ss_sold_date_sk=[$0], ss_item_sk=[$2]) + HiveFilter(condition=[AND(IS NOT NULL($2), IS NOT NULL($0))]) + HiveTableScan(table=[[default, store_sales]], table:alias=[store_sales]) + HiveProject(d_date_sk=[$0], d_year=[$6]) + HiveFilter(condition=[AND(BETWEEN(false, $6, 1999, 2001), IS NOT NULL($0))]) + HiveTableScan(table=[[default, date_dim]], table:alias=[d1]) + HiveProject(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11]) + HiveFilter(condition=[AND(IS NOT NULL($0), IS NOT NULL($7), IS NOT NULL($9), IS NOT NULL($11))]) + HiveTableScan(table=[[default, item]], table:alias=[iss]) + HiveProject(i_brand_id=[$0], i_class_id=[$1], i_category_id=[$2], $f3=[$3]) + HiveAggregate(group=[{5, 6, 7}], agg#0=[count()]) + HiveJoin(condition=[=($1, $4)], joinType=[inner], algorithm=[none], cost=[not available]) + HiveJoin(condition=[=($0, $2)], joinType=[inner], algorithm=[none], cost=[not available]) + HiveProject(cs_sold_date_sk=[$0], cs_item_sk=[$15]) + HiveFilter(condition=[AND(IS NOT NULL($15), IS NOT NULL($0))]) + HiveTableScan(table=[[default, catalog_sales]], table:alias=[catalog_sales]) + HiveProject(d_date_sk=[$0], d_year=[$6]) + HiveFilter(condition=[AND(BETWEEN(false, $6, 1999, 2001), IS NOT NULL($0))]) + HiveTableScan(table=[[default, date_dim]], table:alias=[d2]) + HiveProject(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11]) + HiveFilter(condition=[AND(IS NOT NULL($0), IS NOT NULL($7), IS NOT NULL($9), IS NOT NULL($11))]) + HiveTableScan(table=[[default, item]], table:alias=[ics]) + HiveProject(i_brand_id=[$0], i_class_id=[$1], i_category_id=[$2], $f3=[$3]) + HiveAggregate(group=[{5, 6, 7}], agg#0=[count()]) + HiveJoin(condition=[=($1, $4)], joinType=[inner], algorithm=[none], cost=[not available]) + HiveJoin(condition=[=($0, $2)], joinType=[inner], algorithm=[none], cost=[not available]) + HiveProject(ws_sold_date_sk=[$0], ws_item_sk=[$3]) + HiveFilter(condition=[AND(IS NOT NULL($3), IS NOT NULL($0))]) + HiveTableScan(table=[[default, web_sales]], table:alias=[web_sales]) + HiveProject(d_date_sk=[$0], d_year=[$6]) + HiveFilter(condition=[AND(BETWEEN(false, $6, 1999, 2001), IS NOT NULL($0))]) + HiveTableScan(table=[[default, date_dim]], table:alias=[d3]) + HiveProject(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11]) + HiveFilter(condition=[AND(IS NOT NULL($0), IS NOT NULL($7), IS NOT NULL($9), IS NOT NULL($11))]) + HiveTableScan(table=[[default, item]], table:alias=[iws]) HiveJoin(condition=[true], joinType=[inner], algorithm=[none], cost=[not available]) HiveProject(cnt=[$0]) HiveFilter(condition=[<=(sq_count_check($0), 1)]) @@ -359,60 +358,10 @@ HiveSortLimit(sort0=[$0], sort1=[$1], sort2=[$2], sort3=[$3], dir0=[ASC], dir1=[ HiveTableScan(table=[[default, date_dim]], table:alias=[date_dim]) HiveProject(channel=[_UTF-16LE'catalog'], i_brand_id=[$0], i_class_id=[$1], i_category_id=[$2], sales=[$3], number_sales=[$4]) HiveJoin(condition=[>($3, $6)], joinType=[inner], algorithm=[none], cost=[not available]) - HiveProject($f0=[$0], $f1=[$1], $f2=[$2], $f3=[$3], $f4=[$4]) + HiveProject(i_brand_id=[$0], i_class_id=[$1], i_category_id=[$2], $f3=[$3], $f4=[$4]) HiveAggregate(group=[{0, 1, 2}], agg#0=[sum($3)], agg#1=[count()]) - HiveProject($f0=[$2], $f1=[$3], $f2=[$4], $f3=[*(CAST($7):DECIMAL(10, 0), $8)]) - HiveJoin(condition=[=($6, $0)], joinType=[inner], algorithm=[none], cost=[not available]) - HiveProject(i_item_sk=[$0]) - HiveAggregate(group=[{0}]) - HiveJoin(condition=[AND(AND(=($1, $4), =($2, $5)), =($3, $6))], joinType=[inner], algorithm=[none], cost=[not available]) - HiveProject(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11]) - HiveFilter(condition=[AND(IS NOT NULL($7), IS NOT NULL($9), IS NOT NULL($11), IS NOT NULL($0))]) - HiveTableScan(table=[[default, item]], table:alias=[item]) - HiveProject($f0=[$0], $f1=[$1], $f2=[$2]) - HiveFilter(condition=[=($3, 3)]) - HiveAggregate(group=[{0, 1, 2}], agg#0=[count($3)]) - HiveProject(i_brand_id=[$0], i_class_id=[$1], i_category_id=[$2], $f3=[$3]) - HiveUnion(all=[true]) - HiveProject(i_brand_id=[$0], i_class_id=[$1], i_category_id=[$2], $f3=[$3]) - HiveAggregate(group=[{5, 6, 7}], agg#0=[count()]) - HiveJoin(condition=[=($1, $4)], joinType=[inner], algorithm=[none], cost=[not available]) - HiveJoin(condition=[=($0, $2)], joinType=[inner], algorithm=[none], cost=[not available]) - HiveProject(ss_sold_date_sk=[$0], ss_item_sk=[$2]) - HiveFilter(condition=[AND(IS NOT NULL($2), IS NOT NULL($0))]) - HiveTableScan(table=[[default, store_sales]], table:alias=[store_sales]) - HiveProject(d_date_sk=[$0], d_year=[$6]) - HiveFilter(condition=[AND(BETWEEN(false, $6, 1999, 2001), IS NOT NULL($0))]) - HiveTableScan(table=[[default, date_dim]], table:alias=[d1]) - HiveProject(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11]) - HiveFilter(condition=[AND(IS NOT NULL($0), IS NOT NULL($7), IS NOT NULL($9), IS NOT NULL($11))]) - HiveTableScan(table=[[default, item]], table:alias=[iss]) - HiveProject(i_brand_id=[$0], i_class_id=[$1], i_category_id=[$2], $f3=[$3]) - HiveAggregate(group=[{5, 6, 7}], agg#0=[count()]) - HiveJoin(condition=[=($1, $4)], joinType=[inner], algorithm=[none], cost=[not available]) - HiveJoin(condition=[=($0, $2)], joinType=[inner], algorithm=[none], cost=[not available]) - HiveProject(cs_sold_date_sk=[$0], cs_item_sk=[$15]) - HiveFilter(condition=[AND(IS NOT NULL($15), IS NOT NULL($0))]) - HiveTableScan(table=[[default, catalog_sales]], table:alias=[catalog_sales]) - HiveProject(d_date_sk=[$0], d_year=[$6]) - HiveFilter(condition=[AND(BETWEEN(false, $6, 1999, 2001), IS NOT NULL($0))]) - HiveTableScan(table=[[default, date_dim]], table:alias=[d2]) - HiveProject(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11]) - HiveFilter(condition=[AND(IS NOT NULL($0), IS NOT NULL($7), IS NOT NULL($9), IS NOT NULL($11))]) - HiveTableScan(table=[[default, item]], table:alias=[ics]) - HiveProject(i_brand_id=[$0], i_class_id=[$1], i_category_id=[$2], $f3=[$3]) - HiveAggregate(group=[{5, 6, 7}], agg#0=[count()]) - HiveJoin(condition=[=($1, $4)], joinType=[inner], algorithm=[none], cost=[not available]) - HiveJoin(condition=[=($0, $2)], joinType=[inner], algorithm=[none], cost=[not available]) - HiveProject(ws_sold_date_sk=[$0], ws_item_sk=[$3]) - HiveFilter(condition=[AND(IS NOT NULL($3), IS NOT NULL($0))]) - HiveTableScan(table=[[default, web_sales]], table:alias=[web_sales]) - HiveProject(d_date_sk=[$0], d_year=[$6]) - HiveFilter(condition=[AND(BETWEEN(false, $6, 1999, 2001), IS NOT NULL($0))]) - HiveTableScan(table=[[default, date_dim]], table:alias=[d3]) - HiveProject(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11]) - HiveFilter(condition=[AND(IS NOT NULL($0), IS NOT NULL($7), IS NOT NULL($9), IS NOT NULL($11))]) - HiveTableScan(table=[[default, item]], table:alias=[iws]) + HiveProject(i_brand_id=[$1], i_class_id=[$2], i_category_id=[$3], $f3=[*(CAST($6):DECIMAL(10, 0), $7)]) + HiveSemiJoin(condition=[=($5, $11)], joinType=[inner]) HiveJoin(condition=[=($5, $0)], joinType=[inner], algorithm=[none], cost=[not available]) HiveProject(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11]) HiveFilter(condition=[IS NOT NULL($0)]) @@ -424,6 +373,55 @@ HiveSortLimit(sort0=[$0], sort1=[$1], sort2=[$2], sort3=[$3], dir0=[ASC], dir1=[ HiveProject(d_date_sk=[$0], d_year=[CAST(2000):INTEGER], d_moy=[CAST(11):INTEGER]) HiveFilter(condition=[AND(=($6, 2000), =($8, 11), IS NOT NULL($0))]) HiveTableScan(table=[[default, date_dim]], table:alias=[date_dim]) + HiveProject(i_item_sk=[$0], i_brand_id=[$1], i_class_id=[$2], i_category_id=[$3], $f0=[$4], $f1=[$5], $f2=[$6]) + HiveJoin(condition=[AND(AND(=($1, $4), =($2, $5)), =($3, $6))], joinType=[inner], algorithm=[none], cost=[not available]) + HiveProject(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11]) + HiveFilter(condition=[AND(IS NOT NULL($7), IS NOT NULL($9), IS NOT NULL($11), IS NOT NULL($0))]) + HiveTableScan(table=[[default, item]], table:alias=[item]) + HiveProject($f0=[$0], $f1=[$1], $f2=[$2]) + HiveFilter(condition=[=($3, 3)]) + HiveAggregate(group=[{0, 1, 2}], agg#0=[count($3)]) + HiveProject(i_brand_id=[$0], i_class_id=[$1], i_category_id=[$2], $f3=[$3]) + HiveUnion(all=[true]) + HiveProject(i_brand_id=[$0], i_class_id=[$1], i_category_id=[$2], $f3=[$3]) + HiveAggregate(group=[{5, 6, 7}], agg#0=[count()]) + HiveJoin(condition=[=($1, $4)], joinType=[inner], algorithm=[none], cost=[not available]) + HiveJoin(condition=[=($0, $2)], joinType=[inner], algorithm=[none], cost=[not available]) + HiveProject(ss_sold_date_sk=[$0], ss_item_sk=[$2]) + HiveFilter(condition=[AND(IS NOT NULL($2), IS NOT NULL($0))]) + HiveTableScan(table=[[default, store_sales]], table:alias=[store_sales]) + HiveProject(d_date_sk=[$0], d_year=[$6]) + HiveFilter(condition=[AND(BETWEEN(false, $6, 1999, 2001), IS NOT NULL($0))]) + HiveTableScan(table=[[default, date_dim]], table:alias=[d1]) + HiveProject(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11]) + HiveFilter(condition=[AND(IS NOT NULL($0), IS NOT NULL($7), IS NOT NULL($9), IS NOT NULL($11))]) + HiveTableScan(table=[[default, item]], table:alias=[iss]) + HiveProject(i_brand_id=[$0], i_class_id=[$1], i_category_id=[$2], $f3=[$3]) + HiveAggregate(group=[{5, 6, 7}], agg#0=[count()]) + HiveJoin(condition=[=($1, $4)], joinType=[inner], algorithm=[none], cost=[not available]) + HiveJoin(condition=[=($0, $2)], joinType=[inner], algorithm=[none], cost=[not available]) + HiveProject(cs_sold_date_sk=[$0], cs_item_sk=[$15]) + HiveFilter(condition=[AND(IS NOT NULL($15), IS NOT NULL($0))]) + HiveTableScan(table=[[default, catalog_sales]], table:alias=[catalog_sales]) + HiveProject(d_date_sk=[$0], d_year=[$6]) + HiveFilter(condition=[AND(BETWEEN(false, $6, 1999, 2001), IS NOT NULL($0))]) + HiveTableScan(table=[[default, date_dim]], table:alias=[d2]) + HiveProject(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11]) + HiveFilter(condition=[AND(IS NOT NULL($0), IS NOT NULL($7), IS NOT NULL($9), IS NOT NULL($11))]) + HiveTableScan(table=[[default, item]], table:alias=[ics]) + HiveProject(i_brand_id=[$0], i_class_id=[$1], i_category_id=[$2], $f3=[$3]) + HiveAggregate(group=[{5, 6, 7}], agg#0=[count()]) + HiveJoin(condition=[=($1, $4)], joinType=[inner], algorithm=[none], cost=[not available]) + HiveJoin(condition=[=($0, $2)], joinType=[inner], algorithm=[none], cost=[not available]) + HiveProject(ws_sold_date_sk=[$0], ws_item_sk=[$3]) + HiveFilter(condition=[AND(IS NOT NULL($3), IS NOT NULL($0))]) + HiveTableScan(table=[[default, web_sales]], table:alias=[web_sales]) + HiveProject(d_date_sk=[$0], d_year=[$6]) + HiveFilter(condition=[AND(BETWEEN(false, $6, 1999, 2001), IS NOT NULL($0))]) + HiveTableScan(table=[[default, date_dim]], table:alias=[d3]) + HiveProject(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11]) + HiveFilter(condition=[AND(IS NOT NULL($0), IS NOT NULL($7), IS NOT NULL($9), IS NOT NULL($11))]) + HiveTableScan(table=[[default, item]], table:alias=[iws]) HiveJoin(condition=[true], joinType=[inner], algorithm=[none], cost=[not available]) HiveProject(cnt=[$0]) HiveFilter(condition=[<=(sq_count_check($0), 1)]) @@ -488,60 +486,10 @@ HiveSortLimit(sort0=[$0], sort1=[$1], sort2=[$2], sort3=[$3], dir0=[ASC], dir1=[ HiveTableScan(table=[[default, date_dim]], table:alias=[date_dim]) HiveProject(channel=[_UTF-16LE'web'], i_brand_id=[$0], i_class_id=[$1], i_category_id=[$2], sales=[$3], number_sales=[$4]) HiveJoin(condition=[>($3, $6)], joinType=[inner], algorithm=[none], cost=[not available]) - HiveProject($f0=[$0], $f1=[$1], $f2=[$2], $f3=[$3], $f4=[$4]) + HiveProject(i_brand_id=[$0], i_class_id=[$1], i_category_id=[$2], $f3=[$3], $f4=[$4]) HiveAggregate(group=[{0, 1, 2}], agg#0=[sum($3)], agg#1=[count()]) - HiveProject($f0=[$2], $f1=[$3], $f2=[$4], $f3=[*(CAST($7):DECIMAL(10, 0), $8)]) - HiveJoin(condition=[=($6, $0)], joinType=[inner], algorithm=[none], cost=[not available]) - HiveProject(i_item_sk=[$0]) - HiveAggregate(group=[{0}]) - HiveJoin(condition=[AND(AND(=($1, $4), =($2, $5)), =($3, $6))], joinType=[inner], algorithm=[none], cost=[not available]) - HiveProject(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11]) - HiveFilter(condition=[AND(IS NOT NULL($7), IS NOT NULL($9), IS NOT NULL($11), IS NOT NULL($0))]) - HiveTableScan(table=[[default, item]], table:alias=[item]) - HiveProject($f0=[$0], $f1=[$1], $f2=[$2]) - HiveFilter(condition=[=($3, 3)]) - HiveAggregate(group=[{0, 1, 2}], agg#0=[count($3)]) - HiveProject(i_brand_id=[$0], i_class_id=[$1], i_category_id=[$2], $f3=[$3]) - HiveUnion(all=[true]) - HiveProject(i_brand_id=[$0], i_class_id=[$1], i_category_id=[$2], $f3=[$3]) - HiveAggregate(group=[{5, 6, 7}], agg#0=[count()]) - HiveJoin(condition=[=($1, $4)], joinType=[inner], algorithm=[none], cost=[not available]) - HiveJoin(condition=[=($0, $2)], joinType=[inner], algorithm=[none], cost=[not available]) - HiveProject(ss_sold_date_sk=[$0], ss_item_sk=[$2]) - HiveFilter(condition=[AND(IS NOT NULL($2), IS NOT NULL($0))]) - HiveTableScan(table=[[default, store_sales]], table:alias=[store_sales]) - HiveProject(d_date_sk=[$0], d_year=[$6]) - HiveFilter(condition=[AND(BETWEEN(false, $6, 1999, 2001), IS NOT NULL($0))]) - HiveTableScan(table=[[default, date_dim]], table:alias=[d1]) - HiveProject(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11]) - HiveFilter(condition=[AND(IS NOT NULL($0), IS NOT NULL($7), IS NOT NULL($9), IS NOT NULL($11))]) - HiveTableScan(table=[[default, item]], table:alias=[iss]) - HiveProject(i_brand_id=[$0], i_class_id=[$1], i_category_id=[$2], $f3=[$3]) - HiveAggregate(group=[{5, 6, 7}], agg#0=[count()]) - HiveJoin(condition=[=($1, $4)], joinType=[inner], algorithm=[none], cost=[not available]) - HiveJoin(condition=[=($0, $2)], joinType=[inner], algorithm=[none], cost=[not available]) - HiveProject(cs_sold_date_sk=[$0], cs_item_sk=[$15]) - HiveFilter(condition=[AND(IS NOT NULL($15), IS NOT NULL($0))]) - HiveTableScan(table=[[default, catalog_sales]], table:alias=[catalog_sales]) - HiveProject(d_date_sk=[$0], d_year=[$6]) - HiveFilter(condition=[AND(BETWEEN(false, $6, 1999, 2001), IS NOT NULL($0))]) - HiveTableScan(table=[[default, date_dim]], table:alias=[d2]) - HiveProject(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11]) - HiveFilter(condition=[AND(IS NOT NULL($0), IS NOT NULL($7), IS NOT NULL($9), IS NOT NULL($11))]) - HiveTableScan(table=[[default, item]], table:alias=[ics]) - HiveProject(i_brand_id=[$0], i_class_id=[$1], i_category_id=[$2], $f3=[$3]) - HiveAggregate(group=[{5, 6, 7}], agg#0=[count()]) - HiveJoin(condition=[=($1, $4)], joinType=[inner], algorithm=[none], cost=[not available]) - HiveJoin(condition=[=($0, $2)], joinType=[inner], algorithm=[none], cost=[not available]) - HiveProject(ws_sold_date_sk=[$0], ws_item_sk=[$3]) - HiveFilter(condition=[AND(IS NOT NULL($3), IS NOT NULL($0))]) - HiveTableScan(table=[[default, web_sales]], table:alias=[web_sales]) - HiveProject(d_date_sk=[$0], d_year=[$6]) - HiveFilter(condition=[AND(BETWEEN(false, $6, 1999, 2001), IS NOT NULL($0))]) - HiveTableScan(table=[[default, date_dim]], table:alias=[d3]) - HiveProject(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11]) - HiveFilter(condition=[AND(IS NOT NULL($0), IS NOT NULL($7), IS NOT NULL($9), IS NOT NULL($11))]) - HiveTableScan(table=[[default, item]], table:alias=[iws]) + HiveProject(i_brand_id=[$1], i_class_id=[$2], i_category_id=[$3], $f3=[*(CAST($6):DECIMAL(10, 0), $7)]) + HiveSemiJoin(condition=[=($5, $11)], joinType=[inner]) HiveJoin(condition=[=($5, $0)], joinType=[inner], algorithm=[none], cost=[not available]) HiveProject(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11]) HiveFilter(condition=[IS NOT NULL($0)]) @@ -553,6 +501,55 @@ HiveSortLimit(sort0=[$0], sort1=[$1], sort2=[$2], sort3=[$3], dir0=[ASC], dir1=[ HiveProject(d_date_sk=[$0], d_year=[CAST(2000):INTEGER], d_moy=[CAST(11):INTEGER]) HiveFilter(condition=[AND(=($6, 2000), =($8, 11), IS NOT NULL($0))]) HiveTableScan(table=[[default, date_dim]], table:alias=[date_dim]) + HiveProject(i_item_sk=[$0], i_brand_id=[$1], i_class_id=[$2], i_category_id=[$3], $f0=[$4], $f1=[$5], $f2=[$6]) + HiveJoin(condition=[AND(AND(=($1, $4), =($2, $5)), =($3, $6))], joinType=[inner], algorithm=[none], cost=[not available]) + HiveProject(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11]) + HiveFilter(condition=[AND(IS NOT NULL($7), IS NOT NULL($9), IS NOT NULL($11), IS NOT NULL($0))]) + HiveTableScan(table=[[default, item]], table:alias=[item]) + HiveProject($f0=[$0], $f1=[$1], $f2=[$2]) + HiveFilter(condition=[=($3, 3)]) + HiveAggregate(group=[{0, 1, 2}], agg#0=[count($3)]) + HiveProject(i_brand_id=[$0], i_class_id=[$1], i_category_id=[$2], $f3=[$3]) + HiveUnion(all=[true]) + HiveProject(i_brand_id=[$0], i_class_id=[$1], i_category_id=[$2], $f3=[$3]) + HiveAggregate(group=[{5, 6, 7}], agg#0=[count()]) + HiveJoin(condition=[=($1, $4)], joinType=[inner], algorithm=[none], cost=[not available]) + HiveJoin(condition=[=($0, $2)], joinType=[inner], algorithm=[none], cost=[not available]) + HiveProject(ss_sold_date_sk=[$0], ss_item_sk=[$2]) + HiveFilter(condition=[AND(IS NOT NULL($2), IS NOT NULL($0))]) + HiveTableScan(table=[[default, store_sales]], table:alias=[store_sales]) + HiveProject(d_date_sk=[$0], d_year=[$6]) + HiveFilter(condition=[AND(BETWEEN(false, $6, 1999, 2001), IS NOT NULL($0))]) + HiveTableScan(table=[[default, date_dim]], table:alias=[d1]) + HiveProject(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11]) + HiveFilter(condition=[AND(IS NOT NULL($0), IS NOT NULL($7), IS NOT NULL($9), IS NOT NULL($11))]) + HiveTableScan(table=[[default, item]], table:alias=[iss]) + HiveProject(i_brand_id=[$0], i_class_id=[$1], i_category_id=[$2], $f3=[$3]) + HiveAggregate(group=[{5, 6, 7}], agg#0=[count()]) + HiveJoin(condition=[=($1, $4)], joinType=[inner], algorithm=[none], cost=[not available]) + HiveJoin(condition=[=($0, $2)], joinType=[inner], algorithm=[none], cost=[not available]) + HiveProject(cs_sold_date_sk=[$0], cs_item_sk=[$15]) + HiveFilter(condition=[AND(IS NOT NULL($15), IS NOT NULL($0))]) + HiveTableScan(table=[[default, catalog_sales]], table:alias=[catalog_sales]) + HiveProject(d_date_sk=[$0], d_year=[$6]) + HiveFilter(condition=[AND(BETWEEN(false, $6, 1999, 2001), IS NOT NULL($0))]) + HiveTableScan(table=[[default, date_dim]], table:alias=[d2]) + HiveProject(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11]) + HiveFilter(condition=[AND(IS NOT NULL($0), IS NOT NULL($7), IS NOT NULL($9), IS NOT NULL($11))]) + HiveTableScan(table=[[default, item]], table:alias=[ics]) + HiveProject(i_brand_id=[$0], i_class_id=[$1], i_category_id=[$2], $f3=[$3]) + HiveAggregate(group=[{5, 6, 7}], agg#0=[count()]) + HiveJoin(condition=[=($1, $4)], joinType=[inner], algorithm=[none], cost=[not available]) + HiveJoin(condition=[=($0, $2)], joinType=[inner], algorithm=[none], cost=[not available]) + HiveProject(ws_sold_date_sk=[$0], ws_item_sk=[$3]) + HiveFilter(condition=[AND(IS NOT NULL($3), IS NOT NULL($0))]) + HiveTableScan(table=[[default, web_sales]], table:alias=[web_sales]) + HiveProject(d_date_sk=[$0], d_year=[$6]) + HiveFilter(condition=[AND(BETWEEN(false, $6, 1999, 2001), IS NOT NULL($0))]) + HiveTableScan(table=[[default, date_dim]], table:alias=[d3]) + HiveProject(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11]) + HiveFilter(condition=[AND(IS NOT NULL($0), IS NOT NULL($7), IS NOT NULL($9), IS NOT NULL($11))]) + HiveTableScan(table=[[default, item]], table:alias=[iws]) HiveJoin(condition=[true], joinType=[inner], algorithm=[none], cost=[not available]) HiveProject(cnt=[$0]) HiveFilter(condition=[<=(sq_count_check($0), 1)]) diff --git a/ql/src/test/results/clientpositive/perf/tez/query14.q.out b/ql/src/test/results/clientpositive/perf/tez/query14.q.out index c078c271ec..2c280230fe 100644 --- a/ql/src/test/results/clientpositive/perf/tez/query14.q.out +++ b/ql/src/test/results/clientpositive/perf/tez/query14.q.out @@ -1,9 +1,9 @@ -Warning: Shuffle Join MERGEJOIN[1446][tables = [$hdt$_1, $hdt$_2]] in Stage 'Reducer 5' is a cross product -Warning: Shuffle Join MERGEJOIN[1458][tables = [$hdt$_1, $hdt$_2, $hdt$_0]] in Stage 'Reducer 6' is a cross product -Warning: Shuffle Join MERGEJOIN[1448][tables = [$hdt$_1, $hdt$_2]] in Stage 'Reducer 13' is a cross product -Warning: Shuffle Join MERGEJOIN[1471][tables = [$hdt$_1, $hdt$_2, $hdt$_0]] in Stage 'Reducer 14' is a cross product -Warning: Shuffle Join MERGEJOIN[1450][tables = [$hdt$_2, $hdt$_3]] in Stage 'Reducer 18' is a cross product -Warning: Shuffle Join MERGEJOIN[1484][tables = [$hdt$_2, $hdt$_3, $hdt$_1]] in Stage 'Reducer 19' is a cross product +Warning: Shuffle Join MERGEJOIN[1440][tables = [$hdt$_1, $hdt$_2]] in Stage 'Reducer 5' is a cross product +Warning: Shuffle Join MERGEJOIN[1452][tables = [$hdt$_1, $hdt$_2, $hdt$_0]] in Stage 'Reducer 6' is a cross product +Warning: Shuffle Join MERGEJOIN[1442][tables = [$hdt$_1, $hdt$_2]] in Stage 'Reducer 13' is a cross product +Warning: Shuffle Join MERGEJOIN[1465][tables = [$hdt$_1, $hdt$_2, $hdt$_0]] in Stage 'Reducer 14' is a cross product +Warning: Shuffle Join MERGEJOIN[1444][tables = [$hdt$_2, $hdt$_3]] in Stage 'Reducer 18' is a cross product +Warning: Shuffle Join MERGEJOIN[1478][tables = [$hdt$_2, $hdt$_3, $hdt$_1]] in Stage 'Reducer 19' is a cross product PREHOOK: query: explain with cross_items as (select i_item_sk ss_item_sk @@ -225,35 +225,31 @@ POSTHOOK: Output: hdfs://### HDFS PATH ### Plan optimized by CBO. Vertex dependency in root stage -Map 1 <- Reducer 108 (BROADCAST_EDGE) -Map 100 <- Reducer 103 (BROADCAST_EDGE) -Map 110 <- Reducer 105 (BROADCAST_EDGE) -Map 111 <- Reducer 107 (BROADCAST_EDGE) -Map 112 <- Reducer 63 (BROADCAST_EDGE), Reducer 83 (BROADCAST_EDGE) -Map 113 <- Reducer 68 (BROADCAST_EDGE), Reducer 93 (BROADCAST_EDGE) +Map 1 <- Reducer 102 (BROADCAST_EDGE) +Map 104 <- Reducer 99 (BROADCAST_EDGE) +Map 105 <- Reducer 101 (BROADCAST_EDGE) +Map 106 <- Reducer 63 (BROADCAST_EDGE), Reducer 80 (BROADCAST_EDGE) +Map 107 <- Reducer 68 (BROADCAST_EDGE), Reducer 85 (BROADCAST_EDGE) Map 20 <- Reducer 25 (BROADCAST_EDGE) Map 36 <- Reducer 41 (BROADCAST_EDGE) -Map 46 <- Reducer 109 (BROADCAST_EDGE) +Map 46 <- Reducer 103 (BROADCAST_EDGE) Map 50 <- Reducer 29 (BROADCAST_EDGE) Map 51 <- Reducer 43 (BROADCAST_EDGE) -Map 52 <- Reducer 58 (BROADCAST_EDGE), Reducer 72 (BROADCAST_EDGE) -Reducer 10 <- Map 1 (SIMPLE_EDGE), Map 102 (SIMPLE_EDGE), Union 11 (CONTAINS) -Reducer 101 <- Map 100 (SIMPLE_EDGE), Map 102 (SIMPLE_EDGE) -Reducer 103 <- Map 102 (CUSTOM_SIMPLE_EDGE) -Reducer 104 <- Map 102 (SIMPLE_EDGE), Map 110 (SIMPLE_EDGE) -Reducer 105 <- Map 102 (CUSTOM_SIMPLE_EDGE) -Reducer 106 <- Map 102 (SIMPLE_EDGE), Map 111 (SIMPLE_EDGE) -Reducer 107 <- Map 102 (CUSTOM_SIMPLE_EDGE) -Reducer 108 <- Map 102 (CUSTOM_SIMPLE_EDGE) -Reducer 109 <- Map 102 (CUSTOM_SIMPLE_EDGE) +Map 52 <- Reducer 58 (BROADCAST_EDGE), Reducer 71 (BROADCAST_EDGE) +Map 94 <- Reducer 97 (BROADCAST_EDGE) +Reducer 10 <- Map 1 (SIMPLE_EDGE), Map 96 (SIMPLE_EDGE), Union 11 (CONTAINS) +Reducer 100 <- Map 105 (SIMPLE_EDGE), Map 96 (SIMPLE_EDGE) +Reducer 101 <- Map 96 (CUSTOM_SIMPLE_EDGE) +Reducer 102 <- Map 96 (CUSTOM_SIMPLE_EDGE) +Reducer 103 <- Map 96 (CUSTOM_SIMPLE_EDGE) Reducer 12 <- Union 11 (CUSTOM_SIMPLE_EDGE) Reducer 13 <- Reducer 12 (CUSTOM_SIMPLE_EDGE), Reducer 32 (CUSTOM_SIMPLE_EDGE) Reducer 14 <- Reducer 13 (CUSTOM_SIMPLE_EDGE), Reducer 62 (CUSTOM_SIMPLE_EDGE), Union 7 (CONTAINS) -Reducer 15 <- Map 1 (SIMPLE_EDGE), Map 102 (SIMPLE_EDGE), Union 16 (CONTAINS) +Reducer 15 <- Map 1 (SIMPLE_EDGE), Map 96 (SIMPLE_EDGE), Union 16 (CONTAINS) Reducer 17 <- Union 16 (CUSTOM_SIMPLE_EDGE) Reducer 18 <- Reducer 17 (CUSTOM_SIMPLE_EDGE), Reducer 35 (CUSTOM_SIMPLE_EDGE) Reducer 19 <- Reducer 18 (CUSTOM_SIMPLE_EDGE), Reducer 67 (CUSTOM_SIMPLE_EDGE), Union 7 (CONTAINS) -Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 102 (SIMPLE_EDGE), Union 3 (CONTAINS) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 96 (SIMPLE_EDGE), Union 3 (CONTAINS) Reducer 21 <- Map 20 (SIMPLE_EDGE), Map 24 (SIMPLE_EDGE), Union 3 (CONTAINS) Reducer 22 <- Map 20 (SIMPLE_EDGE), Map 24 (SIMPLE_EDGE), Union 11 (CONTAINS) Reducer 23 <- Map 20 (SIMPLE_EDGE), Map 24 (SIMPLE_EDGE), Union 16 (CONTAINS) @@ -274,1157 +270,1107 @@ Reducer 42 <- Map 40 (SIMPLE_EDGE), Map 51 (SIMPLE_EDGE), Union 27 (CONTAINS) Reducer 43 <- Map 40 (CUSTOM_SIMPLE_EDGE) Reducer 44 <- Map 40 (SIMPLE_EDGE), Map 51 (SIMPLE_EDGE), Union 31 (CONTAINS) Reducer 45 <- Map 40 (SIMPLE_EDGE), Map 51 (SIMPLE_EDGE), Union 34 (CONTAINS) -Reducer 47 <- Map 102 (SIMPLE_EDGE), Map 46 (SIMPLE_EDGE), Union 27 (CONTAINS) -Reducer 48 <- Map 102 (SIMPLE_EDGE), Map 46 (SIMPLE_EDGE), Union 31 (CONTAINS) -Reducer 49 <- Map 102 (SIMPLE_EDGE), Map 46 (SIMPLE_EDGE), Union 34 (CONTAINS) +Reducer 47 <- Map 46 (SIMPLE_EDGE), Map 96 (SIMPLE_EDGE), Union 27 (CONTAINS) +Reducer 48 <- Map 46 (SIMPLE_EDGE), Map 96 (SIMPLE_EDGE), Union 31 (CONTAINS) +Reducer 49 <- Map 46 (SIMPLE_EDGE), Map 96 (SIMPLE_EDGE), Union 34 (CONTAINS) Reducer 5 <- Reducer 28 (CUSTOM_SIMPLE_EDGE), Reducer 4 (CUSTOM_SIMPLE_EDGE) Reducer 53 <- Map 52 (SIMPLE_EDGE), Map 57 (SIMPLE_EDGE) Reducer 54 <- Map 69 (SIMPLE_EDGE), Reducer 53 (SIMPLE_EDGE) -Reducer 55 <- Reducer 54 (ONE_TO_ONE_EDGE), Reducer 71 (ONE_TO_ONE_EDGE) +Reducer 55 <- Reducer 54 (ONE_TO_ONE_EDGE), Reducer 70 (SIMPLE_EDGE) Reducer 56 <- Reducer 55 (SIMPLE_EDGE) Reducer 58 <- Map 57 (CUSTOM_SIMPLE_EDGE) -Reducer 59 <- Map 112 (SIMPLE_EDGE), Map 57 (SIMPLE_EDGE) +Reducer 59 <- Map 106 (SIMPLE_EDGE), Map 57 (SIMPLE_EDGE) Reducer 6 <- Reducer 5 (CUSTOM_SIMPLE_EDGE), Reducer 56 (CUSTOM_SIMPLE_EDGE), Union 7 (CONTAINS) Reducer 60 <- Map 69 (SIMPLE_EDGE), Reducer 59 (SIMPLE_EDGE) -Reducer 61 <- Reducer 60 (ONE_TO_ONE_EDGE), Reducer 82 (ONE_TO_ONE_EDGE) +Reducer 61 <- Reducer 60 (ONE_TO_ONE_EDGE), Reducer 79 (SIMPLE_EDGE) Reducer 62 <- Reducer 61 (SIMPLE_EDGE) Reducer 63 <- Map 57 (CUSTOM_SIMPLE_EDGE) -Reducer 64 <- Map 113 (SIMPLE_EDGE), Map 57 (SIMPLE_EDGE) +Reducer 64 <- Map 107 (SIMPLE_EDGE), Map 57 (SIMPLE_EDGE) Reducer 65 <- Map 69 (SIMPLE_EDGE), Reducer 64 (SIMPLE_EDGE) -Reducer 66 <- Reducer 65 (ONE_TO_ONE_EDGE), Reducer 92 (ONE_TO_ONE_EDGE) +Reducer 66 <- Reducer 65 (ONE_TO_ONE_EDGE), Reducer 84 (SIMPLE_EDGE) Reducer 67 <- Reducer 66 (SIMPLE_EDGE) Reducer 68 <- Map 57 (CUSTOM_SIMPLE_EDGE) -Reducer 70 <- Map 69 (SIMPLE_EDGE), Reducer 76 (ONE_TO_ONE_EDGE) -Reducer 71 <- Reducer 70 (SIMPLE_EDGE) -Reducer 72 <- Reducer 71 (CUSTOM_SIMPLE_EDGE) -Reducer 73 <- Map 69 (SIMPLE_EDGE), Reducer 101 (SIMPLE_EDGE) -Reducer 74 <- Reducer 73 (SIMPLE_EDGE), Union 75 (CONTAINS) -Reducer 76 <- Union 75 (SIMPLE_EDGE) -Reducer 77 <- Map 69 (SIMPLE_EDGE), Reducer 104 (SIMPLE_EDGE) -Reducer 78 <- Reducer 77 (SIMPLE_EDGE), Union 75 (CONTAINS) -Reducer 79 <- Map 69 (SIMPLE_EDGE), Reducer 106 (SIMPLE_EDGE) +Reducer 70 <- Map 69 (SIMPLE_EDGE), Reducer 75 (ONE_TO_ONE_EDGE) +Reducer 71 <- Reducer 70 (CUSTOM_SIMPLE_EDGE) +Reducer 72 <- Map 69 (SIMPLE_EDGE), Reducer 95 (SIMPLE_EDGE) +Reducer 73 <- Reducer 72 (SIMPLE_EDGE), Union 74 (CONTAINS) +Reducer 75 <- Union 74 (SIMPLE_EDGE) +Reducer 76 <- Reducer 72 (SIMPLE_EDGE), Union 77 (CONTAINS) +Reducer 78 <- Union 77 (SIMPLE_EDGE) +Reducer 79 <- Map 69 (SIMPLE_EDGE), Reducer 78 (ONE_TO_ONE_EDGE) Reducer 8 <- Union 7 (SIMPLE_EDGE) -Reducer 80 <- Reducer 79 (SIMPLE_EDGE), Union 75 (CONTAINS) -Reducer 81 <- Map 69 (SIMPLE_EDGE), Reducer 87 (ONE_TO_ONE_EDGE) -Reducer 82 <- Reducer 81 (SIMPLE_EDGE) -Reducer 83 <- Reducer 82 (CUSTOM_SIMPLE_EDGE) -Reducer 84 <- Map 69 (SIMPLE_EDGE), Reducer 101 (SIMPLE_EDGE) -Reducer 85 <- Reducer 84 (SIMPLE_EDGE), Union 86 (CONTAINS) -Reducer 87 <- Union 86 (SIMPLE_EDGE) -Reducer 88 <- Reducer 84 (SIMPLE_EDGE), Union 89 (CONTAINS) +Reducer 80 <- Reducer 79 (CUSTOM_SIMPLE_EDGE) +Reducer 81 <- Reducer 72 (SIMPLE_EDGE), Union 82 (CONTAINS) +Reducer 83 <- Union 82 (SIMPLE_EDGE) +Reducer 84 <- Map 69 (SIMPLE_EDGE), Reducer 83 (ONE_TO_ONE_EDGE) +Reducer 85 <- Reducer 84 (CUSTOM_SIMPLE_EDGE) +Reducer 86 <- Map 69 (SIMPLE_EDGE), Reducer 98 (SIMPLE_EDGE) +Reducer 87 <- Reducer 86 (SIMPLE_EDGE), Union 74 (CONTAINS) +Reducer 88 <- Reducer 86 (SIMPLE_EDGE), Union 77 (CONTAINS) +Reducer 89 <- Reducer 86 (SIMPLE_EDGE), Union 82 (CONTAINS) Reducer 9 <- Reducer 8 (SIMPLE_EDGE) -Reducer 90 <- Union 89 (SIMPLE_EDGE) -Reducer 91 <- Map 69 (SIMPLE_EDGE), Reducer 90 (ONE_TO_ONE_EDGE) -Reducer 92 <- Reducer 91 (SIMPLE_EDGE) -Reducer 93 <- Reducer 92 (CUSTOM_SIMPLE_EDGE) -Reducer 94 <- Map 69 (SIMPLE_EDGE), Reducer 104 (SIMPLE_EDGE) -Reducer 95 <- Reducer 94 (SIMPLE_EDGE), Union 86 (CONTAINS) -Reducer 96 <- Reducer 94 (SIMPLE_EDGE), Union 89 (CONTAINS) -Reducer 97 <- Map 69 (SIMPLE_EDGE), Reducer 106 (SIMPLE_EDGE) -Reducer 98 <- Reducer 97 (SIMPLE_EDGE), Union 86 (CONTAINS) -Reducer 99 <- Reducer 97 (SIMPLE_EDGE), Union 89 (CONTAINS) +Reducer 90 <- Map 69 (SIMPLE_EDGE), Reducer 100 (SIMPLE_EDGE) +Reducer 91 <- Reducer 90 (SIMPLE_EDGE), Union 74 (CONTAINS) +Reducer 92 <- Reducer 90 (SIMPLE_EDGE), Union 77 (CONTAINS) +Reducer 93 <- Reducer 90 (SIMPLE_EDGE), Union 82 (CONTAINS) +Reducer 95 <- Map 94 (SIMPLE_EDGE), Map 96 (SIMPLE_EDGE) +Reducer 97 <- Map 96 (CUSTOM_SIMPLE_EDGE) +Reducer 98 <- Map 104 (SIMPLE_EDGE), Map 96 (SIMPLE_EDGE) +Reducer 99 <- Map 96 (CUSTOM_SIMPLE_EDGE) Stage-0 Fetch Operator limit:100 Stage-1 Reducer 9 vectorized - File Output Operator [FS_1726] - Limit [LIM_1725] (rows=7 width=192) + File Output Operator [FS_1712] + Limit [LIM_1711] (rows=7 width=192) Number of rows:100 - Select Operator [SEL_1724] (rows=7 width=192) + Select Operator [SEL_1710] (rows=7 width=192) Output:["_col0","_col1","_col2","_col3","_col4","_col5"] <-Reducer 8 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1723] - Select Operator [SEL_1722] (rows=7 width=192) + SHUFFLE [RS_1709] + Select Operator [SEL_1708] (rows=7 width=192) Output:["_col0","_col1","_col2","_col3","_col4","_col5"] - Group By Operator [GBY_1721] (rows=7 width=200) + Group By Operator [GBY_1707] (rows=7 width=200) Output:["_col0","_col1","_col2","_col3","_col5","_col6"],aggregations:["sum(VALUE._col0)","sum(VALUE._col1)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4 <-Union 7 [SIMPLE_EDGE] <-Reducer 14 [CONTAINS] - Reduce Output Operator [RS_1477] + Reduce Output Operator [RS_1471] PartitionCols:_col0, _col1, _col2, _col3, _col4 - Group By Operator [GBY_1476] (rows=7 width=200) + Group By Operator [GBY_1470] (rows=7 width=200) Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"],aggregations:["sum(_col4)","sum(_col5)"],keys:_col0, _col1, _col2, _col3, 0L - Top N Key Operator [TNK_1475] (rows=3 width=221) + Top N Key Operator [TNK_1469] (rows=3 width=221) keys:_col0, _col1, _col2, _col3, 0L,sort order:+++++,top n:100 - Select Operator [SEL_1473] (rows=1 width=223) + Select Operator [SEL_1467] (rows=1 width=223) Output:["_col0","_col1","_col2","_col3","_col4","_col5"] - Filter Operator [FIL_1472] (rows=1 width=244) + Filter Operator [FIL_1466] (rows=1 width=244) predicate:(_col5 > _col1) - Merge Join Operator [MERGEJOIN_1471] (rows=1 width=244) + Merge Join Operator [MERGEJOIN_1465] (rows=1 width=244) Conds:(Inner),Output:["_col1","_col2","_col3","_col4","_col5","_col6"] <-Reducer 13 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_381] - Merge Join Operator [MERGEJOIN_1448] (rows=1 width=112) + PARTITION_ONLY_SHUFFLE [RS_377] + Merge Join Operator [MERGEJOIN_1442] (rows=1 width=112) Conds:(Inner),Output:["_col1"] <-Reducer 12 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_1732] - Select Operator [SEL_1731] (rows=1 width=8) - Filter Operator [FIL_1730] (rows=1 width=8) + PARTITION_ONLY_SHUFFLE [RS_1718] + Select Operator [SEL_1717] (rows=1 width=8) + Filter Operator [FIL_1716] (rows=1 width=8) predicate:(sq_count_check(_col0) <= 1) - Group By Operator [GBY_1729] (rows=1 width=8) + Group By Operator [GBY_1715] (rows=1 width=8) Output:["_col0"],aggregations:["count()"] - Select Operator [SEL_1728] (rows=1 width=8) - Group By Operator [GBY_1727] (rows=1 width=8) + Select Operator [SEL_1714] (rows=1 width=8) + Group By Operator [GBY_1713] (rows=1 width=8) Output:["_col0"],aggregations:["count(VALUE._col0)"] <-Union 11 [CUSTOM_SIMPLE_EDGE] <-Reducer 10 [CONTAINS] - Reduce Output Operator [RS_1470] - Group By Operator [GBY_1469] (rows=1 width=8) + Reduce Output Operator [RS_1464] + Group By Operator [GBY_1463] (rows=1 width=8) Output:["_col0"],aggregations:["count(_col0)"] - Select Operator [SEL_1468] (rows=26270325 width=1) + Select Operator [SEL_1462] (rows=26270325 width=1) Output:["_col0"] - Select Operator [SEL_1466] (rows=14736682 width=0) + Select Operator [SEL_1460] (rows=14736682 width=0) Output:["_col0"] - Merge Join Operator [MERGEJOIN_1465] (rows=14736682 width=0) - Conds:RS_1648._col0=RS_1629._col0(Inner),Output:["_col1"] - <-Map 102 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1629] + Merge Join Operator [MERGEJOIN_1459] (rows=14736682 width=0) + Conds:RS_1642._col0=RS_1623._col0(Inner),Output:["_col1"] + <-Map 96 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_1623] PartitionCols:_col0 - Select Operator [SEL_1618] (rows=1957 width=8) + Select Operator [SEL_1612] (rows=1957 width=8) Output:["_col0"] - Filter Operator [FIL_1617] (rows=1957 width=8) + Filter Operator [FIL_1611] (rows=1957 width=8) predicate:(d_date_sk is not null and d_year BETWEEN 1999 AND 2001) TableScan [TS_97] (rows=73049 width=8) default@date_dim,d1,Tbl:COMPLETE,Col:COMPLETE,Output:["d_date_sk","d_year"] <-Map 1 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1648] + SHUFFLE [RS_1642] PartitionCols:_col0 - Select Operator [SEL_1646] (rows=550076554 width=7) + Select Operator [SEL_1640] (rows=550076554 width=7) Output:["_col0","_col1"] - Filter Operator [FIL_1645] (rows=550076554 width=7) + Filter Operator [FIL_1639] (rows=550076554 width=7) predicate:((ss_sold_date_sk BETWEEN DynamicValue(RS_7_date_dim_d_date_sk_min) AND DynamicValue(RS_7_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_7_date_dim_d_date_sk_bloom_filter))) and ss_sold_date_sk is not null) TableScan [TS_0] (rows=575995635 width=7) default@store_sales,store_sales,Tbl:COMPLETE,Col:COMPLETE,Output:["ss_sold_date_sk","ss_quantity"] - <-Reducer 108 [BROADCAST_EDGE] vectorized - BROADCAST [RS_1644] - Group By Operator [GBY_1643] (rows=1 width=12) + <-Reducer 102 [BROADCAST_EDGE] vectorized + BROADCAST [RS_1638] + Group By Operator [GBY_1637] (rows=1 width=12) Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Map 102 [CUSTOM_SIMPLE_EDGE] vectorized - SHUFFLE [RS_1641] - Group By Operator [GBY_1636] (rows=1 width=12) + <-Map 96 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_1635] + Group By Operator [GBY_1630] (rows=1 width=12) Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_1626] (rows=1957 width=4) + Select Operator [SEL_1620] (rows=1957 width=4) Output:["_col0"] - Please refer to the previous Select Operator [SEL_1618] + Please refer to the previous Select Operator [SEL_1612] <-Reducer 22 [CONTAINS] - Reduce Output Operator [RS_1502] - Group By Operator [GBY_1501] (rows=1 width=8) + Reduce Output Operator [RS_1496] + Group By Operator [GBY_1495] (rows=1 width=8) Output:["_col0"],aggregations:["count(_col0)"] - Select Operator [SEL_1500] (rows=26270325 width=1) + Select Operator [SEL_1494] (rows=26270325 width=1) Output:["_col0"] - Select Operator [SEL_1498] (rows=7676736 width=3) + Select Operator [SEL_1492] (rows=7676736 width=3) Output:["_col0"] - Merge Join Operator [MERGEJOIN_1497] (rows=7676736 width=3) - Conds:RS_1800._col0=RS_1787._col0(Inner),Output:["_col1"] + Merge Join Operator [MERGEJOIN_1491] (rows=7676736 width=3) + Conds:RS_1776._col0=RS_1763._col0(Inner),Output:["_col1"] <-Map 24 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1787] + SHUFFLE [RS_1763] PartitionCols:_col0 - Select Operator [SEL_1782] (rows=1957 width=8) + Select Operator [SEL_1758] (rows=1957 width=8) Output:["_col0"] - Filter Operator [FIL_1781] (rows=1957 width=8) + Filter Operator [FIL_1757] (rows=1957 width=8) predicate:(d_date_sk is not null and d_year BETWEEN 1998 AND 2000) TableScan [TS_13] (rows=73049 width=8) default@date_dim,date_dim,Tbl:COMPLETE,Col:COMPLETE,Output:["d_date_sk","d_year"] <-Map 20 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1800] + SHUFFLE [RS_1776] PartitionCols:_col0 - Select Operator [SEL_1798] (rows=286549727 width=7) + Select Operator [SEL_1774] (rows=286549727 width=7) Output:["_col0","_col1"] - Filter Operator [FIL_1797] (rows=286549727 width=7) + Filter Operator [FIL_1773] (rows=286549727 width=7) predicate:((cs_sold_date_sk BETWEEN DynamicValue(RS_17_date_dim_d_date_sk_min) AND DynamicValue(RS_17_date_dim_d_date_sk_max) and in_bloom_filter(cs_sold_date_sk, DynamicValue(RS_17_date_dim_d_date_sk_bloom_filter))) and cs_sold_date_sk is not null) TableScan [TS_10] (rows=287989836 width=7) default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:COMPLETE,Output:["cs_sold_date_sk","cs_quantity"] <-Reducer 25 [BROADCAST_EDGE] vectorized - BROADCAST [RS_1796] - Group By Operator [GBY_1795] (rows=1 width=12) + BROADCAST [RS_1772] + Group By Operator [GBY_1771] (rows=1 width=12) Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] <-Map 24 [CUSTOM_SIMPLE_EDGE] vectorized - SHUFFLE [RS_1793] - Group By Operator [GBY_1791] (rows=1 width=12) + SHUFFLE [RS_1769] + Group By Operator [GBY_1767] (rows=1 width=12) Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_1784] (rows=1957 width=4) + Select Operator [SEL_1760] (rows=1957 width=4) Output:["_col0"] - Please refer to the previous Select Operator [SEL_1782] + Please refer to the previous Select Operator [SEL_1758] <-Reducer 38 [CONTAINS] - Reduce Output Operator [RS_1538] - Group By Operator [GBY_1537] (rows=1 width=8) + Reduce Output Operator [RS_1532] + Group By Operator [GBY_1531] (rows=1 width=8) Output:["_col0"],aggregations:["count(_col0)"] - Select Operator [SEL_1536] (rows=26270325 width=1) + Select Operator [SEL_1530] (rows=26270325 width=1) Output:["_col0"] - Select Operator [SEL_1534] (rows=3856907 width=3) + Select Operator [SEL_1528] (rows=3856907 width=3) Output:["_col0"] - Merge Join Operator [MERGEJOIN_1533] (rows=3856907 width=3) - Conds:RS_1828._col0=RS_1815._col0(Inner),Output:["_col1"] + Merge Join Operator [MERGEJOIN_1527] (rows=3856907 width=3) + Conds:RS_1804._col0=RS_1791._col0(Inner),Output:["_col1"] <-Map 40 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1815] + SHUFFLE [RS_1791] PartitionCols:_col0 - Select Operator [SEL_1810] (rows=1957 width=8) + Select Operator [SEL_1786] (rows=1957 width=8) Output:["_col0"] - Filter Operator [FIL_1809] (rows=1957 width=8) + Filter Operator [FIL_1785] (rows=1957 width=8) predicate:(d_date_sk is not null and d_year BETWEEN 1998 AND 2000) TableScan [TS_24] (rows=73049 width=8) default@date_dim,date_dim,Tbl:COMPLETE,Col:COMPLETE,Output:["d_date_sk","d_year"] <-Map 36 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1828] + SHUFFLE [RS_1804] PartitionCols:_col0 - Select Operator [SEL_1826] (rows=143966864 width=7) + Select Operator [SEL_1802] (rows=143966864 width=7) Output:["_col0","_col1"] - Filter Operator [FIL_1825] (rows=143966864 width=7) + Filter Operator [FIL_1801] (rows=143966864 width=7) predicate:((ws_sold_date_sk BETWEEN DynamicValue(RS_28_date_dim_d_date_sk_min) AND DynamicValue(RS_28_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_28_date_dim_d_date_sk_bloom_filter))) and ws_sold_date_sk is not null) TableScan [TS_21] (rows=144002668 width=7) default@web_sales,web_sales,Tbl:COMPLETE,Col:COMPLETE,Output:["ws_sold_date_sk","ws_quantity"] <-Reducer 41 [BROADCAST_EDGE] vectorized - BROADCAST [RS_1824] - Group By Operator [GBY_1823] (rows=1 width=12) + BROADCAST [RS_1800] + Group By Operator [GBY_1799] (rows=1 width=12) Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] <-Map 40 [CUSTOM_SIMPLE_EDGE] vectorized - SHUFFLE [RS_1821] - Group By Operator [GBY_1819] (rows=1 width=12) + SHUFFLE [RS_1797] + Group By Operator [GBY_1795] (rows=1 width=12) Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_1812] (rows=1957 width=4) + Select Operator [SEL_1788] (rows=1957 width=4) Output:["_col0"] - Please refer to the previous Select Operator [SEL_1810] + Please refer to the previous Select Operator [SEL_1786] <-Reducer 32 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_1735] - Select Operator [SEL_1734] (rows=1 width=112) + PARTITION_ONLY_SHUFFLE [RS_1721] + Select Operator [SEL_1720] (rows=1 width=112) Output:["_col0"] - Group By Operator [GBY_1733] (rows=1 width=120) + Group By Operator [GBY_1719] (rows=1 width=120) Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)","count(VALUE._col1)"] <-Union 31 [CUSTOM_SIMPLE_EDGE] <-Reducer 30 [CONTAINS] - Reduce Output Operator [RS_1520] - Group By Operator [GBY_1519] (rows=1 width=120) + Reduce Output Operator [RS_1514] + Group By Operator [GBY_1513] (rows=1 width=120) Output:["_col0","_col1"],aggregations:["sum(_col0)","count(_col0)"] - Select Operator [SEL_1518] (rows=26270325 width=44) + Select Operator [SEL_1512] (rows=26270325 width=44) Output:["_col0"] - Select Operator [SEL_1516] (rows=7676736 width=94) + Select Operator [SEL_1510] (rows=7676736 width=94) Output:["_col0","_col1"] - Merge Join Operator [MERGEJOIN_1515] (rows=7676736 width=94) - Conds:RS_1807._col0=RS_1788._col0(Inner),Output:["_col1","_col2"] + Merge Join Operator [MERGEJOIN_1509] (rows=7676736 width=94) + Conds:RS_1783._col0=RS_1764._col0(Inner),Output:["_col1","_col2"] <-Map 24 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1788] + SHUFFLE [RS_1764] PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_1782] + Please refer to the previous Select Operator [SEL_1758] <-Map 50 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1807] + SHUFFLE [RS_1783] PartitionCols:_col0 - Select Operator [SEL_1805] (rows=286549727 width=119) + Select Operator [SEL_1781] (rows=286549727 width=119) Output:["_col0","_col1","_col2"] - Filter Operator [FIL_1804] (rows=286549727 width=119) + Filter Operator [FIL_1780] (rows=286549727 width=119) predicate:((cs_sold_date_sk BETWEEN DynamicValue(RS_62_date_dim_d_date_sk_min) AND DynamicValue(RS_62_date_dim_d_date_sk_max) and in_bloom_filter(cs_sold_date_sk, DynamicValue(RS_62_date_dim_d_date_sk_bloom_filter))) and cs_sold_date_sk is not null) TableScan [TS_55] (rows=287989836 width=119) default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:COMPLETE,Output:["cs_sold_date_sk","cs_quantity","cs_list_price"] <-Reducer 29 [BROADCAST_EDGE] vectorized - BROADCAST [RS_1803] - Group By Operator [GBY_1802] (rows=1 width=12) + BROADCAST [RS_1779] + Group By Operator [GBY_1778] (rows=1 width=12) Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] <-Map 24 [CUSTOM_SIMPLE_EDGE] vectorized - SHUFFLE [RS_1794] - Group By Operator [GBY_1792] (rows=1 width=12) + SHUFFLE [RS_1770] + Group By Operator [GBY_1768] (rows=1 width=12) Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_1786] (rows=1957 width=4) + Select Operator [SEL_1762] (rows=1957 width=4) Output:["_col0"] - Please refer to the previous Select Operator [SEL_1782] + Please refer to the previous Select Operator [SEL_1758] <-Reducer 44 [CONTAINS] - Reduce Output Operator [RS_1556] - Group By Operator [GBY_1555] (rows=1 width=120) + Reduce Output Operator [RS_1550] + Group By Operator [GBY_1549] (rows=1 width=120) Output:["_col0","_col1"],aggregations:["sum(_col0)","count(_col0)"] - Select Operator [SEL_1554] (rows=26270325 width=44) + Select Operator [SEL_1548] (rows=26270325 width=44) Output:["_col0"] - Select Operator [SEL_1552] (rows=3856907 width=114) + Select Operator [SEL_1546] (rows=3856907 width=114) Output:["_col0","_col1"] - Merge Join Operator [MERGEJOIN_1551] (rows=3856907 width=114) - Conds:RS_1835._col0=RS_1816._col0(Inner),Output:["_col1","_col2"] + Merge Join Operator [MERGEJOIN_1545] (rows=3856907 width=114) + Conds:RS_1811._col0=RS_1792._col0(Inner),Output:["_col1","_col2"] <-Map 40 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1816] + SHUFFLE [RS_1792] PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_1810] + Please refer to the previous Select Operator [SEL_1786] <-Map 51 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1835] + SHUFFLE [RS_1811] PartitionCols:_col0 - Select Operator [SEL_1833] (rows=143966864 width=119) + Select Operator [SEL_1809] (rows=143966864 width=119) Output:["_col0","_col1","_col2"] - Filter Operator [FIL_1832] (rows=143966864 width=119) + Filter Operator [FIL_1808] (rows=143966864 width=119) predicate:((ws_sold_date_sk BETWEEN DynamicValue(RS_73_date_dim_d_date_sk_min) AND DynamicValue(RS_73_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_73_date_dim_d_date_sk_bloom_filter))) and ws_sold_date_sk is not null) TableScan [TS_66] (rows=144002668 width=119) default@web_sales,web_sales,Tbl:COMPLETE,Col:COMPLETE,Output:["ws_sold_date_sk","ws_quantity","ws_list_price"] <-Reducer 43 [BROADCAST_EDGE] vectorized - BROADCAST [RS_1831] - Group By Operator [GBY_1830] (rows=1 width=12) + BROADCAST [RS_1807] + Group By Operator [GBY_1806] (rows=1 width=12) Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] <-Map 40 [CUSTOM_SIMPLE_EDGE] vectorized - SHUFFLE [RS_1822] - Group By Operator [GBY_1820] (rows=1 width=12) + SHUFFLE [RS_1798] + Group By Operator [GBY_1796] (rows=1 width=12) Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_1814] (rows=1957 width=4) + Select Operator [SEL_1790] (rows=1957 width=4) Output:["_col0"] - Please refer to the previous Select Operator [SEL_1810] + Please refer to the previous Select Operator [SEL_1786] <-Reducer 48 [CONTAINS] - Reduce Output Operator [RS_1574] - Group By Operator [GBY_1573] (rows=1 width=120) + Reduce Output Operator [RS_1568] + Group By Operator [GBY_1567] (rows=1 width=120) Output:["_col0","_col1"],aggregations:["sum(_col0)","count(_col0)"] - Select Operator [SEL_1572] (rows=26270325 width=44) + Select Operator [SEL_1566] (rows=26270325 width=44) Output:["_col0"] - Select Operator [SEL_1570] (rows=14736682 width=0) + Select Operator [SEL_1564] (rows=14736682 width=0) Output:["_col0","_col1"] - Merge Join Operator [MERGEJOIN_1569] (rows=14736682 width=0) - Conds:RS_1842._col0=RS_1630._col0(Inner),Output:["_col1","_col2"] - <-Map 102 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1630] + Merge Join Operator [MERGEJOIN_1563] (rows=14736682 width=0) + Conds:RS_1818._col0=RS_1624._col0(Inner),Output:["_col1","_col2"] + <-Map 96 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_1624] PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_1618] + Please refer to the previous Select Operator [SEL_1612] <-Map 46 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1842] + SHUFFLE [RS_1818] PartitionCols:_col0 - Select Operator [SEL_1840] (rows=550076554 width=114) + Select Operator [SEL_1816] (rows=550076554 width=114) Output:["_col0","_col1","_col2"] - Filter Operator [FIL_1839] (rows=550076554 width=114) + Filter Operator [FIL_1815] (rows=550076554 width=114) predicate:((ss_sold_date_sk BETWEEN DynamicValue(RS_52_date_dim_d_date_sk_min) AND DynamicValue(RS_52_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_52_date_dim_d_date_sk_bloom_filter))) and ss_sold_date_sk is not null) TableScan [TS_45] (rows=575995635 width=114) default@store_sales,store_sales,Tbl:COMPLETE,Col:COMPLETE,Output:["ss_sold_date_sk","ss_quantity","ss_list_price"] - <-Reducer 109 [BROADCAST_EDGE] vectorized - BROADCAST [RS_1838] - Group By Operator [GBY_1837] (rows=1 width=12) + <-Reducer 103 [BROADCAST_EDGE] vectorized + BROADCAST [RS_1814] + Group By Operator [GBY_1813] (rows=1 width=12) Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Map 102 [CUSTOM_SIMPLE_EDGE] vectorized - SHUFFLE [RS_1642] - Group By Operator [GBY_1637] (rows=1 width=12) + <-Map 96 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_1636] + Group By Operator [GBY_1631] (rows=1 width=12) Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_1628] (rows=1957 width=4) + Select Operator [SEL_1622] (rows=1957 width=4) Output:["_col0"] - Please refer to the previous Select Operator [SEL_1618] + Please refer to the previous Select Operator [SEL_1612] <-Reducer 62 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_1753] - Group By Operator [GBY_1752] (rows=1 width=132) + PARTITION_ONLY_SHUFFLE [RS_1734] + Group By Operator [GBY_1733] (rows=1 width=132) Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["sum(VALUE._col0)","count(VALUE._col1)"],keys:KEY._col0, KEY._col1, KEY._col2 <-Reducer 61 [SIMPLE_EDGE] - SHUFFLE [RS_375] + SHUFFLE [RS_371] PartitionCols:_col0, _col1, _col2 - Group By Operator [GBY_374] (rows=1 width=132) + Group By Operator [GBY_370] (rows=1 width=132) Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["sum(_col3)","count()"],keys:_col0, _col1, _col2 - Select Operator [SEL_372] (rows=1 width=128) + Select Operator [SEL_368] (rows=1 width=128) Output:["_col0","_col1","_col2","_col3"] - Merge Join Operator [MERGEJOIN_1444] (rows=1 width=128) - Conds:RS_369._col1=RS_1743._col0(Inner),Output:["_col2","_col3","_col8","_col9","_col10"] - <-Reducer 82 [ONE_TO_ONE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_1743] + Merge Join Operator [MERGEJOIN_1438] (rows=1 width=128) + Conds:RS_365._col1=RS_366._col0(Left Semi),Output:["_col2","_col3","_col8","_col9","_col10"] + <-Reducer 79 [SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_366] PartitionCols:_col0 - Group By Operator [GBY_1742] (rows=362 width=4) - Output:["_col0"],keys:KEY._col0 - <-Reducer 81 [SIMPLE_EDGE] - SHUFFLE [RS_360] - PartitionCols:_col0 - Group By Operator [GBY_359] (rows=362 width=4) - Output:["_col0"],keys:_col0 - Merge Join Operator [MERGEJOIN_1427] (rows=724 width=4) - Conds:RS_1698._col1, _col2, _col3=RS_1741._col0, _col1, _col2(Inner),Output:["_col0"] - <-Map 69 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1698] - PartitionCols:_col1, _col2, _col3 - Select Operator [SEL_1686] (rows=458612 width=15) - Output:["_col0","_col1","_col2","_col3"] - Filter Operator [FIL_1677] (rows=458612 width=15) - predicate:(i_brand_id is not null and i_category_id is not null and i_class_id is not null and i_item_sk is not null) - TableScan [TS_91] (rows=462000 width=15) - default@item,item,Tbl:COMPLETE,Col:COMPLETE,Output:["i_item_sk","i_brand_id","i_class_id","i_category_id"] - <-Reducer 87 [ONE_TO_ONE_EDGE] vectorized - FORWARD [RS_1741] - PartitionCols:_col0, _col1, _col2 - Select Operator [SEL_1740] (rows=1 width=12) - Output:["_col0","_col1","_col2"] - Filter Operator [FIL_1739] (rows=1 width=20) - predicate:(_col3 = 3L) - Group By Operator [GBY_1738] (rows=121728 width=19) - Output:["_col0","_col1","_col2","_col3"],aggregations:["count(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2 - <-Union 86 [SIMPLE_EDGE] - <-Reducer 85 [CONTAINS] vectorized - Reduce Output Operator [RS_1870] - PartitionCols:_col0, _col1, _col2 - Group By Operator [GBY_1869] (rows=121728 width=19) - Output:["_col0","_col1","_col2","_col3"],aggregations:["count(_col3)"],keys:_col0, _col1, _col2 - Group By Operator [GBY_1868] (rows=121728 width=19) - Output:["_col0","_col1","_col2","_col3"],aggregations:["count(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2 - <-Reducer 84 [SIMPLE_EDGE] - SHUFFLE [RS_304] - PartitionCols:_col0, _col1, _col2 - Group By Operator [GBY_303] (rows=121728 width=19) - Output:["_col0","_col1","_col2","_col3"],aggregations:["count()"],keys:_col5, _col6, _col7 - Merge Join Operator [MERGEJOIN_1422] (rows=14628613 width=11) - Conds:RS_299._col1=RS_1699._col0(Inner),Output:["_col5","_col6","_col7"] - <-Map 69 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1699] + Group By Operator [GBY_364] (rows=362 width=4) + Output:["_col0"],keys:_col0 + Merge Join Operator [MERGEJOIN_1421] (rows=724 width=4) + Conds:RS_1693._col1, _col2, _col3=RS_1727._col0, _col1, _col2(Inner),Output:["_col0"] + <-Map 69 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1693] + PartitionCols:_col1, _col2, _col3 + Select Operator [SEL_1684] (rows=458612 width=15) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_1675] (rows=458612 width=15) + predicate:(i_brand_id is not null and i_category_id is not null and i_class_id is not null and i_item_sk is not null) + TableScan [TS_88] (rows=462000 width=15) + default@item,item,Tbl:COMPLETE,Col:COMPLETE,Output:["i_item_sk","i_brand_id","i_class_id","i_category_id"] + <-Reducer 78 [ONE_TO_ONE_EDGE] vectorized + FORWARD [RS_1727] + PartitionCols:_col0, _col1, _col2 + Select Operator [SEL_1726] (rows=1 width=12) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_1725] (rows=1 width=20) + predicate:(_col3 = 3L) + Group By Operator [GBY_1724] (rows=121728 width=19) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2 + <-Union 77 [SIMPLE_EDGE] + <-Reducer 76 [CONTAINS] vectorized + Reduce Output Operator [RS_1830] + PartitionCols:_col0, _col1, _col2 + Group By Operator [GBY_1829] (rows=121728 width=19) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count(_col3)"],keys:_col0, _col1, _col2 + Group By Operator [GBY_1828] (rows=121728 width=19) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2 + <-Reducer 72 [SIMPLE_EDGE] + SHUFFLE [RS_302] + PartitionCols:_col0, _col1, _col2 + Group By Operator [GBY_110] (rows=121728 width=19) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count()"],keys:_col5, _col6, _col7 + Merge Join Operator [MERGEJOIN_1401] (rows=14628613 width=11) + Conds:RS_106._col1=RS_1689._col0(Inner),Output:["_col5","_col6","_col7"] + <-Map 69 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1689] + PartitionCols:_col0 + Select Operator [SEL_1680] (rows=458612 width=15) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_1671] (rows=458612 width=15) + predicate:(i_brand_id is not null and i_category_id is not null and i_class_id is not null and i_item_sk is not null) + Please refer to the previous TableScan [TS_88] + <-Reducer 95 [SIMPLE_EDGE] + SHUFFLE [RS_106] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_1400] (rows=14736682 width=4) + Conds:RS_1824._col0=RS_1613._col0(Inner),Output:["_col1"] + <-Map 96 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_1613] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_1612] + <-Map 94 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1824] PartitionCols:_col0 - Select Operator [SEL_1687] (rows=458612 width=15) - Output:["_col0","_col1","_col2","_col3"] - Filter Operator [FIL_1678] (rows=458612 width=15) - predicate:(i_brand_id is not null and i_category_id is not null and i_class_id is not null and i_item_sk is not null) - Please refer to the previous TableScan [TS_91] - <-Reducer 101 [SIMPLE_EDGE] - SHUFFLE [RS_299] - PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_1406] (rows=14736682 width=4) - Conds:RS_1848._col0=RS_1619._col0(Inner),Output:["_col1"] - <-Map 102 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1619] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_1618] - <-Map 100 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1848] - PartitionCols:_col0 - Select Operator [SEL_1847] (rows=550076554 width=7) - Output:["_col0","_col1"] - Filter Operator [FIL_1846] (rows=550076554 width=7) - predicate:((ss_sold_date_sk BETWEEN DynamicValue(RS_104_d1_d_date_sk_min) AND DynamicValue(RS_104_d1_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_104_d1_d_date_sk_bloom_filter))) and ss_item_sk is not null and ss_sold_date_sk is not null) - TableScan [TS_94] (rows=575995635 width=7) - default@store_sales,store_sales,Tbl:COMPLETE,Col:COMPLETE,Output:["ss_sold_date_sk","ss_item_sk"] - <-Reducer 103 [BROADCAST_EDGE] vectorized - BROADCAST [RS_1845] - Group By Operator [GBY_1844] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Map 102 [CUSTOM_SIMPLE_EDGE] vectorized - SHUFFLE [RS_1638] - Group By Operator [GBY_1633] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_1620] (rows=1957 width=4) - Output:["_col0"] - Please refer to the previous Select Operator [SEL_1618] - <-Reducer 95 [CONTAINS] vectorized - Reduce Output Operator [RS_1876] - PartitionCols:_col0, _col1, _col2 - Group By Operator [GBY_1875] (rows=121728 width=19) - Output:["_col0","_col1","_col2","_col3"],aggregations:["count(_col3)"],keys:_col0, _col1, _col2 - Group By Operator [GBY_1874] (rows=121728 width=19) - Output:["_col0","_col1","_col2","_col3"],aggregations:["count(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2 - <-Reducer 94 [SIMPLE_EDGE] - SHUFFLE [RS_324] - PartitionCols:_col0, _col1, _col2 - Group By Operator [GBY_323] (rows=121728 width=19) - Output:["_col0","_col1","_col2","_col3"],aggregations:["count()"],keys:_col5, _col6, _col7 - Merge Join Operator [MERGEJOIN_1424] (rows=7620440 width=11) - Conds:RS_319._col1=RS_1700._col0(Inner),Output:["_col5","_col6","_col7"] - <-Map 69 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1700] + Select Operator [SEL_1823] (rows=550076554 width=7) + Output:["_col0","_col1"] + Filter Operator [FIL_1822] (rows=550076554 width=7) + predicate:((ss_sold_date_sk BETWEEN DynamicValue(RS_104_d1_d_date_sk_min) AND DynamicValue(RS_104_d1_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_104_d1_d_date_sk_bloom_filter))) and ss_item_sk is not null and ss_sold_date_sk is not null) + TableScan [TS_94] (rows=575995635 width=7) + default@store_sales,store_sales,Tbl:COMPLETE,Col:COMPLETE,Output:["ss_sold_date_sk","ss_item_sk"] + <-Reducer 97 [BROADCAST_EDGE] vectorized + BROADCAST [RS_1821] + Group By Operator [GBY_1820] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 96 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_1632] + Group By Operator [GBY_1627] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_1614] (rows=1957 width=4) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_1612] + <-Reducer 88 [CONTAINS] vectorized + Reduce Output Operator [RS_1844] + PartitionCols:_col0, _col1, _col2 + Group By Operator [GBY_1843] (rows=121728 width=19) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count(_col3)"],keys:_col0, _col1, _col2 + Group By Operator [GBY_1842] (rows=121728 width=19) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2 + <-Reducer 86 [SIMPLE_EDGE] + SHUFFLE [RS_322] + PartitionCols:_col0, _col1, _col2 + Group By Operator [GBY_130] (rows=121728 width=19) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count()"],keys:_col5, _col6, _col7 + Merge Join Operator [MERGEJOIN_1403] (rows=7620440 width=11) + Conds:RS_126._col1=RS_1690._col0(Inner),Output:["_col5","_col6","_col7"] + <-Map 69 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1690] + PartitionCols:_col0 + Select Operator [SEL_1681] (rows=458612 width=15) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_1672] (rows=458612 width=15) + predicate:(i_brand_id is not null and i_category_id is not null and i_class_id is not null and i_item_sk is not null) + Please refer to the previous TableScan [TS_88] + <-Reducer 98 [SIMPLE_EDGE] + SHUFFLE [RS_126] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_1402] (rows=7676736 width=4) + Conds:RS_1838._col0=RS_1615._col0(Inner),Output:["_col1"] + <-Map 96 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_1615] PartitionCols:_col0 - Select Operator [SEL_1688] (rows=458612 width=15) - Output:["_col0","_col1","_col2","_col3"] - Filter Operator [FIL_1679] (rows=458612 width=15) - predicate:(i_brand_id is not null and i_category_id is not null and i_class_id is not null and i_item_sk is not null) - Please refer to the previous TableScan [TS_91] - <-Reducer 104 [SIMPLE_EDGE] - SHUFFLE [RS_319] - PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_1408] (rows=7676736 width=4) - Conds:RS_1856._col0=RS_1621._col0(Inner),Output:["_col1"] - <-Map 102 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1621] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_1618] - <-Map 110 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1856] - PartitionCols:_col0 - Select Operator [SEL_1855] (rows=286549727 width=7) - Output:["_col0","_col1"] - Filter Operator [FIL_1854] (rows=286549727 width=7) - predicate:((cs_sold_date_sk BETWEEN DynamicValue(RS_124_d2_d_date_sk_min) AND DynamicValue(RS_124_d2_d_date_sk_max) and in_bloom_filter(cs_sold_date_sk, DynamicValue(RS_124_d2_d_date_sk_bloom_filter))) and cs_item_sk is not null and cs_sold_date_sk is not null) - TableScan [TS_114] (rows=287989836 width=7) - default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:COMPLETE,Output:["cs_sold_date_sk","cs_item_sk"] - <-Reducer 105 [BROADCAST_EDGE] vectorized - BROADCAST [RS_1853] - Group By Operator [GBY_1852] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Map 102 [CUSTOM_SIMPLE_EDGE] vectorized - SHUFFLE [RS_1639] - Group By Operator [GBY_1634] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_1622] (rows=1957 width=4) - Output:["_col0"] - Please refer to the previous Select Operator [SEL_1618] - <-Reducer 98 [CONTAINS] vectorized - Reduce Output Operator [RS_1882] - PartitionCols:_col0, _col1, _col2 - Group By Operator [GBY_1881] (rows=121728 width=19) - Output:["_col0","_col1","_col2","_col3"],aggregations:["count(_col3)"],keys:_col0, _col1, _col2 - Group By Operator [GBY_1880] (rows=121728 width=19) - Output:["_col0","_col1","_col2","_col3"],aggregations:["count(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2 - <-Reducer 97 [SIMPLE_EDGE] - SHUFFLE [RS_345] - PartitionCols:_col0, _col1, _col2 - Group By Operator [GBY_344] (rows=121728 width=19) - Output:["_col0","_col1","_col2","_col3"],aggregations:["count()"],keys:_col5, _col6, _col7 - Merge Join Operator [MERGEJOIN_1426] (rows=3828623 width=11) - Conds:RS_340._col1=RS_1701._col0(Inner),Output:["_col5","_col6","_col7"] - <-Map 69 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1701] + Please refer to the previous Select Operator [SEL_1612] + <-Map 104 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1838] PartitionCols:_col0 - Select Operator [SEL_1689] (rows=458612 width=15) - Output:["_col0","_col1","_col2","_col3"] - Filter Operator [FIL_1680] (rows=458612 width=15) - predicate:(i_brand_id is not null and i_category_id is not null and i_class_id is not null and i_item_sk is not null) - Please refer to the previous TableScan [TS_91] - <-Reducer 106 [SIMPLE_EDGE] - SHUFFLE [RS_340] - PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_1410] (rows=3856907 width=4) - Conds:RS_1864._col0=RS_1623._col0(Inner),Output:["_col1"] - <-Map 102 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1623] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_1618] - <-Map 111 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1864] - PartitionCols:_col0 - Select Operator [SEL_1863] (rows=143966864 width=7) - Output:["_col0","_col1"] - Filter Operator [FIL_1862] (rows=143966864 width=7) - predicate:((ws_sold_date_sk BETWEEN DynamicValue(RS_145_d3_d_date_sk_min) AND DynamicValue(RS_145_d3_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_145_d3_d_date_sk_bloom_filter))) and ws_item_sk is not null and ws_sold_date_sk is not null) - TableScan [TS_135] (rows=144002668 width=7) - default@web_sales,web_sales,Tbl:COMPLETE,Col:COMPLETE,Output:["ws_sold_date_sk","ws_item_sk"] - <-Reducer 107 [BROADCAST_EDGE] vectorized - BROADCAST [RS_1861] - Group By Operator [GBY_1860] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Map 102 [CUSTOM_SIMPLE_EDGE] vectorized - SHUFFLE [RS_1640] - Group By Operator [GBY_1635] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_1624] (rows=1957 width=4) - Output:["_col0"] - Please refer to the previous Select Operator [SEL_1618] + Select Operator [SEL_1837] (rows=286549727 width=7) + Output:["_col0","_col1"] + Filter Operator [FIL_1836] (rows=286549727 width=7) + predicate:((cs_sold_date_sk BETWEEN DynamicValue(RS_124_d2_d_date_sk_min) AND DynamicValue(RS_124_d2_d_date_sk_max) and in_bloom_filter(cs_sold_date_sk, DynamicValue(RS_124_d2_d_date_sk_bloom_filter))) and cs_item_sk is not null and cs_sold_date_sk is not null) + TableScan [TS_114] (rows=287989836 width=7) + default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:COMPLETE,Output:["cs_sold_date_sk","cs_item_sk"] + <-Reducer 99 [BROADCAST_EDGE] vectorized + BROADCAST [RS_1835] + Group By Operator [GBY_1834] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 96 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_1633] + Group By Operator [GBY_1628] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_1616] (rows=1957 width=4) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_1612] + <-Reducer 92 [CONTAINS] vectorized + Reduce Output Operator [RS_1858] + PartitionCols:_col0, _col1, _col2 + Group By Operator [GBY_1857] (rows=121728 width=19) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count(_col3)"],keys:_col0, _col1, _col2 + Group By Operator [GBY_1856] (rows=121728 width=19) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2 + <-Reducer 90 [SIMPLE_EDGE] + SHUFFLE [RS_343] + PartitionCols:_col0, _col1, _col2 + Group By Operator [GBY_151] (rows=121728 width=19) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count()"],keys:_col5, _col6, _col7 + Merge Join Operator [MERGEJOIN_1405] (rows=3828623 width=11) + Conds:RS_147._col1=RS_1691._col0(Inner),Output:["_col5","_col6","_col7"] + <-Map 69 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1691] + PartitionCols:_col0 + Select Operator [SEL_1682] (rows=458612 width=15) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_1673] (rows=458612 width=15) + predicate:(i_brand_id is not null and i_category_id is not null and i_class_id is not null and i_item_sk is not null) + Please refer to the previous TableScan [TS_88] + <-Reducer 100 [SIMPLE_EDGE] + SHUFFLE [RS_147] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_1404] (rows=3856907 width=4) + Conds:RS_1852._col0=RS_1617._col0(Inner),Output:["_col1"] + <-Map 96 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_1617] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_1612] + <-Map 105 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1852] + PartitionCols:_col0 + Select Operator [SEL_1851] (rows=143966864 width=7) + Output:["_col0","_col1"] + Filter Operator [FIL_1850] (rows=143966864 width=7) + predicate:((ws_sold_date_sk BETWEEN DynamicValue(RS_145_d3_d_date_sk_min) AND DynamicValue(RS_145_d3_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_145_d3_d_date_sk_bloom_filter))) and ws_item_sk is not null and ws_sold_date_sk is not null) + TableScan [TS_135] (rows=144002668 width=7) + default@web_sales,web_sales,Tbl:COMPLETE,Col:COMPLETE,Output:["ws_sold_date_sk","ws_item_sk"] + <-Reducer 101 [BROADCAST_EDGE] vectorized + BROADCAST [RS_1849] + Group By Operator [GBY_1848] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 96 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_1634] + Group By Operator [GBY_1629] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_1618] (rows=1957 width=4) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_1612] <-Reducer 60 [ONE_TO_ONE_EDGE] - FORWARD [RS_369] + FORWARD [RS_365] PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_1420] (rows=7790806 width=110) - Conds:RS_366._col1=RS_1702._col0(Inner),Output:["_col1","_col2","_col3","_col8","_col9","_col10"] + Merge Join Operator [MERGEJOIN_1414] (rows=7790806 width=110) + Conds:RS_360._col1=RS_1692._col0(Inner),Output:["_col1","_col2","_col3","_col8","_col9","_col10"] <-Map 69 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1702] + SHUFFLE [RS_1692] PartitionCols:_col0 - Select Operator [SEL_1690] (rows=462000 width=15) + Select Operator [SEL_1683] (rows=462000 width=15) Output:["_col0","_col1","_col2","_col3"] - Filter Operator [FIL_1681] (rows=462000 width=15) + Filter Operator [FIL_1674] (rows=462000 width=15) predicate:i_item_sk is not null - Please refer to the previous TableScan [TS_91] + Please refer to the previous TableScan [TS_88] <-Reducer 59 [SIMPLE_EDGE] - SHUFFLE [RS_366] + SHUFFLE [RS_360] PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_1419] (rows=7790806 width=98) - Conds:RS_1751._col0=RS_1663._col0(Inner),Output:["_col1","_col2","_col3"] + Merge Join Operator [MERGEJOIN_1413] (rows=7790806 width=98) + Conds:RS_1732._col0=RS_1657._col0(Inner),Output:["_col1","_col2","_col3"] <-Map 57 [SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_1663] + PARTITION_ONLY_SHUFFLE [RS_1657] PartitionCols:_col0 - Select Operator [SEL_1660] (rows=50 width=12) + Select Operator [SEL_1654] (rows=50 width=12) Output:["_col0"] - Filter Operator [FIL_1659] (rows=50 width=12) + Filter Operator [FIL_1653] (rows=50 width=12) predicate:((d_moy = 11) and (d_year = 2000) and d_date_sk is not null) TableScan [TS_85] (rows=73049 width=12) default@date_dim,date_dim,Tbl:COMPLETE,Col:COMPLETE,Output:["d_date_sk","d_year","d_moy"] - <-Map 112 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1751] + <-Map 106 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1732] PartitionCols:_col0 - Select Operator [SEL_1750] (rows=286549727 width=123) + Select Operator [SEL_1731] (rows=286549727 width=123) Output:["_col0","_col1","_col2","_col3"] - Filter Operator [FIL_1749] (rows=286549727 width=123) - predicate:((cs_item_sk BETWEEN DynamicValue(RS_370_item_i_item_sk_min) AND DynamicValue(RS_370_item_i_item_sk_max) and in_bloom_filter(cs_item_sk, DynamicValue(RS_370_item_i_item_sk_bloom_filter))) and (cs_sold_date_sk BETWEEN DynamicValue(RS_364_date_dim_d_date_sk_min) AND DynamicValue(RS_364_date_dim_d_date_sk_max) and in_bloom_filter(cs_sold_date_sk, DynamicValue(RS_364_date_dim_d_date_sk_bloom_filter))) and cs_item_sk is not null and cs_sold_date_sk is not null) - TableScan [TS_275] (rows=287989836 width=123) + Filter Operator [FIL_1730] (rows=286549727 width=123) + predicate:((cs_item_sk BETWEEN DynamicValue(RS_366_item_i_item_sk_min) AND DynamicValue(RS_366_item_i_item_sk_max) and in_bloom_filter(cs_item_sk, DynamicValue(RS_366_item_i_item_sk_bloom_filter))) and (cs_sold_date_sk BETWEEN DynamicValue(RS_358_date_dim_d_date_sk_min) AND DynamicValue(RS_358_date_dim_d_date_sk_max) and in_bloom_filter(cs_sold_date_sk, DynamicValue(RS_358_date_dim_d_date_sk_bloom_filter))) and cs_item_sk is not null and cs_sold_date_sk is not null) + TableScan [TS_273] (rows=287989836 width=123) default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:COMPLETE,Output:["cs_sold_date_sk","cs_item_sk","cs_quantity","cs_list_price"] <-Reducer 63 [BROADCAST_EDGE] vectorized - BROADCAST [RS_1737] - Group By Operator [GBY_1736] (rows=1 width=12) + BROADCAST [RS_1723] + Group By Operator [GBY_1722] (rows=1 width=12) Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] <-Map 57 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_1671] - Group By Operator [GBY_1668] (rows=1 width=12) + PARTITION_ONLY_SHUFFLE [RS_1665] + Group By Operator [GBY_1662] (rows=1 width=12) Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_1664] (rows=50 width=4) + Select Operator [SEL_1658] (rows=50 width=4) Output:["_col0"] - Please refer to the previous Select Operator [SEL_1660] - <-Reducer 83 [BROADCAST_EDGE] vectorized - BROADCAST [RS_1748] - Group By Operator [GBY_1747] (rows=1 width=12) + Please refer to the previous Select Operator [SEL_1654] + <-Reducer 80 [BROADCAST_EDGE] vectorized + BROADCAST [RS_1729] + Group By Operator [GBY_1728] (rows=1 width=12) Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Reducer 82 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_1746] - Group By Operator [GBY_1745] (rows=1 width=12) + <-Reducer 79 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_1086] + Group By Operator [GBY_1085] (rows=1 width=12) Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_1744] (rows=362 width=4) + Select Operator [SEL_1084] (rows=362 width=4) Output:["_col0"] - Please refer to the previous Group By Operator [GBY_1742] + Please refer to the previous Group By Operator [GBY_364] <-Reducer 19 [CONTAINS] - Reduce Output Operator [RS_1490] + Reduce Output Operator [RS_1484] PartitionCols:_col0, _col1, _col2, _col3, _col4 - Group By Operator [GBY_1489] (rows=7 width=200) + Group By Operator [GBY_1483] (rows=7 width=200) Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"],aggregations:["sum(_col4)","sum(_col5)"],keys:_col0, _col1, _col2, _col3, 0L - Top N Key Operator [TNK_1488] (rows=3 width=221) + Top N Key Operator [TNK_1482] (rows=3 width=221) keys:_col0, _col1, _col2, _col3, 0L,sort order:+++++,top n:100 - Select Operator [SEL_1486] (rows=1 width=219) + Select Operator [SEL_1480] (rows=1 width=219) Output:["_col0","_col1","_col2","_col3","_col4","_col5"] - Filter Operator [FIL_1485] (rows=1 width=244) + Filter Operator [FIL_1479] (rows=1 width=244) predicate:(_col5 > _col1) - Merge Join Operator [MERGEJOIN_1484] (rows=1 width=244) + Merge Join Operator [MERGEJOIN_1478] (rows=1 width=244) Conds:(Inner),Output:["_col1","_col2","_col3","_col4","_col5","_col6"] <-Reducer 18 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_575] - Merge Join Operator [MERGEJOIN_1450] (rows=1 width=112) + PARTITION_ONLY_SHUFFLE [RS_569] + Merge Join Operator [MERGEJOIN_1444] (rows=1 width=112) Conds:(Inner),Output:["_col1"] <-Reducer 17 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_1759] - Select Operator [SEL_1758] (rows=1 width=8) - Filter Operator [FIL_1757] (rows=1 width=8) + PARTITION_ONLY_SHUFFLE [RS_1740] + Select Operator [SEL_1739] (rows=1 width=8) + Filter Operator [FIL_1738] (rows=1 width=8) predicate:(sq_count_check(_col0) <= 1) - Group By Operator [GBY_1756] (rows=1 width=8) + Group By Operator [GBY_1737] (rows=1 width=8) Output:["_col0"],aggregations:["count()"] - Select Operator [SEL_1755] (rows=1 width=8) - Group By Operator [GBY_1754] (rows=1 width=8) + Select Operator [SEL_1736] (rows=1 width=8) + Group By Operator [GBY_1735] (rows=1 width=8) Output:["_col0"],aggregations:["count(VALUE._col0)"] <-Union 16 [CUSTOM_SIMPLE_EDGE] <-Reducer 15 [CONTAINS] - Reduce Output Operator [RS_1483] - Group By Operator [GBY_1482] (rows=1 width=8) + Reduce Output Operator [RS_1477] + Group By Operator [GBY_1476] (rows=1 width=8) Output:["_col0"],aggregations:["count(_col0)"] - Select Operator [SEL_1481] (rows=26270325 width=1) + Select Operator [SEL_1475] (rows=26270325 width=1) Output:["_col0"] - Select Operator [SEL_1479] (rows=14736682 width=0) + Select Operator [SEL_1473] (rows=14736682 width=0) Output:["_col0"] - Merge Join Operator [MERGEJOIN_1478] (rows=14736682 width=0) - Conds:RS_1649._col0=RS_1631._col0(Inner),Output:["_col1"] - <-Map 102 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1631] + Merge Join Operator [MERGEJOIN_1472] (rows=14736682 width=0) + Conds:RS_1643._col0=RS_1625._col0(Inner),Output:["_col1"] + <-Map 96 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_1625] PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_1618] + Please refer to the previous Select Operator [SEL_1612] <-Map 1 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1649] + SHUFFLE [RS_1643] PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_1646] + Please refer to the previous Select Operator [SEL_1640] <-Reducer 23 [CONTAINS] - Reduce Output Operator [RS_1508] - Group By Operator [GBY_1507] (rows=1 width=8) + Reduce Output Operator [RS_1502] + Group By Operator [GBY_1501] (rows=1 width=8) Output:["_col0"],aggregations:["count(_col0)"] - Select Operator [SEL_1506] (rows=26270325 width=1) + Select Operator [SEL_1500] (rows=26270325 width=1) Output:["_col0"] - Select Operator [SEL_1504] (rows=7676736 width=3) + Select Operator [SEL_1498] (rows=7676736 width=3) Output:["_col0"] - Merge Join Operator [MERGEJOIN_1503] (rows=7676736 width=3) - Conds:RS_1801._col0=RS_1789._col0(Inner),Output:["_col1"] + Merge Join Operator [MERGEJOIN_1497] (rows=7676736 width=3) + Conds:RS_1777._col0=RS_1765._col0(Inner),Output:["_col1"] <-Map 24 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1789] + SHUFFLE [RS_1765] PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_1782] + Please refer to the previous Select Operator [SEL_1758] <-Map 20 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1801] + SHUFFLE [RS_1777] PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_1798] + Please refer to the previous Select Operator [SEL_1774] <-Reducer 39 [CONTAINS] - Reduce Output Operator [RS_1544] - Group By Operator [GBY_1543] (rows=1 width=8) + Reduce Output Operator [RS_1538] + Group By Operator [GBY_1537] (rows=1 width=8) Output:["_col0"],aggregations:["count(_col0)"] - Select Operator [SEL_1542] (rows=26270325 width=1) + Select Operator [SEL_1536] (rows=26270325 width=1) Output:["_col0"] - Select Operator [SEL_1540] (rows=3856907 width=3) + Select Operator [SEL_1534] (rows=3856907 width=3) Output:["_col0"] - Merge Join Operator [MERGEJOIN_1539] (rows=3856907 width=3) - Conds:RS_1829._col0=RS_1817._col0(Inner),Output:["_col1"] + Merge Join Operator [MERGEJOIN_1533] (rows=3856907 width=3) + Conds:RS_1805._col0=RS_1793._col0(Inner),Output:["_col1"] <-Map 40 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1817] + SHUFFLE [RS_1793] PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_1810] + Please refer to the previous Select Operator [SEL_1786] <-Map 36 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1829] + SHUFFLE [RS_1805] PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_1826] + Please refer to the previous Select Operator [SEL_1802] <-Reducer 35 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_1762] - Select Operator [SEL_1761] (rows=1 width=112) + PARTITION_ONLY_SHUFFLE [RS_1743] + Select Operator [SEL_1742] (rows=1 width=112) Output:["_col0"] - Group By Operator [GBY_1760] (rows=1 width=120) + Group By Operator [GBY_1741] (rows=1 width=120) Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)","count(VALUE._col1)"] <-Union 34 [CUSTOM_SIMPLE_EDGE] <-Reducer 33 [CONTAINS] - Reduce Output Operator [RS_1526] - Group By Operator [GBY_1525] (rows=1 width=120) + Reduce Output Operator [RS_1520] + Group By Operator [GBY_1519] (rows=1 width=120) Output:["_col0","_col1"],aggregations:["sum(_col0)","count(_col0)"] - Select Operator [SEL_1524] (rows=26270325 width=44) + Select Operator [SEL_1518] (rows=26270325 width=44) Output:["_col0"] - Select Operator [SEL_1522] (rows=7676736 width=94) + Select Operator [SEL_1516] (rows=7676736 width=94) Output:["_col0","_col1"] - Merge Join Operator [MERGEJOIN_1521] (rows=7676736 width=94) - Conds:RS_1808._col0=RS_1790._col0(Inner),Output:["_col1","_col2"] + Merge Join Operator [MERGEJOIN_1515] (rows=7676736 width=94) + Conds:RS_1784._col0=RS_1766._col0(Inner),Output:["_col1","_col2"] <-Map 24 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1790] + SHUFFLE [RS_1766] PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_1782] + Please refer to the previous Select Operator [SEL_1758] <-Map 50 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1808] + SHUFFLE [RS_1784] PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_1805] + Please refer to the previous Select Operator [SEL_1781] <-Reducer 45 [CONTAINS] - Reduce Output Operator [RS_1562] - Group By Operator [GBY_1561] (rows=1 width=120) + Reduce Output Operator [RS_1556] + Group By Operator [GBY_1555] (rows=1 width=120) Output:["_col0","_col1"],aggregations:["sum(_col0)","count(_col0)"] - Select Operator [SEL_1560] (rows=26270325 width=44) + Select Operator [SEL_1554] (rows=26270325 width=44) Output:["_col0"] - Select Operator [SEL_1558] (rows=3856907 width=114) + Select Operator [SEL_1552] (rows=3856907 width=114) Output:["_col0","_col1"] - Merge Join Operator [MERGEJOIN_1557] (rows=3856907 width=114) - Conds:RS_1836._col0=RS_1818._col0(Inner),Output:["_col1","_col2"] + Merge Join Operator [MERGEJOIN_1551] (rows=3856907 width=114) + Conds:RS_1812._col0=RS_1794._col0(Inner),Output:["_col1","_col2"] <-Map 40 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1818] + SHUFFLE [RS_1794] PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_1810] + Please refer to the previous Select Operator [SEL_1786] <-Map 51 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1836] + SHUFFLE [RS_1812] PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_1833] + Please refer to the previous Select Operator [SEL_1809] <-Reducer 49 [CONTAINS] - Reduce Output Operator [RS_1580] - Group By Operator [GBY_1579] (rows=1 width=120) + Reduce Output Operator [RS_1574] + Group By Operator [GBY_1573] (rows=1 width=120) Output:["_col0","_col1"],aggregations:["sum(_col0)","count(_col0)"] - Select Operator [SEL_1578] (rows=26270325 width=44) + Select Operator [SEL_1572] (rows=26270325 width=44) Output:["_col0"] - Select Operator [SEL_1576] (rows=14736682 width=0) + Select Operator [SEL_1570] (rows=14736682 width=0) Output:["_col0","_col1"] - Merge Join Operator [MERGEJOIN_1575] (rows=14736682 width=0) - Conds:RS_1843._col0=RS_1632._col0(Inner),Output:["_col1","_col2"] - <-Map 102 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1632] + Merge Join Operator [MERGEJOIN_1569] (rows=14736682 width=0) + Conds:RS_1819._col0=RS_1626._col0(Inner),Output:["_col1","_col2"] + <-Map 96 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_1626] PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_1618] + Please refer to the previous Select Operator [SEL_1612] <-Map 46 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1843] + SHUFFLE [RS_1819] PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_1840] + Please refer to the previous Select Operator [SEL_1816] <-Reducer 67 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_1780] - Group By Operator [GBY_1779] (rows=1 width=132) + PARTITION_ONLY_SHUFFLE [RS_1756] + Group By Operator [GBY_1755] (rows=1 width=132) Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["sum(VALUE._col0)","count(VALUE._col1)"],keys:KEY._col0, KEY._col1, KEY._col2 <-Reducer 66 [SIMPLE_EDGE] - SHUFFLE [RS_569] + SHUFFLE [RS_563] PartitionCols:_col0, _col1, _col2 - Group By Operator [GBY_568] (rows=1 width=132) + Group By Operator [GBY_562] (rows=1 width=132) Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["sum(_col3)","count()"],keys:_col0, _col1, _col2 - Select Operator [SEL_566] (rows=1 width=128) + Select Operator [SEL_560] (rows=1 width=128) Output:["_col0","_col1","_col2","_col3"] - Merge Join Operator [MERGEJOIN_1445] (rows=1 width=128) - Conds:RS_563._col1=RS_1770._col0(Inner),Output:["_col2","_col3","_col8","_col9","_col10"] - <-Reducer 92 [ONE_TO_ONE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_1770] + Merge Join Operator [MERGEJOIN_1439] (rows=1 width=128) + Conds:RS_557._col1=RS_558._col0(Left Semi),Output:["_col2","_col3","_col8","_col9","_col10"] + <-Reducer 84 [SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_558] PartitionCols:_col0 - Group By Operator [GBY_1769] (rows=362 width=4) - Output:["_col0"],keys:KEY._col0 - <-Reducer 91 [SIMPLE_EDGE] - SHUFFLE [RS_554] - PartitionCols:_col0 - Group By Operator [GBY_553] (rows=362 width=4) - Output:["_col0"],keys:_col0 - Merge Join Operator [MERGEJOIN_1442] (rows=724 width=4) - Conds:RS_1703._col1, _col2, _col3=RS_1768._col0, _col1, _col2(Inner),Output:["_col0"] - <-Map 69 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1703] - PartitionCols:_col1, _col2, _col3 - Select Operator [SEL_1691] (rows=458612 width=15) - Output:["_col0","_col1","_col2","_col3"] - Filter Operator [FIL_1682] (rows=458612 width=15) - predicate:(i_brand_id is not null and i_category_id is not null and i_class_id is not null and i_item_sk is not null) - Please refer to the previous TableScan [TS_91] - <-Reducer 90 [ONE_TO_ONE_EDGE] vectorized - FORWARD [RS_1768] - PartitionCols:_col0, _col1, _col2 - Select Operator [SEL_1767] (rows=1 width=12) - Output:["_col0","_col1","_col2"] - Filter Operator [FIL_1766] (rows=1 width=20) - predicate:(_col3 = 3L) - Group By Operator [GBY_1765] (rows=121728 width=19) - Output:["_col0","_col1","_col2","_col3"],aggregations:["count(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2 - <-Union 89 [SIMPLE_EDGE] - <-Reducer 88 [CONTAINS] vectorized - Reduce Output Operator [RS_1873] - PartitionCols:_col0, _col1, _col2 - Group By Operator [GBY_1872] (rows=121728 width=19) - Output:["_col0","_col1","_col2","_col3"],aggregations:["count(_col3)"],keys:_col0, _col1, _col2 - Group By Operator [GBY_1871] (rows=121728 width=19) - Output:["_col0","_col1","_col2","_col3"],aggregations:["count(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2 - <-Reducer 84 [SIMPLE_EDGE] - SHUFFLE [RS_498] - PartitionCols:_col0, _col1, _col2 - Please refer to the previous Group By Operator [GBY_303] - <-Reducer 96 [CONTAINS] vectorized - Reduce Output Operator [RS_1879] - PartitionCols:_col0, _col1, _col2 - Group By Operator [GBY_1878] (rows=121728 width=19) - Output:["_col0","_col1","_col2","_col3"],aggregations:["count(_col3)"],keys:_col0, _col1, _col2 - Group By Operator [GBY_1877] (rows=121728 width=19) - Output:["_col0","_col1","_col2","_col3"],aggregations:["count(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2 - <-Reducer 94 [SIMPLE_EDGE] - SHUFFLE [RS_518] - PartitionCols:_col0, _col1, _col2 - Please refer to the previous Group By Operator [GBY_323] - <-Reducer 99 [CONTAINS] vectorized - Reduce Output Operator [RS_1885] - PartitionCols:_col0, _col1, _col2 - Group By Operator [GBY_1884] (rows=121728 width=19) - Output:["_col0","_col1","_col2","_col3"],aggregations:["count(_col3)"],keys:_col0, _col1, _col2 - Group By Operator [GBY_1883] (rows=121728 width=19) - Output:["_col0","_col1","_col2","_col3"],aggregations:["count(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2 - <-Reducer 97 [SIMPLE_EDGE] - SHUFFLE [RS_539] - PartitionCols:_col0, _col1, _col2 - Please refer to the previous Group By Operator [GBY_344] + Group By Operator [GBY_556] (rows=362 width=4) + Output:["_col0"],keys:_col0 + Merge Join Operator [MERGEJOIN_1436] (rows=724 width=4) + Conds:RS_1695._col1, _col2, _col3=RS_1749._col0, _col1, _col2(Inner),Output:["_col0"] + <-Map 69 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1695] + PartitionCols:_col1, _col2, _col3 + Select Operator [SEL_1686] (rows=458612 width=15) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_1677] (rows=458612 width=15) + predicate:(i_brand_id is not null and i_category_id is not null and i_class_id is not null and i_item_sk is not null) + Please refer to the previous TableScan [TS_88] + <-Reducer 83 [ONE_TO_ONE_EDGE] vectorized + FORWARD [RS_1749] + PartitionCols:_col0, _col1, _col2 + Select Operator [SEL_1748] (rows=1 width=12) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_1747] (rows=1 width=20) + predicate:(_col3 = 3L) + Group By Operator [GBY_1746] (rows=121728 width=19) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2 + <-Union 82 [SIMPLE_EDGE] + <-Reducer 81 [CONTAINS] vectorized + Reduce Output Operator [RS_1833] + PartitionCols:_col0, _col1, _col2 + Group By Operator [GBY_1832] (rows=121728 width=19) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count(_col3)"],keys:_col0, _col1, _col2 + Group By Operator [GBY_1831] (rows=121728 width=19) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2 + <-Reducer 72 [SIMPLE_EDGE] + SHUFFLE [RS_494] + PartitionCols:_col0, _col1, _col2 + Please refer to the previous Group By Operator [GBY_110] + <-Reducer 89 [CONTAINS] vectorized + Reduce Output Operator [RS_1847] + PartitionCols:_col0, _col1, _col2 + Group By Operator [GBY_1846] (rows=121728 width=19) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count(_col3)"],keys:_col0, _col1, _col2 + Group By Operator [GBY_1845] (rows=121728 width=19) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2 + <-Reducer 86 [SIMPLE_EDGE] + SHUFFLE [RS_514] + PartitionCols:_col0, _col1, _col2 + Please refer to the previous Group By Operator [GBY_130] + <-Reducer 93 [CONTAINS] vectorized + Reduce Output Operator [RS_1861] + PartitionCols:_col0, _col1, _col2 + Group By Operator [GBY_1860] (rows=121728 width=19) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count(_col3)"],keys:_col0, _col1, _col2 + Group By Operator [GBY_1859] (rows=121728 width=19) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2 + <-Reducer 90 [SIMPLE_EDGE] + SHUFFLE [RS_535] + PartitionCols:_col0, _col1, _col2 + Please refer to the previous Group By Operator [GBY_151] <-Reducer 65 [ONE_TO_ONE_EDGE] - FORWARD [RS_563] + FORWARD [RS_557] PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_1435] (rows=3942084 width=130) - Conds:RS_560._col1=RS_1704._col0(Inner),Output:["_col1","_col2","_col3","_col8","_col9","_col10"] + Merge Join Operator [MERGEJOIN_1429] (rows=3942084 width=130) + Conds:RS_552._col1=RS_1694._col0(Inner),Output:["_col1","_col2","_col3","_col8","_col9","_col10"] <-Map 69 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1704] + SHUFFLE [RS_1694] PartitionCols:_col0 - Select Operator [SEL_1692] (rows=462000 width=15) + Select Operator [SEL_1685] (rows=462000 width=15) Output:["_col0","_col1","_col2","_col3"] - Filter Operator [FIL_1683] (rows=462000 width=15) + Filter Operator [FIL_1676] (rows=462000 width=15) predicate:i_item_sk is not null - Please refer to the previous TableScan [TS_91] + Please refer to the previous TableScan [TS_88] <-Reducer 64 [SIMPLE_EDGE] - SHUFFLE [RS_560] + SHUFFLE [RS_552] PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_1434] (rows=3942084 width=118) - Conds:RS_1778._col0=RS_1665._col0(Inner),Output:["_col1","_col2","_col3"] + Merge Join Operator [MERGEJOIN_1428] (rows=3942084 width=118) + Conds:RS_1754._col0=RS_1659._col0(Inner),Output:["_col1","_col2","_col3"] <-Map 57 [SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_1665] + PARTITION_ONLY_SHUFFLE [RS_1659] PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_1660] - <-Map 113 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1778] + Please refer to the previous Select Operator [SEL_1654] + <-Map 107 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1754] PartitionCols:_col0 - Select Operator [SEL_1777] (rows=143966864 width=123) + Select Operator [SEL_1753] (rows=143966864 width=123) Output:["_col0","_col1","_col2","_col3"] - Filter Operator [FIL_1776] (rows=143966864 width=123) - predicate:((ws_item_sk BETWEEN DynamicValue(RS_564_item_i_item_sk_min) AND DynamicValue(RS_564_item_i_item_sk_max) and in_bloom_filter(ws_item_sk, DynamicValue(RS_564_item_i_item_sk_bloom_filter))) and (ws_sold_date_sk BETWEEN DynamicValue(RS_558_date_dim_d_date_sk_min) AND DynamicValue(RS_558_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_558_date_dim_d_date_sk_bloom_filter))) and ws_item_sk is not null and ws_sold_date_sk is not null) - TableScan [TS_469] (rows=144002668 width=123) + Filter Operator [FIL_1752] (rows=143966864 width=123) + predicate:((ws_item_sk BETWEEN DynamicValue(RS_558_item_i_item_sk_min) AND DynamicValue(RS_558_item_i_item_sk_max) and in_bloom_filter(ws_item_sk, DynamicValue(RS_558_item_i_item_sk_bloom_filter))) and (ws_sold_date_sk BETWEEN DynamicValue(RS_550_date_dim_d_date_sk_min) AND DynamicValue(RS_550_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_550_date_dim_d_date_sk_bloom_filter))) and ws_item_sk is not null and ws_sold_date_sk is not null) + TableScan [TS_465] (rows=144002668 width=123) default@web_sales,web_sales,Tbl:COMPLETE,Col:COMPLETE,Output:["ws_sold_date_sk","ws_item_sk","ws_quantity","ws_list_price"] <-Reducer 68 [BROADCAST_EDGE] vectorized - BROADCAST [RS_1764] - Group By Operator [GBY_1763] (rows=1 width=12) + BROADCAST [RS_1745] + Group By Operator [GBY_1744] (rows=1 width=12) Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] <-Map 57 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_1672] - Group By Operator [GBY_1669] (rows=1 width=12) + PARTITION_ONLY_SHUFFLE [RS_1666] + Group By Operator [GBY_1663] (rows=1 width=12) Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_1666] (rows=50 width=4) + Select Operator [SEL_1660] (rows=50 width=4) Output:["_col0"] - Please refer to the previous Select Operator [SEL_1660] - <-Reducer 93 [BROADCAST_EDGE] vectorized - BROADCAST [RS_1775] - Group By Operator [GBY_1774] (rows=1 width=12) + Please refer to the previous Select Operator [SEL_1654] + <-Reducer 85 [BROADCAST_EDGE] vectorized + BROADCAST [RS_1751] + Group By Operator [GBY_1750] (rows=1 width=12) Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Reducer 92 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_1773] - Group By Operator [GBY_1772] (rows=1 width=12) + <-Reducer 84 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_1275] + Group By Operator [GBY_1274] (rows=1 width=12) Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_1771] (rows=362 width=4) + Select Operator [SEL_1273] (rows=362 width=4) Output:["_col0"] - Please refer to the previous Group By Operator [GBY_1769] + Please refer to the previous Group By Operator [GBY_556] <-Reducer 6 [CONTAINS] - Reduce Output Operator [RS_1464] + Reduce Output Operator [RS_1458] PartitionCols:_col0, _col1, _col2, _col3, _col4 - Group By Operator [GBY_1463] (rows=7 width=200) + Group By Operator [GBY_1457] (rows=7 width=200) Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"],aggregations:["sum(_col4)","sum(_col5)"],keys:_col0, _col1, _col2, _col3, 0L - Top N Key Operator [TNK_1462] (rows=3 width=221) + Top N Key Operator [TNK_1456] (rows=3 width=221) keys:_col0, _col1, _col2, _col3, 0L,sort order:+++++,top n:100 - Select Operator [SEL_1460] (rows=1 width=221) + Select Operator [SEL_1454] (rows=1 width=221) Output:["_col0","_col1","_col2","_col3","_col4","_col5"] - Filter Operator [FIL_1459] (rows=1 width=244) + Filter Operator [FIL_1453] (rows=1 width=244) predicate:(_col5 > _col1) - Merge Join Operator [MERGEJOIN_1458] (rows=1 width=244) + Merge Join Operator [MERGEJOIN_1452] (rows=1 width=244) Conds:(Inner),Output:["_col1","_col2","_col3","_col4","_col5","_col6"] <-Reducer 5 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_188] - Merge Join Operator [MERGEJOIN_1446] (rows=1 width=112) + PARTITION_ONLY_SHUFFLE [RS_186] + Merge Join Operator [MERGEJOIN_1440] (rows=1 width=112) Conds:(Inner),Output:["_col1"] <-Reducer 28 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_1658] - Select Operator [SEL_1657] (rows=1 width=112) + PARTITION_ONLY_SHUFFLE [RS_1652] + Select Operator [SEL_1651] (rows=1 width=112) Output:["_col0"] - Group By Operator [GBY_1656] (rows=1 width=120) + Group By Operator [GBY_1650] (rows=1 width=120) Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)","count(VALUE._col1)"] <-Union 27 [CUSTOM_SIMPLE_EDGE] <-Reducer 26 [CONTAINS] - Reduce Output Operator [RS_1514] - Group By Operator [GBY_1513] (rows=1 width=120) + Reduce Output Operator [RS_1508] + Group By Operator [GBY_1507] (rows=1 width=120) Output:["_col0","_col1"],aggregations:["sum(_col0)","count(_col0)"] - Select Operator [SEL_1512] (rows=26270325 width=44) + Select Operator [SEL_1506] (rows=26270325 width=44) Output:["_col0"] - Select Operator [SEL_1510] (rows=7676736 width=94) + Select Operator [SEL_1504] (rows=7676736 width=94) Output:["_col0","_col1"] - Merge Join Operator [MERGEJOIN_1509] (rows=7676736 width=94) - Conds:RS_1806._col0=RS_1785._col0(Inner),Output:["_col1","_col2"] + Merge Join Operator [MERGEJOIN_1503] (rows=7676736 width=94) + Conds:RS_1782._col0=RS_1761._col0(Inner),Output:["_col1","_col2"] <-Map 24 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1785] + SHUFFLE [RS_1761] PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_1782] + Please refer to the previous Select Operator [SEL_1758] <-Map 50 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1806] + SHUFFLE [RS_1782] PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_1805] + Please refer to the previous Select Operator [SEL_1781] <-Reducer 42 [CONTAINS] - Reduce Output Operator [RS_1550] - Group By Operator [GBY_1549] (rows=1 width=120) + Reduce Output Operator [RS_1544] + Group By Operator [GBY_1543] (rows=1 width=120) Output:["_col0","_col1"],aggregations:["sum(_col0)","count(_col0)"] - Select Operator [SEL_1548] (rows=26270325 width=44) + Select Operator [SEL_1542] (rows=26270325 width=44) Output:["_col0"] - Select Operator [SEL_1546] (rows=3856907 width=114) + Select Operator [SEL_1540] (rows=3856907 width=114) Output:["_col0","_col1"] - Merge Join Operator [MERGEJOIN_1545] (rows=3856907 width=114) - Conds:RS_1834._col0=RS_1813._col0(Inner),Output:["_col1","_col2"] + Merge Join Operator [MERGEJOIN_1539] (rows=3856907 width=114) + Conds:RS_1810._col0=RS_1789._col0(Inner),Output:["_col1","_col2"] <-Map 40 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1813] + SHUFFLE [RS_1789] PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_1810] + Please refer to the previous Select Operator [SEL_1786] <-Map 51 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1834] + SHUFFLE [RS_1810] PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_1833] + Please refer to the previous Select Operator [SEL_1809] <-Reducer 47 [CONTAINS] - Reduce Output Operator [RS_1568] - Group By Operator [GBY_1567] (rows=1 width=120) + Reduce Output Operator [RS_1562] + Group By Operator [GBY_1561] (rows=1 width=120) Output:["_col0","_col1"],aggregations:["sum(_col0)","count(_col0)"] - Select Operator [SEL_1566] (rows=26270325 width=44) + Select Operator [SEL_1560] (rows=26270325 width=44) Output:["_col0"] - Select Operator [SEL_1564] (rows=14736682 width=0) + Select Operator [SEL_1558] (rows=14736682 width=0) Output:["_col0","_col1"] - Merge Join Operator [MERGEJOIN_1563] (rows=14736682 width=0) - Conds:RS_1841._col0=RS_1627._col0(Inner),Output:["_col1","_col2"] - <-Map 102 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1627] + Merge Join Operator [MERGEJOIN_1557] (rows=14736682 width=0) + Conds:RS_1817._col0=RS_1621._col0(Inner),Output:["_col1","_col2"] + <-Map 96 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_1621] PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_1618] + Please refer to the previous Select Operator [SEL_1612] <-Map 46 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1841] + SHUFFLE [RS_1817] PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_1840] + Please refer to the previous Select Operator [SEL_1816] <-Reducer 4 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_1655] - Select Operator [SEL_1654] (rows=1 width=8) - Filter Operator [FIL_1653] (rows=1 width=8) + PARTITION_ONLY_SHUFFLE [RS_1649] + Select Operator [SEL_1648] (rows=1 width=8) + Filter Operator [FIL_1647] (rows=1 width=8) predicate:(sq_count_check(_col0) <= 1) - Group By Operator [GBY_1652] (rows=1 width=8) + Group By Operator [GBY_1646] (rows=1 width=8) Output:["_col0"],aggregations:["count()"] - Select Operator [SEL_1651] (rows=1 width=8) - Group By Operator [GBY_1650] (rows=1 width=8) + Select Operator [SEL_1645] (rows=1 width=8) + Group By Operator [GBY_1644] (rows=1 width=8) Output:["_col0"],aggregations:["count(VALUE._col0)"] <-Union 3 [CUSTOM_SIMPLE_EDGE] <-Reducer 2 [CONTAINS] - Reduce Output Operator [RS_1457] - Group By Operator [GBY_1456] (rows=1 width=8) + Reduce Output Operator [RS_1451] + Group By Operator [GBY_1450] (rows=1 width=8) Output:["_col0"],aggregations:["count(_col0)"] - Select Operator [SEL_1455] (rows=26270325 width=1) + Select Operator [SEL_1449] (rows=26270325 width=1) Output:["_col0"] - Select Operator [SEL_1453] (rows=14736682 width=0) + Select Operator [SEL_1447] (rows=14736682 width=0) Output:["_col0"] - Merge Join Operator [MERGEJOIN_1452] (rows=14736682 width=0) - Conds:RS_1647._col0=RS_1625._col0(Inner),Output:["_col1"] - <-Map 102 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1625] + Merge Join Operator [MERGEJOIN_1446] (rows=14736682 width=0) + Conds:RS_1641._col0=RS_1619._col0(Inner),Output:["_col1"] + <-Map 96 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_1619] PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_1618] + Please refer to the previous Select Operator [SEL_1612] <-Map 1 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1647] + SHUFFLE [RS_1641] PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_1646] + Please refer to the previous Select Operator [SEL_1640] <-Reducer 21 [CONTAINS] - Reduce Output Operator [RS_1496] - Group By Operator [GBY_1495] (rows=1 width=8) + Reduce Output Operator [RS_1490] + Group By Operator [GBY_1489] (rows=1 width=8) Output:["_col0"],aggregations:["count(_col0)"] - Select Operator [SEL_1494] (rows=26270325 width=1) + Select Operator [SEL_1488] (rows=26270325 width=1) Output:["_col0"] - Select Operator [SEL_1492] (rows=7676736 width=3) + Select Operator [SEL_1486] (rows=7676736 width=3) Output:["_col0"] - Merge Join Operator [MERGEJOIN_1491] (rows=7676736 width=3) - Conds:RS_1799._col0=RS_1783._col0(Inner),Output:["_col1"] + Merge Join Operator [MERGEJOIN_1485] (rows=7676736 width=3) + Conds:RS_1775._col0=RS_1759._col0(Inner),Output:["_col1"] <-Map 24 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1783] + SHUFFLE [RS_1759] PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_1782] + Please refer to the previous Select Operator [SEL_1758] <-Map 20 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1799] + SHUFFLE [RS_1775] PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_1798] + Please refer to the previous Select Operator [SEL_1774] <-Reducer 37 [CONTAINS] - Reduce Output Operator [RS_1532] - Group By Operator [GBY_1531] (rows=1 width=8) + Reduce Output Operator [RS_1526] + Group By Operator [GBY_1525] (rows=1 width=8) Output:["_col0"],aggregations:["count(_col0)"] - Select Operator [SEL_1530] (rows=26270325 width=1) + Select Operator [SEL_1524] (rows=26270325 width=1) Output:["_col0"] - Select Operator [SEL_1528] (rows=3856907 width=3) + Select Operator [SEL_1522] (rows=3856907 width=3) Output:["_col0"] - Merge Join Operator [MERGEJOIN_1527] (rows=3856907 width=3) - Conds:RS_1827._col0=RS_1811._col0(Inner),Output:["_col1"] + Merge Join Operator [MERGEJOIN_1521] (rows=3856907 width=3) + Conds:RS_1803._col0=RS_1787._col0(Inner),Output:["_col1"] <-Map 40 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1811] + SHUFFLE [RS_1787] PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_1810] + Please refer to the previous Select Operator [SEL_1786] <-Map 36 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1827] + SHUFFLE [RS_1803] PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_1826] + Please refer to the previous Select Operator [SEL_1802] <-Reducer 56 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_1720] - Group By Operator [GBY_1719] (rows=1 width=132) + PARTITION_ONLY_SHUFFLE [RS_1706] + Group By Operator [GBY_1705] (rows=1 width=132) Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["sum(VALUE._col0)","count(VALUE._col1)"],keys:KEY._col0, KEY._col1, KEY._col2 <-Reducer 55 [SIMPLE_EDGE] - SHUFFLE [RS_182] + SHUFFLE [RS_180] PartitionCols:_col0, _col1, _col2 - Group By Operator [GBY_181] (rows=1 width=132) + Group By Operator [GBY_179] (rows=1 width=132) Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["sum(_col3)","count()"],keys:_col0, _col1, _col2 - Select Operator [SEL_179] (rows=1 width=128) + Select Operator [SEL_177] (rows=1 width=128) Output:["_col0","_col1","_col2","_col3"] - Merge Join Operator [MERGEJOIN_1443] (rows=1 width=128) - Conds:RS_176._col1=RS_1710._col0(Inner),Output:["_col2","_col3","_col8","_col9","_col10"] - <-Reducer 71 [ONE_TO_ONE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_1710] + Merge Join Operator [MERGEJOIN_1437] (rows=1 width=128) + Conds:RS_174._col1=RS_175._col0(Left Semi),Output:["_col2","_col3","_col8","_col9","_col10"] + <-Reducer 70 [SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_175] PartitionCols:_col0 - Group By Operator [GBY_1709] (rows=362 width=4) - Output:["_col0"],keys:KEY._col0 - <-Reducer 70 [SIMPLE_EDGE] - SHUFFLE [RS_167] - PartitionCols:_col0 - Group By Operator [GBY_166] (rows=362 width=4) - Output:["_col0"],keys:_col0 - Merge Join Operator [MERGEJOIN_1412] (rows=724 width=4) - Conds:RS_1693._col1, _col2, _col3=RS_1708._col0, _col1, _col2(Inner),Output:["_col0"] - <-Map 69 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1693] - PartitionCols:_col1, _col2, _col3 - Select Operator [SEL_1684] (rows=458612 width=15) - Output:["_col0","_col1","_col2","_col3"] - Filter Operator [FIL_1675] (rows=458612 width=15) - predicate:(i_brand_id is not null and i_category_id is not null and i_class_id is not null and i_item_sk is not null) - Please refer to the previous TableScan [TS_91] - <-Reducer 76 [ONE_TO_ONE_EDGE] vectorized - FORWARD [RS_1708] - PartitionCols:_col0, _col1, _col2 - Select Operator [SEL_1707] (rows=1 width=12) - Output:["_col0","_col1","_col2"] - Filter Operator [FIL_1706] (rows=1 width=20) - predicate:(_col3 = 3L) - Group By Operator [GBY_1705] (rows=121728 width=19) - Output:["_col0","_col1","_col2","_col3"],aggregations:["count(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2 - <-Union 75 [SIMPLE_EDGE] - <-Reducer 74 [CONTAINS] vectorized - Reduce Output Operator [RS_1851] - PartitionCols:_col0, _col1, _col2 - Group By Operator [GBY_1850] (rows=121728 width=19) - Output:["_col0","_col1","_col2","_col3"],aggregations:["count(_col3)"],keys:_col0, _col1, _col2 - Group By Operator [GBY_1849] (rows=121728 width=19) - Output:["_col0","_col1","_col2","_col3"],aggregations:["count(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2 - <-Reducer 73 [SIMPLE_EDGE] - SHUFFLE [RS_111] - PartitionCols:_col0, _col1, _col2 - Group By Operator [GBY_110] (rows=121728 width=19) - Output:["_col0","_col1","_col2","_col3"],aggregations:["count()"],keys:_col5, _col6, _col7 - Merge Join Operator [MERGEJOIN_1407] (rows=14628613 width=11) - Conds:RS_106._col1=RS_1694._col0(Inner),Output:["_col5","_col6","_col7"] - <-Map 69 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1694] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_1684] - <-Reducer 101 [SIMPLE_EDGE] - SHUFFLE [RS_106] - PartitionCols:_col1 - Please refer to the previous Merge Join Operator [MERGEJOIN_1406] - <-Reducer 78 [CONTAINS] vectorized - Reduce Output Operator [RS_1859] - PartitionCols:_col0, _col1, _col2 - Group By Operator [GBY_1858] (rows=121728 width=19) - Output:["_col0","_col1","_col2","_col3"],aggregations:["count(_col3)"],keys:_col0, _col1, _col2 - Group By Operator [GBY_1857] (rows=121728 width=19) - Output:["_col0","_col1","_col2","_col3"],aggregations:["count(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2 - <-Reducer 77 [SIMPLE_EDGE] - SHUFFLE [RS_131] - PartitionCols:_col0, _col1, _col2 - Group By Operator [GBY_130] (rows=121728 width=19) - Output:["_col0","_col1","_col2","_col3"],aggregations:["count()"],keys:_col5, _col6, _col7 - Merge Join Operator [MERGEJOIN_1409] (rows=7620440 width=11) - Conds:RS_126._col1=RS_1695._col0(Inner),Output:["_col5","_col6","_col7"] - <-Map 69 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1695] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_1684] - <-Reducer 104 [SIMPLE_EDGE] - SHUFFLE [RS_126] - PartitionCols:_col1 - Please refer to the previous Merge Join Operator [MERGEJOIN_1408] - <-Reducer 80 [CONTAINS] vectorized - Reduce Output Operator [RS_1867] - PartitionCols:_col0, _col1, _col2 - Group By Operator [GBY_1866] (rows=121728 width=19) - Output:["_col0","_col1","_col2","_col3"],aggregations:["count(_col3)"],keys:_col0, _col1, _col2 - Group By Operator [GBY_1865] (rows=121728 width=19) - Output:["_col0","_col1","_col2","_col3"],aggregations:["count(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2 - <-Reducer 79 [SIMPLE_EDGE] - SHUFFLE [RS_152] - PartitionCols:_col0, _col1, _col2 - Group By Operator [GBY_151] (rows=121728 width=19) - Output:["_col0","_col1","_col2","_col3"],aggregations:["count()"],keys:_col5, _col6, _col7 - Merge Join Operator [MERGEJOIN_1411] (rows=3828623 width=11) - Conds:RS_147._col1=RS_1696._col0(Inner),Output:["_col5","_col6","_col7"] - <-Map 69 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1696] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_1684] - <-Reducer 106 [SIMPLE_EDGE] - SHUFFLE [RS_147] - PartitionCols:_col1 - Please refer to the previous Merge Join Operator [MERGEJOIN_1410] + Group By Operator [GBY_173] (rows=362 width=4) + Output:["_col0"],keys:_col0 + Merge Join Operator [MERGEJOIN_1406] (rows=724 width=4) + Conds:RS_1688._col1, _col2, _col3=RS_1699._col0, _col1, _col2(Inner),Output:["_col0"] + <-Map 69 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1688] + PartitionCols:_col1, _col2, _col3 + Select Operator [SEL_1679] (rows=458612 width=15) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_1670] (rows=458612 width=15) + predicate:(i_brand_id is not null and i_category_id is not null and i_class_id is not null and i_item_sk is not null) + Please refer to the previous TableScan [TS_88] + <-Reducer 75 [ONE_TO_ONE_EDGE] vectorized + FORWARD [RS_1699] + PartitionCols:_col0, _col1, _col2 + Select Operator [SEL_1698] (rows=1 width=12) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_1697] (rows=1 width=20) + predicate:(_col3 = 3L) + Group By Operator [GBY_1696] (rows=121728 width=19) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2 + <-Union 74 [SIMPLE_EDGE] + <-Reducer 73 [CONTAINS] vectorized + Reduce Output Operator [RS_1827] + PartitionCols:_col0, _col1, _col2 + Group By Operator [GBY_1826] (rows=121728 width=19) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count(_col3)"],keys:_col0, _col1, _col2 + Group By Operator [GBY_1825] (rows=121728 width=19) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2 + <-Reducer 72 [SIMPLE_EDGE] + SHUFFLE [RS_111] + PartitionCols:_col0, _col1, _col2 + Please refer to the previous Group By Operator [GBY_110] + <-Reducer 87 [CONTAINS] vectorized + Reduce Output Operator [RS_1841] + PartitionCols:_col0, _col1, _col2 + Group By Operator [GBY_1840] (rows=121728 width=19) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count(_col3)"],keys:_col0, _col1, _col2 + Group By Operator [GBY_1839] (rows=121728 width=19) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2 + <-Reducer 86 [SIMPLE_EDGE] + SHUFFLE [RS_131] + PartitionCols:_col0, _col1, _col2 + Please refer to the previous Group By Operator [GBY_130] + <-Reducer 91 [CONTAINS] vectorized + Reduce Output Operator [RS_1855] + PartitionCols:_col0, _col1, _col2 + Group By Operator [GBY_1854] (rows=121728 width=19) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count(_col3)"],keys:_col0, _col1, _col2 + Group By Operator [GBY_1853] (rows=121728 width=19) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2 + <-Reducer 90 [SIMPLE_EDGE] + SHUFFLE [RS_152] + PartitionCols:_col0, _col1, _col2 + Please refer to the previous Group By Operator [GBY_151] <-Reducer 54 [ONE_TO_ONE_EDGE] - FORWARD [RS_176] + FORWARD [RS_174] PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_1405] (rows=15062131 width=15) - Conds:RS_173._col1=RS_1697._col0(Inner),Output:["_col1","_col2","_col3","_col8","_col9","_col10"] + Merge Join Operator [MERGEJOIN_1399] (rows=15062131 width=15) + Conds:RS_169._col1=RS_1687._col0(Inner),Output:["_col1","_col2","_col3","_col8","_col9","_col10"] <-Map 69 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1697] + SHUFFLE [RS_1687] PartitionCols:_col0 - Select Operator [SEL_1685] (rows=462000 width=15) + Select Operator [SEL_1678] (rows=462000 width=15) Output:["_col0","_col1","_col2","_col3"] - Filter Operator [FIL_1676] (rows=462000 width=15) + Filter Operator [FIL_1669] (rows=462000 width=15) predicate:i_item_sk is not null - Please refer to the previous TableScan [TS_91] + Please refer to the previous TableScan [TS_88] <-Reducer 53 [SIMPLE_EDGE] - SHUFFLE [RS_173] + SHUFFLE [RS_169] PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_1404] (rows=15062131 width=4) - Conds:RS_1718._col0=RS_1661._col0(Inner),Output:["_col1","_col2","_col3"] + Merge Join Operator [MERGEJOIN_1398] (rows=15062131 width=4) + Conds:RS_1704._col0=RS_1655._col0(Inner),Output:["_col1","_col2","_col3"] <-Map 57 [SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_1661] + PARTITION_ONLY_SHUFFLE [RS_1655] PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_1660] + Please refer to the previous Select Operator [SEL_1654] <-Map 52 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1718] + SHUFFLE [RS_1704] PartitionCols:_col0 - Select Operator [SEL_1717] (rows=550076554 width=118) + Select Operator [SEL_1703] (rows=550076554 width=118) Output:["_col0","_col1","_col2","_col3"] - Filter Operator [FIL_1716] (rows=550076554 width=118) - predicate:((ss_item_sk BETWEEN DynamicValue(RS_177_item_i_item_sk_min) AND DynamicValue(RS_177_item_i_item_sk_max) and in_bloom_filter(ss_item_sk, DynamicValue(RS_177_item_i_item_sk_bloom_filter))) and (ss_sold_date_sk BETWEEN DynamicValue(RS_171_date_dim_d_date_sk_min) AND DynamicValue(RS_171_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_171_date_dim_d_date_sk_bloom_filter))) and ss_item_sk is not null and ss_sold_date_sk is not null) + Filter Operator [FIL_1702] (rows=550076554 width=118) + predicate:((ss_item_sk BETWEEN DynamicValue(RS_175_item_i_item_sk_min) AND DynamicValue(RS_175_item_i_item_sk_max) and in_bloom_filter(ss_item_sk, DynamicValue(RS_175_item_i_item_sk_bloom_filter))) and (ss_sold_date_sk BETWEEN DynamicValue(RS_167_date_dim_d_date_sk_min) AND DynamicValue(RS_167_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_167_date_dim_d_date_sk_bloom_filter))) and ss_item_sk is not null and ss_sold_date_sk is not null) TableScan [TS_82] (rows=575995635 width=118) default@store_sales,store_sales,Tbl:COMPLETE,Col:COMPLETE,Output:["ss_sold_date_sk","ss_item_sk","ss_quantity","ss_list_price"] <-Reducer 58 [BROADCAST_EDGE] vectorized - BROADCAST [RS_1674] - Group By Operator [GBY_1673] (rows=1 width=12) + BROADCAST [RS_1668] + Group By Operator [GBY_1667] (rows=1 width=12) Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] <-Map 57 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_1670] - Group By Operator [GBY_1667] (rows=1 width=12) + PARTITION_ONLY_SHUFFLE [RS_1664] + Group By Operator [GBY_1661] (rows=1 width=12) Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_1662] (rows=50 width=4) + Select Operator [SEL_1656] (rows=50 width=4) Output:["_col0"] - Please refer to the previous Select Operator [SEL_1660] - <-Reducer 72 [BROADCAST_EDGE] vectorized - BROADCAST [RS_1715] - Group By Operator [GBY_1714] (rows=1 width=12) + Please refer to the previous Select Operator [SEL_1654] + <-Reducer 71 [BROADCAST_EDGE] vectorized + BROADCAST [RS_1701] + Group By Operator [GBY_1700] (rows=1 width=12) Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Reducer 71 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_1713] - Group By Operator [GBY_1712] (rows=1 width=12) + <-Reducer 70 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_897] + Group By Operator [GBY_896] (rows=1 width=12) Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_1711] (rows=362 width=4) + Select Operator [SEL_895] (rows=362 width=4) Output:["_col0"] - Please refer to the previous Group By Operator [GBY_1709] + Please refer to the previous Group By Operator [GBY_173] diff --git a/ql/src/test/results/clientpositive/spark/semijoin.q.out b/ql/src/test/results/clientpositive/spark/semijoin.q.out index a787bce4b4..38db76dc11 100644 --- a/ql/src/test/results/clientpositive/spark/semijoin.q.out +++ b/ql/src/test/results/clientpositive/spark/semijoin.q.out @@ -2921,3 +2921,55 @@ POSTHOOK: query: select key, value from src outr left semi join POSTHOOK: type: QUERY POSTHOOK: Input: default@src #### A masked pattern was here #### +PREHOOK: query: explain cbo select pp.p_partkey from (select distinct p_name from part) p join part pp on pp.p_name = p.p_name +PREHOOK: type: QUERY +PREHOOK: Input: default@part +#### A masked pattern was here #### +POSTHOOK: query: explain cbo select pp.p_partkey from (select distinct p_name from part) p join part pp on pp.p_name = p.p_name +POSTHOOK: type: QUERY +POSTHOOK: Input: default@part +#### A masked pattern was here #### +CBO PLAN: +HiveProject(p_partkey=[$0]) + HiveSemiJoin(condition=[=($1, $3)], joinType=[inner]) + HiveProject(p_partkey=[$0], p_name=[$1]) + HiveFilter(condition=[IS NOT NULL($1)]) + HiveTableScan(table=[[default, part]], table:alias=[pp]) + HiveProject(p_partkey=[$0], p_name=[$1], p_mfgr=[$2], p_brand=[$3], p_type=[$4], p_size=[$5], p_container=[$6], p_retailprice=[$7], p_comment=[$8], BLOCK__OFFSET__INSIDE__FILE=[$9], INPUT__FILE__NAME=[$10], ROW__ID=[$11]) + HiveFilter(condition=[IS NOT NULL($1)]) + HiveTableScan(table=[[default, part]], table:alias=[part]) + +PREHOOK: query: select pp.p_partkey from (select distinct p_name from part) p join part pp on pp.p_name = p.p_name +PREHOOK: type: QUERY +PREHOOK: Input: default@part +#### A masked pattern was here #### +POSTHOOK: query: select pp.p_partkey from (select distinct p_name from part) p join part pp on pp.p_name = p.p_name +POSTHOOK: type: QUERY +POSTHOOK: Input: default@part +#### A masked pattern was here #### +105685 +110592 +112398 +121152 +121152 +132666 +144293 +146985 +15103 +155733 +17273 +17927 +191709 +192697 +195606 +33357 +40982 +42669 +45261 +48427 +49671 +65667 +78486 +85768 +86428 +90681