From 0852b5c27ef3942d1a5b190ada8ec55440f779ce Mon Sep 17 00:00:00 2001 From: "zhongjian.xzj" Date: Tue, 2 Jul 2024 11:47:18 +0800 Subject: [PATCH 1/2] [opt](nereids) recover adoptive bucket shuffle --- .../ChildrenPropertiesRegulator.java | 58 +++++++++++++++++-- .../org/apache/doris/qe/SessionVariable.java | 9 --- .../test_bucket_shuffle_join.groovy | 1 + .../tpcds_sf1_index/sql/q78.sql | 4 +- .../suites/nereids_p0/hint/fix_leading.groovy | 1 + .../nereids_p0/hint/multi_leading.groovy | 1 + .../nereids_p0/hint/test_distribute.groovy | 1 + .../nereids_p0/hint/test_leading.groovy | 1 + .../join/bucket_shuffle_join.groovy | 2 + .../bs_downgrade_shape/query13.groovy | 1 - .../bs_downgrade_shape/query19.groovy | 1 - .../bs_downgrade_shape/query44.groovy | 1 - .../bs_downgrade_shape/query45.groovy | 1 - .../bs_downgrade_shape/query54.groovy | 1 - .../bs_downgrade_shape/query56.groovy | 1 - .../bs_downgrade_shape/query6.groovy | 1 - .../bs_downgrade_shape/query61.groovy | 1 - .../bs_downgrade_shape/query68.groovy | 1 - .../bs_downgrade_shape/query8.groovy | 1 - .../bs_downgrade_shape/query91.groovy | 1 - .../bs_downgrade_shape/query95.groovy | 1 - 21 files changed, 61 insertions(+), 29 deletions(-) diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/properties/ChildrenPropertiesRegulator.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/properties/ChildrenPropertiesRegulator.java index bdb7bbfbb10526..ff122be5b95d62 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/properties/ChildrenPropertiesRegulator.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/properties/ChildrenPropertiesRegulator.java @@ -30,6 +30,7 @@ import org.apache.doris.nereids.trees.expressions.SlotReference; import org.apache.doris.nereids.trees.expressions.functions.agg.MultiDistinction; import org.apache.doris.nereids.trees.plans.AggMode; +import org.apache.doris.nereids.trees.plans.GroupPlan; import org.apache.doris.nereids.trees.plans.JoinType; import org.apache.doris.nereids.trees.plans.Plan; import org.apache.doris.nereids.trees.plans.SortPhase; @@ -39,6 +40,7 @@ import org.apache.doris.nereids.trees.plans.physical.PhysicalHashAggregate; import org.apache.doris.nereids.trees.plans.physical.PhysicalHashJoin; import org.apache.doris.nereids.trees.plans.physical.PhysicalNestedLoopJoin; +import org.apache.doris.nereids.trees.plans.physical.PhysicalOlapScan; import org.apache.doris.nereids.trees.plans.physical.PhysicalPartitionTopN; import org.apache.doris.nereids.trees.plans.physical.PhysicalProject; import org.apache.doris.nereids.trees.plans.physical.PhysicalSetOperation; @@ -199,12 +201,53 @@ public Boolean visitPhysicalFilter(PhysicalFilter filter, Void c return true; } - private boolean isBucketShuffleDownGrade(DistributionSpecHash srcSideSpec) { - boolean isBucketShuffleDownGrade = ConnectContext.get().getSessionVariable().isEnableBucketShuffleDownGrade(); - if (!isBucketShuffleDownGrade) { + private boolean isBucketShuffleDownGrade(Plan oneSidePlan, DistributionSpecHash otherSideSpec) { + // improper to do bucket shuffle join: + // oneSide: + // - base table and tablets' number is small enough (< paraInstanceNum) + // otherSide: + // - ShuffleType.EXECUTION_BUCKETED + boolean isEnableBucketShuffleJoin = ConnectContext.get().getSessionVariable().isEnableBucketShuffleJoin(); + if (!isEnableBucketShuffleJoin) { + return true; + } else if (otherSideSpec.getShuffleType() != ShuffleType.EXECUTION_BUCKETED + || !(oneSidePlan instanceof GroupPlan)) { return false; } else { - return srcSideSpec.getShuffleType() == ShuffleType.EXECUTION_BUCKETED; + PhysicalOlapScan candidate = findDownGradeBucketShuffleCandidate((GroupPlan) oneSidePlan); + if (candidate == null || candidate.getTable() == null + || candidate.getTable().getDefaultDistributionInfo() == null) { + return false; + } else { + int prunedPartNum = candidate.getSelectedPartitionIds().size(); + int bucketNum = candidate.getTable().getDefaultDistributionInfo().getBucketNum(); + int totalBucketNum = prunedPartNum * bucketNum; + int backEndNum = Math.max(1, ConnectContext.get().getEnv().getClusterInfo() + .getBackendsNumber(true)); + int paraNum = Math.max(1, ConnectContext.get().getSessionVariable().getParallelExecInstanceNum()); + int totalParaNum = Math.min(10, backEndNum * paraNum); + return totalBucketNum < totalParaNum; + } + } + } + + private PhysicalOlapScan findDownGradeBucketShuffleCandidate(GroupPlan groupPlan) { + if (groupPlan == null || groupPlan.getGroup() == null + || groupPlan.getGroup().getPhysicalExpressions().isEmpty()) { + return null; + } else { + Plan targetPlan = groupPlan.getGroup().getPhysicalExpressions().get(0).getPlan(); + while (targetPlan != null + && (targetPlan instanceof PhysicalProject || targetPlan instanceof PhysicalFilter) + && !((GroupPlan) targetPlan.child(0)).getGroup().getPhysicalExpressions().isEmpty()) { + targetPlan = ((GroupPlan) targetPlan.child(0)).getGroup() + .getPhysicalExpressions().get(0).getPlan(); + } + if (targetPlan == null || !(targetPlan instanceof PhysicalOlapScan)) { + return null; + } else { + return (PhysicalOlapScan) targetPlan; + } } } @@ -241,6 +284,9 @@ public Boolean visitPhysicalHashJoin( throw new RuntimeException("should not come here, two children of shuffle join should all be shuffle"); } + Plan leftChild = hashJoin.child(0); + Plan rightChild = hashJoin.child(1); + DistributionSpecHash leftHashSpec = (DistributionSpecHash) leftDistributionSpec; DistributionSpecHash rightHashSpec = (DistributionSpecHash) rightDistributionSpec; @@ -261,7 +307,7 @@ public Boolean visitPhysicalHashJoin( ShuffleType.EXECUTION_BUCKETED, leftHashSpec, rightHashSpec, (DistributionSpecHash) requiredProperties.get(0).getDistributionSpec(), (DistributionSpecHash) requiredProperties.get(1).getDistributionSpec())); - } else if (isBucketShuffleDownGrade(rightHashSpec)) { + } else if (isBucketShuffleDownGrade(leftChild, rightHashSpec)) { updatedForLeft = Optional.of(calAnotherSideRequired( ShuffleType.EXECUTION_BUCKETED, leftHashSpec, leftHashSpec, (DistributionSpecHash) requiredProperties.get(0).getDistributionSpec(), @@ -270,7 +316,7 @@ public Boolean visitPhysicalHashJoin( ShuffleType.EXECUTION_BUCKETED, leftHashSpec, rightHashSpec, (DistributionSpecHash) requiredProperties.get(0).getDistributionSpec(), (DistributionSpecHash) requiredProperties.get(1).getDistributionSpec())); - } else if (isBucketShuffleDownGrade(leftHashSpec)) { + } else if (isBucketShuffleDownGrade(rightChild, leftHashSpec)) { updatedForLeft = Optional.of(calAnotherSideRequired( ShuffleType.EXECUTION_BUCKETED, rightHashSpec, leftHashSpec, (DistributionSpecHash) requiredProperties.get(1).getDistributionSpec(), diff --git a/fe/fe-core/src/main/java/org/apache/doris/qe/SessionVariable.java b/fe/fe-core/src/main/java/org/apache/doris/qe/SessionVariable.java index 29d3fbf985b4b6..c373b2c9d31187 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/qe/SessionVariable.java +++ b/fe/fe-core/src/main/java/org/apache/doris/qe/SessionVariable.java @@ -269,8 +269,6 @@ public class SessionVariable implements Serializable, Writable { public static final String ENABLE_AGG_STATE = "enable_agg_state"; - public static final String ENABLE_BUCKET_SHUFFLE_DOWNGRADE = "enable_bucket_shuffle_downgrade"; - public static final String ENABLE_RPC_OPT_FOR_PIPELINE = "enable_rpc_opt_for_pipeline"; public static final String ENABLE_SINGLE_DISTINCT_COLUMN_OPT = "enable_single_distinct_column_opt"; @@ -854,9 +852,6 @@ public class SessionVariable implements Serializable, Writable { @VariableMgr.VarAttr(name = ENABLE_BUCKET_SHUFFLE_JOIN, varType = VariableAnnotation.EXPERIMENTAL_ONLINE) public boolean enableBucketShuffleJoin = true; - @VariableMgr.VarAttr(name = ENABLE_BUCKET_SHUFFLE_DOWNGRADE, needForward = true) - public boolean enableBucketShuffleDownGrade = false; - /** * explode function row count enlarge factor. */ @@ -2573,10 +2568,6 @@ public boolean isEnableBucketShuffleJoin() { return enableBucketShuffleJoin; } - public boolean isEnableBucketShuffleDownGrade() { - return enableBucketShuffleDownGrade; - } - public boolean isEnableOdbcTransaction() { return enableOdbcTransaction; } diff --git a/regression-test/suites/correctness_p0/test_bucket_shuffle_join.groovy b/regression-test/suites/correctness_p0/test_bucket_shuffle_join.groovy index dcb06a2bbd1c70..1ca2d6845de939 100644 --- a/regression-test/suites/correctness_p0/test_bucket_shuffle_join.groovy +++ b/regression-test/suites/correctness_p0/test_bucket_shuffle_join.groovy @@ -18,6 +18,7 @@ suite("test_bucket_shuffle_join") { sql "set disable_join_reorder=true" + sql "set parallel_pipeline_task_num=1" sql """ DROP TABLE IF EXISTS `test_colo1` """ sql """ DROP TABLE IF EXISTS `test_colo2` """ diff --git a/regression-test/suites/inverted_index_p1/tpcds_sf1_index/sql/q78.sql b/regression-test/suites/inverted_index_p1/tpcds_sf1_index/sql/q78.sql index c4a191e03b02ae..7aba084ebf4d56 100644 --- a/regression-test/suites/inverted_index_p1/tpcds_sf1_index/sql/q78.sql +++ b/regression-test/suites/inverted_index_p1/tpcds_sf1_index/sql/q78.sql @@ -47,7 +47,7 @@ WITH WHERE (sr_ticket_number IS NULL) GROUP BY d_year, ss_item_sk, ss_customer_sk ) -SELECT +SELECT /*+SET_VAR(experimental_enable_local_shuffle=false)*/ ss_sold_year , ss_item_sk , ss_customer_sk @@ -70,4 +70,4 @@ WHERE (COALESCE(ws_qty, 0) > 0) AND (COALESCE(cs_qty, 0) > 0) AND (ss_sold_year = 2000) ORDER BY ss_sold_year ASC, ss_item_sk ASC, ss_customer_sk ASC, ss_qty DESC, ss_wc DESC, ss_sp DESC, other_chan_qty ASC, other_chan_wholesale_cost ASC, other_chan_sales_price ASC, round((CAST(ss_qty AS DECIMAL(10,2)) / COALESCE((ws_qty + cs_qty), 1)), 2) ASC -LIMIT 100 \ No newline at end of file +LIMIT 100 diff --git a/regression-test/suites/nereids_p0/hint/fix_leading.groovy b/regression-test/suites/nereids_p0/hint/fix_leading.groovy index 7701f49fe6db96..e7cb8c6c189d47 100644 --- a/regression-test/suites/nereids_p0/hint/fix_leading.groovy +++ b/regression-test/suites/nereids_p0/hint/fix_leading.groovy @@ -26,6 +26,7 @@ suite("fix_leading") { // setting planner to nereids sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=1' + sql "set parallel_pipeline_task_num=1" sql "set disable_nereids_rules=PRUNE_EMPTY_PARTITION" sql 'set enable_nereids_planner=true' sql 'set enable_fallback_to_original_planner=false' diff --git a/regression-test/suites/nereids_p0/hint/multi_leading.groovy b/regression-test/suites/nereids_p0/hint/multi_leading.groovy index 9ea97cc024e0d2..e031f9091f2b9b 100644 --- a/regression-test/suites/nereids_p0/hint/multi_leading.groovy +++ b/regression-test/suites/nereids_p0/hint/multi_leading.groovy @@ -26,6 +26,7 @@ suite("multi_leading") { // setting planner to nereids sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=1' + sql 'set parallel_pipeline_task_num=1' sql "set disable_nereids_rules=PRUNE_EMPTY_PARTITION" sql 'set enable_nereids_planner=true' sql "set ignore_shape_nodes='PhysicalProject'" diff --git a/regression-test/suites/nereids_p0/hint/test_distribute.groovy b/regression-test/suites/nereids_p0/hint/test_distribute.groovy index db53a3b4ffd313..06ec5da5b3f2e8 100644 --- a/regression-test/suites/nereids_p0/hint/test_distribute.groovy +++ b/regression-test/suites/nereids_p0/hint/test_distribute.groovy @@ -28,6 +28,7 @@ suite("test_distribute") { sql 'set enable_fallback_to_original_planner=false' sql 'set runtime_filter_mode=OFF' sql 'set be_number_for_test=1' + sql "set parallel_pipeline_task_num=1" // create tables sql """drop table if exists t1;""" diff --git a/regression-test/suites/nereids_p0/hint/test_leading.groovy b/regression-test/suites/nereids_p0/hint/test_leading.groovy index 44bfed0edcd022..cbbff148c3a5b7 100644 --- a/regression-test/suites/nereids_p0/hint/test_leading.groovy +++ b/regression-test/suites/nereids_p0/hint/test_leading.groovy @@ -26,6 +26,7 @@ suite("test_leading") { // setting planner to nereids sql 'set exec_mem_limit=21G' sql 'set be_number_for_test=1' + sql 'set parallel_pipeline_task_num=1' sql "set disable_nereids_rules=PRUNE_EMPTY_PARTITION" sql 'set enable_nereids_planner=true' sql "set ignore_shape_nodes='PhysicalProject'" diff --git a/regression-test/suites/nereids_p0/join/bucket_shuffle_join.groovy b/regression-test/suites/nereids_p0/join/bucket_shuffle_join.groovy index e5334010d7b0ca..afce212ae98bd3 100644 --- a/regression-test/suites/nereids_p0/join/bucket_shuffle_join.groovy +++ b/regression-test/suites/nereids_p0/join/bucket_shuffle_join.groovy @@ -18,6 +18,8 @@ suite("bucket-shuffle-join") { sql "SET enable_nereids_planner=true" sql "SET enable_fallback_to_original_planner=false" + sql 'SET be_number_for_test=1' + sql 'SET parallel_pipeline_task_num=1' order_qt_test_bucket """ select * from test_bucket_shuffle_join where rectime="2021-12-01 00:00:00" and id in (select k1 from test_join where k1 in (1,2)) """ diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/bs_downgrade_shape/query13.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/bs_downgrade_shape/query13.groovy index e193a3c164ac17..02586d5c8acf39 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/bs_downgrade_shape/query13.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/bs_downgrade_shape/query13.groovy @@ -31,7 +31,6 @@ suite("query13") { sql 'set enable_runtime_filter_prune=false' sql 'set runtime_filter_type=8' sql 'set dump_nereids_memo=false' - sql 'set enable_bucket_shuffle_downgrade=true' sql "set disable_nereids_rules=PRUNE_EMPTY_PARTITION" def ds = """select avg(ss_quantity) ,avg(ss_ext_sales_price) diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/bs_downgrade_shape/query19.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/bs_downgrade_shape/query19.groovy index 5f033fc2a3986b..5d8e7b72b9644f 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/bs_downgrade_shape/query19.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/bs_downgrade_shape/query19.groovy @@ -31,7 +31,6 @@ suite("query19") { sql 'set enable_runtime_filter_prune=false' sql 'set runtime_filter_type=8' sql 'set dump_nereids_memo=false' - sql 'set enable_bucket_shuffle_downgrade=true' sql "set disable_nereids_rules=PRUNE_EMPTY_PARTITION" def ds = """select i_brand_id brand_id, i_brand brand, i_manufact_id, i_manufact, sum(ss_ext_sales_price) ext_price diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/bs_downgrade_shape/query44.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/bs_downgrade_shape/query44.groovy index 336232555055a2..2545983724a84f 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/bs_downgrade_shape/query44.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/bs_downgrade_shape/query44.groovy @@ -31,7 +31,6 @@ suite("query44") { sql 'set enable_runtime_filter_prune=false' sql 'set runtime_filter_type=8' sql 'set dump_nereids_memo=false' - sql 'set enable_bucket_shuffle_downgrade=true' sql "set disable_nereids_rules=PRUNE_EMPTY_PARTITION" def ds = """select asceding.rnk, i1.i_product_name best_performing, i2.i_product_name worst_performing from(select * diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/bs_downgrade_shape/query45.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/bs_downgrade_shape/query45.groovy index bb6a1474645cb6..7e7510ff6a0b22 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/bs_downgrade_shape/query45.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/bs_downgrade_shape/query45.groovy @@ -31,7 +31,6 @@ suite("query45") { sql 'set enable_runtime_filter_prune=false' sql 'set runtime_filter_type=8' sql 'set dump_nereids_memo=false' - sql 'set enable_bucket_shuffle_downgrade=true' sql "set disable_nereids_rules=PRUNE_EMPTY_PARTITION" def ds = """select ca_zip, ca_city, sum(ws_sales_price) from web_sales, customer, customer_address, date_dim, item diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/bs_downgrade_shape/query54.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/bs_downgrade_shape/query54.groovy index 73aa5bc448e38f..9d22cc30b66b7d 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/bs_downgrade_shape/query54.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/bs_downgrade_shape/query54.groovy @@ -31,7 +31,6 @@ suite("query54") { sql 'set enable_runtime_filter_prune=false' sql 'set runtime_filter_type=8' sql 'set dump_nereids_memo=false' - sql 'set enable_bucket_shuffle_downgrade=true' sql "set disable_nereids_rules=PRUNE_EMPTY_PARTITION" def ds = """with my_customers as ( select distinct c_customer_sk diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/bs_downgrade_shape/query56.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/bs_downgrade_shape/query56.groovy index e52121652ada2f..b1c7169b0f49ea 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/bs_downgrade_shape/query56.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/bs_downgrade_shape/query56.groovy @@ -31,7 +31,6 @@ suite("query56") { sql 'set enable_runtime_filter_prune=false' sql 'set runtime_filter_type=8' sql 'set dump_nereids_memo=false' - sql 'set enable_bucket_shuffle_downgrade=true' sql "set disable_nereids_rules=PRUNE_EMPTY_PARTITION" def ds = """with ss as ( select i_item_id,sum(ss_ext_sales_price) total_sales diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/bs_downgrade_shape/query6.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/bs_downgrade_shape/query6.groovy index 0c9aa79fdc0e8a..5708cdf3572bc7 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/bs_downgrade_shape/query6.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/bs_downgrade_shape/query6.groovy @@ -31,7 +31,6 @@ suite("query6") { sql 'set enable_runtime_filter_prune=false' sql 'set runtime_filter_type=8' sql 'set dump_nereids_memo=false' - sql 'set enable_bucket_shuffle_downgrade=true' sql "set disable_nereids_rules=PRUNE_EMPTY_PARTITION" def ds = """select a.ca_state state, count(*) cnt from customer_address a diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/bs_downgrade_shape/query61.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/bs_downgrade_shape/query61.groovy index 934096e2dd0ed3..c158a01bdead39 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/bs_downgrade_shape/query61.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/bs_downgrade_shape/query61.groovy @@ -31,7 +31,6 @@ suite("query61") { sql 'set enable_runtime_filter_prune=false' sql 'set runtime_filter_type=8' sql 'set dump_nereids_memo=false' - sql 'set enable_bucket_shuffle_downgrade=true' sql "set disable_nereids_rules=PRUNE_EMPTY_PARTITION" def ds = """select promotions,total,cast(promotions as decimal(15,4))/cast(total as decimal(15,4))*100 from diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/bs_downgrade_shape/query68.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/bs_downgrade_shape/query68.groovy index 8254a07d9e4ea3..0214be7a485d13 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/bs_downgrade_shape/query68.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/bs_downgrade_shape/query68.groovy @@ -31,7 +31,6 @@ suite("query68") { sql 'set enable_runtime_filter_prune=false' sql 'set runtime_filter_type=8' sql 'set dump_nereids_memo=false' - sql 'set enable_bucket_shuffle_downgrade=true' sql "set disable_nereids_rules=PRUNE_EMPTY_PARTITION" def ds = """select c_last_name ,c_first_name diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/bs_downgrade_shape/query8.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/bs_downgrade_shape/query8.groovy index b80b49ca1d06ca..78597d354eb383 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/bs_downgrade_shape/query8.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/bs_downgrade_shape/query8.groovy @@ -31,7 +31,6 @@ suite("query8") { sql 'set enable_runtime_filter_prune=false' sql 'set runtime_filter_type=8' sql 'set dump_nereids_memo=false' - sql 'set enable_bucket_shuffle_downgrade=true' sql "set disable_nereids_rules=PRUNE_EMPTY_PARTITION" def ds = """select s_store_name ,sum(ss_net_profit) diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/bs_downgrade_shape/query91.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/bs_downgrade_shape/query91.groovy index 9111287fc7ad34..c8d78357912f63 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/bs_downgrade_shape/query91.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/bs_downgrade_shape/query91.groovy @@ -31,7 +31,6 @@ suite("query91") { sql 'set enable_runtime_filter_prune=false' sql 'set runtime_filter_type=8' sql 'set dump_nereids_memo=false' - sql 'set enable_bucket_shuffle_downgrade=true' sql "set disable_nereids_rules=PRUNE_EMPTY_PARTITION" def ds = """select cc_call_center_id Call_Center, diff --git a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/bs_downgrade_shape/query95.groovy b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/bs_downgrade_shape/query95.groovy index e34c656e2cc80b..b3439e40240e11 100644 --- a/regression-test/suites/nereids_tpcds_shape_sf1000_p0/bs_downgrade_shape/query95.groovy +++ b/regression-test/suites/nereids_tpcds_shape_sf1000_p0/bs_downgrade_shape/query95.groovy @@ -31,7 +31,6 @@ suite("query95") { sql 'set enable_runtime_filter_prune=false' sql 'set runtime_filter_type=8' sql 'set dump_nereids_memo=false' - sql 'set enable_bucket_shuffle_downgrade=true' sql "set disable_nereids_rules=PRUNE_EMPTY_PARTITION" def ds = """with ws_wh as (select ws1.ws_order_number,ws1.ws_warehouse_sk wh1,ws2.ws_warehouse_sk wh2 From 450f4c6ca901ea69501a0b840e7368dc50eddfbc Mon Sep 17 00:00:00 2001 From: "zhongjian.xzj" Date: Wed, 3 Jul 2024 15:14:11 +0800 Subject: [PATCH 2/2] [opt](nereids) recover adoptive bucket shuffle --- .../bs_downgrade_shape/query19.out | 2 +- .../bs_downgrade_shape/query44.out | 4 ++-- .../bs_downgrade_shape/query54.out | 2 +- .../bs_downgrade_shape/query56.out | 2 +- .../bs_downgrade_shape/query6.out | 2 +- .../bs_downgrade_shape/query61.out | 2 +- .../bs_downgrade_shape/query68.out | 4 ++-- .../bs_downgrade_shape/query8.out | 2 +- .../bs_downgrade_shape/query91.out | 2 +- .../bs_downgrade_shape/query95.out | 2 +- .../data/nereids_tpcds_shape_sf1000_p0/shape/query85.out | 2 +- .../data/nereids_tpcds_shape_sf100_p0/rf_prune/query61.out | 2 +- .../data/nereids_tpcds_shape_sf100_p0/rf_prune/query85.out | 2 +- .../data/nereids_tpcds_shape_sf100_p0/shape/query61.out | 2 +- .../data/nereids_tpcds_shape_sf100_p0/shape/query85.out | 2 +- 15 files changed, 17 insertions(+), 17 deletions(-) diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/bs_downgrade_shape/query19.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/bs_downgrade_shape/query19.out index 7897fdf5503ad8..a96b3c0601d8a0 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/bs_downgrade_shape/query19.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/bs_downgrade_shape/query19.out @@ -11,7 +11,7 @@ PhysicalResultSink ----------------PhysicalProject ------------------hashJoin[INNER_JOIN broadcast] hashCondition=((store_sales.ss_store_sk = store.s_store_sk)) otherCondition=(( not (substring(ca_zip, 1, 5) = substring(s_zip, 1, 5)))) build RFs:RF4 s_store_sk->[ss_store_sk] --------------------PhysicalProject -----------------------hashJoin[INNER_JOIN shuffle] hashCondition=((customer.c_current_addr_sk = customer_address.ca_address_sk)) otherCondition=() build RFs:RF3 c_current_addr_sk->[ca_address_sk] +----------------------hashJoin[INNER_JOIN bucketShuffle] hashCondition=((customer.c_current_addr_sk = customer_address.ca_address_sk)) otherCondition=() build RFs:RF3 c_current_addr_sk->[ca_address_sk] ------------------------PhysicalProject --------------------------PhysicalOlapScan[customer_address] apply RFs: RF3 ------------------------PhysicalProject diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/bs_downgrade_shape/query44.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/bs_downgrade_shape/query44.out index 0b50b37d933643..1e4dfea2226f27 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/bs_downgrade_shape/query44.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/bs_downgrade_shape/query44.out @@ -7,7 +7,7 @@ PhysicalResultSink --------PhysicalProject ----------hashJoin[INNER_JOIN shuffle] hashCondition=((asceding.rnk = descending.rnk)) otherCondition=() ------------PhysicalProject ---------------hashJoin[INNER_JOIN broadcast] hashCondition=((i1.i_item_sk = asceding.item_sk)) otherCondition=() build RFs:RF1 item_sk->[i_item_sk] +--------------hashJoin[INNER_JOIN bucketShuffle] hashCondition=((i1.i_item_sk = asceding.item_sk)) otherCondition=() build RFs:RF1 item_sk->[i_item_sk] ----------------PhysicalProject ------------------PhysicalOlapScan[item] apply RFs: RF1 ----------------PhysicalProject @@ -37,7 +37,7 @@ PhysicalResultSink --------------------------------------------------filter((store_sales.ss_store_sk = 4) and ss_hdemo_sk IS NULL) ----------------------------------------------------PhysicalOlapScan[store_sales] ------------PhysicalProject ---------------hashJoin[INNER_JOIN broadcast] hashCondition=((i2.i_item_sk = descending.item_sk)) otherCondition=() build RFs:RF0 item_sk->[i_item_sk] +--------------hashJoin[INNER_JOIN bucketShuffle] hashCondition=((i2.i_item_sk = descending.item_sk)) otherCondition=() build RFs:RF0 item_sk->[i_item_sk] ----------------PhysicalProject ------------------PhysicalOlapScan[item] apply RFs: RF0 ----------------PhysicalProject diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/bs_downgrade_shape/query54.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/bs_downgrade_shape/query54.out index 76b83c1d65f54c..397a41b34c4e60 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/bs_downgrade_shape/query54.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/bs_downgrade_shape/query54.out @@ -25,7 +25,7 @@ PhysicalResultSink ----------------------------------------PhysicalProject ------------------------------------------hashJoin[INNER_JOIN broadcast] hashCondition=((customer_address.ca_county = store.s_county) and (customer_address.ca_state = store.s_state)) otherCondition=() build RFs:RF4 s_county->[ca_county];RF5 s_state->[ca_state] --------------------------------------------PhysicalProject -----------------------------------------------hashJoin[INNER_JOIN broadcast] hashCondition=((my_customers.c_current_addr_sk = customer_address.ca_address_sk)) otherCondition=() build RFs:RF3 c_current_addr_sk->[ca_address_sk] +----------------------------------------------hashJoin[INNER_JOIN bucketShuffle] hashCondition=((my_customers.c_current_addr_sk = customer_address.ca_address_sk)) otherCondition=() build RFs:RF3 c_current_addr_sk->[ca_address_sk] ------------------------------------------------PhysicalProject --------------------------------------------------PhysicalOlapScan[customer_address] apply RFs: RF3 RF4 RF5 ------------------------------------------------PhysicalProject diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/bs_downgrade_shape/query56.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/bs_downgrade_shape/query56.out index 9c20cb7fbf24ec..193bf4c8b221bb 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/bs_downgrade_shape/query56.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/bs_downgrade_shape/query56.out @@ -61,7 +61,7 @@ PhysicalResultSink --------------------PhysicalDistribute[DistributionSpecHash] ----------------------hashAgg[LOCAL] ------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN shuffle] hashCondition=((web_sales.ws_bill_addr_sk = customer_address.ca_address_sk)) otherCondition=() build RFs:RF11 ws_bill_addr_sk->[ca_address_sk] +--------------------------hashJoin[INNER_JOIN bucketShuffle] hashCondition=((web_sales.ws_bill_addr_sk = customer_address.ca_address_sk)) otherCondition=() build RFs:RF11 ws_bill_addr_sk->[ca_address_sk] ----------------------------PhysicalProject ------------------------------filter((customer_address.ca_gmt_offset = -6.00)) --------------------------------PhysicalOlapScan[customer_address] apply RFs: RF11 diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/bs_downgrade_shape/query6.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/bs_downgrade_shape/query6.out index 51d1ae7eb9835c..a77a1e47790a1a 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/bs_downgrade_shape/query6.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/bs_downgrade_shape/query6.out @@ -10,7 +10,7 @@ PhysicalResultSink --------------PhysicalDistribute[DistributionSpecHash] ----------------hashAgg[LOCAL] ------------------PhysicalProject ---------------------hashJoin[INNER_JOIN shuffle] hashCondition=((a.ca_address_sk = c.c_current_addr_sk)) otherCondition=() build RFs:RF5 c_current_addr_sk->[ca_address_sk] +--------------------hashJoin[INNER_JOIN bucketShuffle] hashCondition=((a.ca_address_sk = c.c_current_addr_sk)) otherCondition=() build RFs:RF5 c_current_addr_sk->[ca_address_sk] ----------------------PhysicalProject ------------------------PhysicalOlapScan[customer_address] apply RFs: RF5 ----------------------PhysicalProject diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/bs_downgrade_shape/query61.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/bs_downgrade_shape/query61.out index ace2ec0930b68f..265019e6436c0c 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/bs_downgrade_shape/query61.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/bs_downgrade_shape/query61.out @@ -8,7 +8,7 @@ PhysicalResultSink ----------PhysicalDistribute[DistributionSpecGather] ------------hashAgg[LOCAL] --------------PhysicalProject -----------------hashJoin[INNER_JOIN shuffle] hashCondition=((customer_address.ca_address_sk = customer.c_current_addr_sk)) otherCondition=() build RFs:RF10 c_current_addr_sk->[ca_address_sk] +----------------hashJoin[INNER_JOIN bucketShuffle] hashCondition=((customer_address.ca_address_sk = customer.c_current_addr_sk)) otherCondition=() build RFs:RF10 c_current_addr_sk->[ca_address_sk] ------------------PhysicalProject --------------------filter((customer_address.ca_gmt_offset = -7.00)) ----------------------PhysicalOlapScan[customer_address] apply RFs: RF10 diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/bs_downgrade_shape/query68.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/bs_downgrade_shape/query68.out index 5feea59f7ddc1a..1fc61126d40c7d 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/bs_downgrade_shape/query68.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/bs_downgrade_shape/query68.out @@ -5,7 +5,7 @@ PhysicalResultSink ----PhysicalDistribute[DistributionSpecGather] ------PhysicalTopN[LOCAL_SORT] --------PhysicalProject -----------hashJoin[INNER_JOIN shuffle] hashCondition=((customer.c_current_addr_sk = current_addr.ca_address_sk)) otherCondition=(( not (ca_city = bought_city))) build RFs:RF5 c_current_addr_sk->[ca_address_sk] +----------hashJoin[INNER_JOIN bucketShuffle] hashCondition=((customer.c_current_addr_sk = current_addr.ca_address_sk)) otherCondition=(( not (ca_city = bought_city))) build RFs:RF5 c_current_addr_sk->[ca_address_sk] ------------PhysicalProject --------------PhysicalOlapScan[customer_address] apply RFs: RF5 ------------PhysicalProject @@ -15,7 +15,7 @@ PhysicalResultSink ----------------PhysicalProject ------------------hashAgg[LOCAL] --------------------PhysicalProject -----------------------hashJoin[INNER_JOIN shuffle] hashCondition=((store_sales.ss_addr_sk = customer_address.ca_address_sk)) otherCondition=() build RFs:RF3 ss_addr_sk->[ca_address_sk] +----------------------hashJoin[INNER_JOIN bucketShuffle] hashCondition=((store_sales.ss_addr_sk = customer_address.ca_address_sk)) otherCondition=() build RFs:RF3 ss_addr_sk->[ca_address_sk] ------------------------PhysicalProject --------------------------PhysicalOlapScan[customer_address] apply RFs: RF3 ------------------------PhysicalProject diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/bs_downgrade_shape/query8.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/bs_downgrade_shape/query8.out index f46875bd0bcb5b..58865f101ca9c2 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/bs_downgrade_shape/query8.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/bs_downgrade_shape/query8.out @@ -29,7 +29,7 @@ PhysicalResultSink ------------------------------PhysicalDistribute[DistributionSpecHash] --------------------------------hashAgg[LOCAL] ----------------------------------PhysicalProject -------------------------------------hashJoin[INNER_JOIN shuffle] hashCondition=((customer_address.ca_address_sk = customer.c_current_addr_sk)) otherCondition=() build RFs:RF0 c_current_addr_sk->[ca_address_sk] +------------------------------------hashJoin[INNER_JOIN bucketShuffle] hashCondition=((customer_address.ca_address_sk = customer.c_current_addr_sk)) otherCondition=() build RFs:RF0 c_current_addr_sk->[ca_address_sk] --------------------------------------PhysicalProject ----------------------------------------PhysicalOlapScan[customer_address] apply RFs: RF0 --------------------------------------PhysicalProject diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/bs_downgrade_shape/query91.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/bs_downgrade_shape/query91.out index 2e108cf8571336..b1dcb4bfdae85a 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/bs_downgrade_shape/query91.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/bs_downgrade_shape/query91.out @@ -17,7 +17,7 @@ PhysicalResultSink ----------------------------PhysicalProject ------------------------------PhysicalOlapScan[catalog_returns] apply RFs: RF3 RF4 RF5 ----------------------------PhysicalProject -------------------------------hashJoin[INNER_JOIN shuffle] hashCondition=((customer_address.ca_address_sk = customer.c_current_addr_sk)) otherCondition=() build RFs:RF2 c_current_addr_sk->[ca_address_sk] +------------------------------hashJoin[INNER_JOIN bucketShuffle] hashCondition=((customer_address.ca_address_sk = customer.c_current_addr_sk)) otherCondition=() build RFs:RF2 c_current_addr_sk->[ca_address_sk] --------------------------------PhysicalProject ----------------------------------filter((customer_address.ca_gmt_offset = -7.00)) ------------------------------------PhysicalOlapScan[customer_address] apply RFs: RF2 diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/bs_downgrade_shape/query95.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/bs_downgrade_shape/query95.out index 15becda751ccce..21c6fa60d37b75 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/bs_downgrade_shape/query95.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/bs_downgrade_shape/query95.out @@ -15,7 +15,7 @@ PhysicalCteAnchor ( cteId=CTEId#0 ) ----------hashAgg[DISTINCT_LOCAL] ------------hashAgg[GLOBAL] --------------hashAgg[LOCAL] -----------------hashJoin[RIGHT_SEMI_JOIN shuffleBucket] hashCondition=((ws1.ws_order_number = web_returns.wr_order_number)) otherCondition=() build RFs:RF6 ws_order_number->[wr_order_number,ws_order_number] +----------------hashJoin[RIGHT_SEMI_JOIN colocated] hashCondition=((ws1.ws_order_number = web_returns.wr_order_number)) otherCondition=() build RFs:RF6 ws_order_number->[wr_order_number,ws_order_number] ------------------PhysicalProject --------------------hashJoin[INNER_JOIN shuffle] hashCondition=((web_returns.wr_order_number = ws_wh.ws_order_number)) otherCondition=() build RFs:RF5 wr_order_number->[ws_order_number] ----------------------PhysicalCteConsumer ( cteId=CTEId#0 ) apply RFs: RF5 RF6 diff --git a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query85.out b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query85.out index 98e830239b8011..9f5f22d4f1cb66 100644 --- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query85.out +++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query85.out @@ -9,7 +9,7 @@ PhysicalResultSink ------------PhysicalDistribute[DistributionSpecHash] --------------hashAgg[LOCAL] ----------------PhysicalProject -------------------hashJoin[INNER_JOIN bucketShuffle] hashCondition=((web_sales.ws_web_page_sk = web_page.wp_web_page_sk)) otherCondition=() build RFs:RF9 ws_web_page_sk->[wp_web_page_sk] +------------------hashJoin[INNER_JOIN broadcast] hashCondition=((web_sales.ws_web_page_sk = web_page.wp_web_page_sk)) otherCondition=() build RFs:RF9 ws_web_page_sk->[wp_web_page_sk] --------------------PhysicalProject ----------------------PhysicalOlapScan[web_page] apply RFs: RF9 --------------------PhysicalProject diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/rf_prune/query61.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/rf_prune/query61.out index 4866d7faa134d3..d034c5b43231d7 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/rf_prune/query61.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/rf_prune/query61.out @@ -27,7 +27,7 @@ PhysicalResultSink --------------------------------filter((date_dim.d_moy = 11) and (date_dim.d_year = 1999)) ----------------------------------PhysicalOlapScan[date_dim] apply RFs: RF7 ------------------------------PhysicalProject ---------------------------------hashJoin[INNER_JOIN bucketShuffle] hashCondition=((store_sales.ss_promo_sk = promotion.p_promo_sk)) otherCondition=() build RFs:RF6 ss_promo_sk->[p_promo_sk] +--------------------------------hashJoin[INNER_JOIN broadcast] hashCondition=((store_sales.ss_promo_sk = promotion.p_promo_sk)) otherCondition=() build RFs:RF6 ss_promo_sk->[p_promo_sk] ----------------------------------PhysicalProject ------------------------------------filter((((promotion.p_channel_dmail = 'Y') OR (promotion.p_channel_email = 'Y')) OR (promotion.p_channel_tv = 'Y'))) --------------------------------------PhysicalOlapScan[promotion] apply RFs: RF6 diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/rf_prune/query85.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/rf_prune/query85.out index 490a578eb40065..29d21594e0a774 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/rf_prune/query85.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/rf_prune/query85.out @@ -16,7 +16,7 @@ PhysicalResultSink --------------------------filter((customer_address.ca_country = 'United States') and ca_state IN ('DE', 'FL', 'ID', 'IL', 'IN', 'MT', 'ND', 'OH', 'TX')) ----------------------------PhysicalOlapScan[customer_address] apply RFs: RF8 ------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN bucketShuffle] hashCondition=((web_sales.ws_web_page_sk = web_page.wp_web_page_sk)) otherCondition=() build RFs:RF7 ws_web_page_sk->[wp_web_page_sk] +--------------------------hashJoin[INNER_JOIN shuffle] hashCondition=((web_sales.ws_web_page_sk = web_page.wp_web_page_sk)) otherCondition=() build RFs:RF7 ws_web_page_sk->[wp_web_page_sk] ----------------------------PhysicalProject ------------------------------PhysicalOlapScan[web_page] apply RFs: RF7 ----------------------------PhysicalProject diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query61.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query61.out index 4866d7faa134d3..d034c5b43231d7 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query61.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query61.out @@ -27,7 +27,7 @@ PhysicalResultSink --------------------------------filter((date_dim.d_moy = 11) and (date_dim.d_year = 1999)) ----------------------------------PhysicalOlapScan[date_dim] apply RFs: RF7 ------------------------------PhysicalProject ---------------------------------hashJoin[INNER_JOIN bucketShuffle] hashCondition=((store_sales.ss_promo_sk = promotion.p_promo_sk)) otherCondition=() build RFs:RF6 ss_promo_sk->[p_promo_sk] +--------------------------------hashJoin[INNER_JOIN broadcast] hashCondition=((store_sales.ss_promo_sk = promotion.p_promo_sk)) otherCondition=() build RFs:RF6 ss_promo_sk->[p_promo_sk] ----------------------------------PhysicalProject ------------------------------------filter((((promotion.p_channel_dmail = 'Y') OR (promotion.p_channel_email = 'Y')) OR (promotion.p_channel_tv = 'Y'))) --------------------------------------PhysicalOlapScan[promotion] apply RFs: RF6 diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query85.out b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query85.out index 2a2ee38b98db7d..48036e4b63eccc 100644 --- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query85.out +++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query85.out @@ -16,7 +16,7 @@ PhysicalResultSink --------------------------filter((customer_address.ca_country = 'United States') and ca_state IN ('DE', 'FL', 'ID', 'IL', 'IN', 'MT', 'ND', 'OH', 'TX')) ----------------------------PhysicalOlapScan[customer_address] apply RFs: RF8 ------------------------PhysicalProject ---------------------------hashJoin[INNER_JOIN bucketShuffle] hashCondition=((web_sales.ws_web_page_sk = web_page.wp_web_page_sk)) otherCondition=() build RFs:RF7 ws_web_page_sk->[wp_web_page_sk] +--------------------------hashJoin[INNER_JOIN shuffle] hashCondition=((web_sales.ws_web_page_sk = web_page.wp_web_page_sk)) otherCondition=() build RFs:RF7 ws_web_page_sk->[wp_web_page_sk] ----------------------------PhysicalProject ------------------------------PhysicalOlapScan[web_page] apply RFs: RF7 ----------------------------PhysicalProject