This is an automated email from the ASF dual-hosted git repository.
morrysnow pushed a commit to branch branch-2.1
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-2.1 by this push:
new 649cefd70fb [opt](Nereids) forbid distribute under project and filter
(#39812) (#41622)
649cefd70fb is described below
commit 649cefd70fb3d64726a2114526d67042c6099c6d
Author: morrySnow <[email protected]>
AuthorDate: Wed Oct 9 23:02:06 2024 +0800
[opt](Nereids) forbid distribute under project and filter (#39812) (#41622)
pick from master #39812
---
.../doris/nereids/properties/ChildrenPropertiesRegulator.java | 6 ++++++
regression-test/data/nereids_hint_tpcds_p0/shape/query47.out | 4 ++--
regression-test/data/nereids_hint_tpcds_p0/shape/query57.out | 4 ++--
regression-test/data/nereids_hint_tpcds_p0/shape/query89.out | 4 ++--
.../data/nereids_tpcds_shape_sf1000_p0/shape/query17.out | 4 ++--
.../data/nereids_tpcds_shape_sf1000_p0/shape/query25.out | 4 ++--
.../data/nereids_tpcds_shape_sf1000_p0/shape/query47.out | 4 ++--
.../data/nereids_tpcds_shape_sf1000_p0/shape/query57.out | 4 ++--
.../data/nereids_tpcds_shape_sf1000_p0/shape/query89.out | 4 ++--
.../data/nereids_tpcds_shape_sf100_p0/rf_prune/query17.out | 4 ++--
.../data/nereids_tpcds_shape_sf100_p0/rf_prune/query25.out | 4 ++--
.../data/nereids_tpcds_shape_sf100_p0/rf_prune/query57.out | 4 ++--
regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query17.out | 4 ++--
regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query25.out | 4 ++--
regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query57.out | 4 ++--
15 files changed, 34 insertions(+), 28 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 5ba1bd87b05..f4327d86b21 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
@@ -200,6 +200,9 @@ public class ChildrenPropertiesRegulator extends
PlanVisitor<Boolean, Void> {
@Override
public Boolean visitPhysicalFilter(PhysicalFilter<? extends Plan> filter,
Void context) {
// do not process must shuffle
+ if (children.get(0).getPlan() instanceof PhysicalDistribute) {
+ return false;
+ }
return true;
}
@@ -452,6 +455,9 @@ public class ChildrenPropertiesRegulator extends
PlanVisitor<Boolean, Void> {
@Override
public Boolean visitPhysicalProject(PhysicalProject<? extends Plan>
project, Void context) {
// do not process must shuffle
+ if (children.get(0).getPlan() instanceof PhysicalDistribute) {
+ return false;
+ }
return true;
}
diff --git a/regression-test/data/nereids_hint_tpcds_p0/shape/query47.out
b/regression-test/data/nereids_hint_tpcds_p0/shape/query47.out
index f4d283180f8..d5326c7fd44 100644
--- a/regression-test/data/nereids_hint_tpcds_p0/shape/query47.out
+++ b/regression-test/data/nereids_hint_tpcds_p0/shape/query47.out
@@ -7,8 +7,8 @@ PhysicalCteAnchor ( cteId=CTEId#0 )
--------PhysicalQuickSort[LOCAL_SORT]
----------PhysicalWindow
------------PhysicalQuickSort[LOCAL_SORT]
---------------PhysicalProject
-----------------PhysicalDistribute[DistributionSpecHash]
+--------------PhysicalDistribute[DistributionSpecHash]
+----------------PhysicalProject
------------------hashAgg[GLOBAL]
--------------------PhysicalDistribute[DistributionSpecHash]
----------------------hashAgg[LOCAL]
diff --git a/regression-test/data/nereids_hint_tpcds_p0/shape/query57.out
b/regression-test/data/nereids_hint_tpcds_p0/shape/query57.out
index 9e024c84cc0..25ea75ec045 100644
--- a/regression-test/data/nereids_hint_tpcds_p0/shape/query57.out
+++ b/regression-test/data/nereids_hint_tpcds_p0/shape/query57.out
@@ -7,8 +7,8 @@ PhysicalCteAnchor ( cteId=CTEId#0 )
--------PhysicalQuickSort[LOCAL_SORT]
----------PhysicalWindow
------------PhysicalQuickSort[LOCAL_SORT]
---------------PhysicalProject
-----------------PhysicalDistribute[DistributionSpecHash]
+--------------PhysicalDistribute[DistributionSpecHash]
+----------------PhysicalProject
------------------hashAgg[GLOBAL]
--------------------PhysicalDistribute[DistributionSpecHash]
----------------------hashAgg[LOCAL]
diff --git a/regression-test/data/nereids_hint_tpcds_p0/shape/query89.out
b/regression-test/data/nereids_hint_tpcds_p0/shape/query89.out
index 8abe6e598dc..032d3b486f3 100644
--- a/regression-test/data/nereids_hint_tpcds_p0/shape/query89.out
+++ b/regression-test/data/nereids_hint_tpcds_p0/shape/query89.out
@@ -9,8 +9,8 @@ PhysicalResultSink
------------filter((if(( not (avg_monthly_sales = 0.0000)),
(cast(abs((sum_sales - cast(avg_monthly_sales as DECIMALV3(38, 2)))) as
DECIMALV3(38, 10)) / avg_monthly_sales), NULL) > 0.100000))
--------------PhysicalWindow
----------------PhysicalQuickSort[LOCAL_SORT]
-------------------PhysicalProject
---------------------PhysicalDistribute[DistributionSpecHash]
+------------------PhysicalDistribute[DistributionSpecHash]
+--------------------PhysicalProject
----------------------hashAgg[GLOBAL]
------------------------PhysicalDistribute[DistributionSpecHash]
--------------------------hashAgg[LOCAL]
diff --git
a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query17.out
b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query17.out
index 0eb85c6c635..4e5a0748375 100644
--- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query17.out
+++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query17.out
@@ -19,8 +19,8 @@ PhysicalResultSink
----------------------------PhysicalProject
------------------------------filter(d_quarter_name IN ('2001Q1', '2001Q2',
'2001Q3'))
--------------------------------PhysicalOlapScan[date_dim]
---------------------PhysicalProject
-----------------------PhysicalDistribute[DistributionSpecHash]
+--------------------PhysicalDistribute[DistributionSpecHash]
+----------------------PhysicalProject
------------------------hashJoin[INNER_JOIN] hashCondition=((store.s_store_sk
= store_sales.ss_store_sk)) otherCondition=() build RFs:RF6
s_store_sk->[ss_store_sk]
--------------------------hashJoin[INNER_JOIN] hashCondition=((item.i_item_sk
= store_sales.ss_item_sk)) otherCondition=() build RFs:RF5
i_item_sk->[sr_item_sk,ss_item_sk]
----------------------------PhysicalDistribute[DistributionSpecHash]
diff --git
a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query25.out
b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query25.out
index af25bb29281..a49fcbc4782 100644
--- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query25.out
+++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query25.out
@@ -18,8 +18,8 @@ PhysicalResultSink
--------------------------PhysicalProject
----------------------------filter((d3.d_moy <= 10) and (d3.d_moy >= 4) and
(d3.d_year = 1999))
------------------------------PhysicalOlapScan[date_dim]
-------------------PhysicalProject
---------------------PhysicalDistribute[DistributionSpecHash]
+------------------PhysicalDistribute[DistributionSpecHash]
+--------------------PhysicalProject
----------------------hashJoin[INNER_JOIN] hashCondition=((store.s_store_sk =
store_sales.ss_store_sk)) otherCondition=() build RFs:RF6
s_store_sk->[ss_store_sk]
------------------------hashJoin[INNER_JOIN] hashCondition=((item.i_item_sk =
store_sales.ss_item_sk)) otherCondition=() build RFs:RF5
i_item_sk->[sr_item_sk,ss_item_sk]
--------------------------PhysicalDistribute[DistributionSpecHash]
diff --git
a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query47.out
b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query47.out
index 52024fdbe7a..612c3374336 100644
--- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query47.out
+++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query47.out
@@ -7,8 +7,8 @@ PhysicalCteAnchor ( cteId=CTEId#0 )
--------PhysicalQuickSort[LOCAL_SORT]
----------PhysicalWindow
------------PhysicalQuickSort[LOCAL_SORT]
---------------PhysicalProject
-----------------PhysicalDistribute[DistributionSpecHash]
+--------------PhysicalDistribute[DistributionSpecHash]
+----------------PhysicalProject
------------------hashAgg[GLOBAL]
--------------------PhysicalDistribute[DistributionSpecHash]
----------------------hashAgg[LOCAL]
diff --git
a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query57.out
b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query57.out
index d6681a21e47..0a7e5a71aaf 100644
--- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query57.out
+++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query57.out
@@ -7,8 +7,8 @@ PhysicalCteAnchor ( cteId=CTEId#0 )
--------PhysicalQuickSort[LOCAL_SORT]
----------PhysicalWindow
------------PhysicalQuickSort[LOCAL_SORT]
---------------PhysicalProject
-----------------PhysicalDistribute[DistributionSpecHash]
+--------------PhysicalDistribute[DistributionSpecHash]
+----------------PhysicalProject
------------------hashAgg[GLOBAL]
--------------------PhysicalDistribute[DistributionSpecHash]
----------------------hashAgg[LOCAL]
diff --git
a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query89.out
b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query89.out
index f1160eea692..e957d489c49 100644
--- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query89.out
+++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query89.out
@@ -9,8 +9,8 @@ PhysicalResultSink
------------filter((if(( not (avg_monthly_sales = 0.0000)),
(cast(abs((sum_sales - cast(avg_monthly_sales as DECIMALV3(38, 2)))) as
DECIMALV3(38, 10)) / avg_monthly_sales), NULL) > 0.100000))
--------------PhysicalWindow
----------------PhysicalQuickSort[LOCAL_SORT]
-------------------PhysicalProject
---------------------PhysicalDistribute[DistributionSpecHash]
+------------------PhysicalDistribute[DistributionSpecHash]
+--------------------PhysicalProject
----------------------hashAgg[GLOBAL]
------------------------PhysicalDistribute[DistributionSpecHash]
--------------------------hashAgg[LOCAL]
diff --git
a/regression-test/data/nereids_tpcds_shape_sf100_p0/rf_prune/query17.out
b/regression-test/data/nereids_tpcds_shape_sf100_p0/rf_prune/query17.out
index 48bfd45c964..8e854da6176 100644
--- a/regression-test/data/nereids_tpcds_shape_sf100_p0/rf_prune/query17.out
+++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/rf_prune/query17.out
@@ -19,8 +19,8 @@ PhysicalResultSink
----------------------------PhysicalProject
------------------------------filter(d_quarter_name IN ('2001Q1', '2001Q2',
'2001Q3'))
--------------------------------PhysicalOlapScan[date_dim]
---------------------PhysicalProject
-----------------------PhysicalDistribute[DistributionSpecHash]
+--------------------PhysicalDistribute[DistributionSpecHash]
+----------------------PhysicalProject
------------------------hashJoin[INNER_JOIN] hashCondition=((store.s_store_sk
= store_sales.ss_store_sk)) otherCondition=()
--------------------------hashJoin[INNER_JOIN] hashCondition=((item.i_item_sk
= store_sales.ss_item_sk)) otherCondition=()
----------------------------PhysicalDistribute[DistributionSpecHash]
diff --git
a/regression-test/data/nereids_tpcds_shape_sf100_p0/rf_prune/query25.out
b/regression-test/data/nereids_tpcds_shape_sf100_p0/rf_prune/query25.out
index 05a891bcf70..e28adb3d4ab 100644
--- a/regression-test/data/nereids_tpcds_shape_sf100_p0/rf_prune/query25.out
+++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/rf_prune/query25.out
@@ -18,8 +18,8 @@ PhysicalResultSink
--------------------------PhysicalProject
----------------------------filter((d3.d_moy <= 10) and (d3.d_moy >= 4) and
(d3.d_year = 2000))
------------------------------PhysicalOlapScan[date_dim]
-------------------PhysicalProject
---------------------PhysicalDistribute[DistributionSpecHash]
+------------------PhysicalDistribute[DistributionSpecHash]
+--------------------PhysicalProject
----------------------hashJoin[INNER_JOIN] hashCondition=((store.s_store_sk =
store_sales.ss_store_sk)) otherCondition=()
------------------------hashJoin[INNER_JOIN] hashCondition=((item.i_item_sk =
store_sales.ss_item_sk)) otherCondition=()
--------------------------PhysicalDistribute[DistributionSpecHash]
diff --git
a/regression-test/data/nereids_tpcds_shape_sf100_p0/rf_prune/query57.out
b/regression-test/data/nereids_tpcds_shape_sf100_p0/rf_prune/query57.out
index 4e7004e396e..a528ee47907 100644
--- a/regression-test/data/nereids_tpcds_shape_sf100_p0/rf_prune/query57.out
+++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/rf_prune/query57.out
@@ -7,8 +7,8 @@ PhysicalCteAnchor ( cteId=CTEId#0 )
--------PhysicalQuickSort[LOCAL_SORT]
----------PhysicalWindow
------------PhysicalQuickSort[LOCAL_SORT]
---------------PhysicalProject
-----------------PhysicalDistribute[DistributionSpecHash]
+--------------PhysicalDistribute[DistributionSpecHash]
+----------------PhysicalProject
------------------hashAgg[GLOBAL]
--------------------PhysicalDistribute[DistributionSpecHash]
----------------------hashAgg[LOCAL]
diff --git
a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query17.out
b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query17.out
index 0eb85c6c635..4e5a0748375 100644
--- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query17.out
+++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query17.out
@@ -19,8 +19,8 @@ PhysicalResultSink
----------------------------PhysicalProject
------------------------------filter(d_quarter_name IN ('2001Q1', '2001Q2',
'2001Q3'))
--------------------------------PhysicalOlapScan[date_dim]
---------------------PhysicalProject
-----------------------PhysicalDistribute[DistributionSpecHash]
+--------------------PhysicalDistribute[DistributionSpecHash]
+----------------------PhysicalProject
------------------------hashJoin[INNER_JOIN] hashCondition=((store.s_store_sk
= store_sales.ss_store_sk)) otherCondition=() build RFs:RF6
s_store_sk->[ss_store_sk]
--------------------------hashJoin[INNER_JOIN] hashCondition=((item.i_item_sk
= store_sales.ss_item_sk)) otherCondition=() build RFs:RF5
i_item_sk->[sr_item_sk,ss_item_sk]
----------------------------PhysicalDistribute[DistributionSpecHash]
diff --git
a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query25.out
b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query25.out
index afe0eccb284..9bafd839ba0 100644
--- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query25.out
+++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query25.out
@@ -18,8 +18,8 @@ PhysicalResultSink
--------------------------PhysicalProject
----------------------------filter((d3.d_moy <= 10) and (d3.d_moy >= 4) and
(d3.d_year = 2000))
------------------------------PhysicalOlapScan[date_dim]
-------------------PhysicalProject
---------------------PhysicalDistribute[DistributionSpecHash]
+------------------PhysicalDistribute[DistributionSpecHash]
+--------------------PhysicalProject
----------------------hashJoin[INNER_JOIN] hashCondition=((store.s_store_sk =
store_sales.ss_store_sk)) otherCondition=() build RFs:RF6
s_store_sk->[ss_store_sk]
------------------------hashJoin[INNER_JOIN] hashCondition=((item.i_item_sk =
store_sales.ss_item_sk)) otherCondition=() build RFs:RF5
i_item_sk->[sr_item_sk,ss_item_sk]
--------------------------PhysicalDistribute[DistributionSpecHash]
diff --git
a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query57.out
b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query57.out
index 57c81103cfc..f8f227d110b 100644
--- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query57.out
+++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query57.out
@@ -7,8 +7,8 @@ PhysicalCteAnchor ( cteId=CTEId#0 )
--------PhysicalQuickSort[LOCAL_SORT]
----------PhysicalWindow
------------PhysicalQuickSort[LOCAL_SORT]
---------------PhysicalProject
-----------------PhysicalDistribute[DistributionSpecHash]
+--------------PhysicalDistribute[DistributionSpecHash]
+----------------PhysicalProject
------------------hashAgg[GLOBAL]
--------------------PhysicalDistribute[DistributionSpecHash]
----------------------hashAgg[LOCAL]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]