This is an automated email from the ASF dual-hosted git repository.

dataroaring pushed a commit to branch branch-3.0
in repository https://gitbox.apache.org/repos/asf/doris.git

commit cc4e0400cbbbaafa841ab06dbc1879615fa64637
Author: morrySnow <101034200+morrys...@users.noreply.github.com>
AuthorDate: Fri Aug 23 14:27:16 2024 +0800

    [opt](Nereids) forbid distribute under project and filter (#39812)
---
 .../properties/ChildrenPropertiesRegulator.java    |  6 +++++
 .../data/nereids_hint_tpcds_p0/shape/query47.out   |  4 ++--
 .../data/nereids_hint_tpcds_p0/shape/query57.out   |  4 ++--
 .../data/nereids_hint_tpcds_p0/shape/query89.out   |  4 ++--
 .../shape/query47.out                              |  4 ++--
 .../shape/query57.out                              |  4 ++--
 .../shape/query89.out                              |  4 ++--
 .../noStatsRfPrune/query47.out                     |  4 ++--
 .../noStatsRfPrune/query57.out                     |  4 ++--
 .../noStatsRfPrune/query89.out                     |  4 ++--
 .../noStatsRfPrune/query93.out                     | 27 +++++++++++-----------
 .../no_stats_shape/query47.out                     |  4 ++--
 .../no_stats_shape/query57.out                     |  4 ++--
 .../no_stats_shape/query89.out                     |  4 ++--
 .../no_stats_shape/query93.out                     | 27 +++++++++++-----------
 .../rf_prune/query47.out                           |  4 ++--
 .../rf_prune/query57.out                           |  4 ++--
 .../rf_prune/query89.out                           |  4 ++--
 .../nereids_tpcds_shape_sf100_p0/shape/query47.out |  4 ++--
 .../nereids_tpcds_shape_sf100_p0/shape/query57.out |  4 ++--
 .../nereids_tpcds_shape_sf100_p0/shape/query89.out |  4 ++--
 .../tpcds_sf100/noStatsRfPrune/query47.out         |  4 ++--
 .../tpcds_sf100/noStatsRfPrune/query57.out         |  4 ++--
 .../tpcds_sf100/noStatsRfPrune/query89.out         |  4 ++--
 .../tpcds_sf100/noStatsRfPrune/query93.out         | 27 +++++++++++-----------
 .../tpcds_sf100/no_stats_shape/query47.out         |  4 ++--
 .../tpcds_sf100/no_stats_shape/query57.out         |  4 ++--
 .../tpcds_sf100/no_stats_shape/query89.out         |  4 ++--
 .../tpcds_sf100/no_stats_shape/query93.out         | 27 +++++++++++-----------
 .../new_shapes_p0/tpcds_sf100/rf_prune/query47.out |  4 ++--
 .../new_shapes_p0/tpcds_sf100/rf_prune/query57.out |  4 ++--
 .../new_shapes_p0/tpcds_sf100/rf_prune/query89.out |  4 ++--
 .../new_shapes_p0/tpcds_sf100/shape/query47.out    |  4 ++--
 .../new_shapes_p0/tpcds_sf100/shape/query57.out    |  4 ++--
 .../new_shapes_p0/tpcds_sf100/shape/query89.out    |  4 ++--
 .../new_shapes_p0/tpcds_sf1000/shape/query47.out   |  4 ++--
 .../new_shapes_p0/tpcds_sf1000/shape/query57.out   |  4 ++--
 .../new_shapes_p0/tpcds_sf1000/shape/query89.out   |  4 ++--
 38 files changed, 128 insertions(+), 118 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 1ccc3cf40e4..686350ea91d 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
@@ -201,6 +201,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;
     }
 
@@ -464,6 +467,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 7b1c028228c..1b0e2008159 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 f2c894e8194..a9ecbe3ebe3 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 91bbf073829..b6df862c67c 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/query47.out 
b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query47.out
index a9cef4ad142..a7bc45eeacd 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 e1e1d7e0ec4..5c47b7ae249 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 072af8a4aee..64708542abb 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/noStatsRfPrune/query47.out 
b/regression-test/data/nereids_tpcds_shape_sf100_p0/noStatsRfPrune/query47.out
index af0ae34c5d5..c807b2d355e 100644
--- 
a/regression-test/data/nereids_tpcds_shape_sf100_p0/noStatsRfPrune/query47.out
+++ 
b/regression-test/data/nereids_tpcds_shape_sf100_p0/noStatsRfPrune/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_sf100_p0/noStatsRfPrune/query57.out 
b/regression-test/data/nereids_tpcds_shape_sf100_p0/noStatsRfPrune/query57.out
index d6142f4fe14..0de9d7afec0 100644
--- 
a/regression-test/data/nereids_tpcds_shape_sf100_p0/noStatsRfPrune/query57.out
+++ 
b/regression-test/data/nereids_tpcds_shape_sf100_p0/noStatsRfPrune/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/noStatsRfPrune/query89.out 
b/regression-test/data/nereids_tpcds_shape_sf100_p0/noStatsRfPrune/query89.out
index 2976b10eda1..e1c1fd9222d 100644
--- 
a/regression-test/data/nereids_tpcds_shape_sf100_p0/noStatsRfPrune/query89.out
+++ 
b/regression-test/data/nereids_tpcds_shape_sf100_p0/noStatsRfPrune/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/noStatsRfPrune/query93.out 
b/regression-test/data/nereids_tpcds_shape_sf100_p0/noStatsRfPrune/query93.out
index d0977a71afd..77175ca96ff 100644
--- 
a/regression-test/data/nereids_tpcds_shape_sf100_p0/noStatsRfPrune/query93.out
+++ 
b/regression-test/data/nereids_tpcds_shape_sf100_p0/noStatsRfPrune/query93.out
@@ -4,17 +4,18 @@ PhysicalResultSink
 --PhysicalTopN[MERGE_SORT]
 ----PhysicalDistribute[DistributionSpecGather]
 ------PhysicalTopN[LOCAL_SORT]
---------hashAgg[LOCAL]
-----------PhysicalProject
-------------PhysicalDistribute[DistributionSpecHash]
---------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((store_returns.sr_reason_sk = reason.r_reason_sk)) 
otherCondition=() build RFs:RF2 r_reason_sk->[sr_reason_sk]
-----------------PhysicalProject
-------------------hashJoin[INNER_JOIN colocated] 
hashCondition=((store_returns.sr_item_sk = store_sales.ss_item_sk) and 
(store_returns.sr_ticket_number = store_sales.ss_ticket_number)) 
otherCondition=() build RFs:RF0 sr_item_sk->[ss_item_sk];RF1 
sr_ticket_number->[ss_ticket_number]
---------------------PhysicalProject
-----------------------PhysicalOlapScan[store_sales] apply RFs: RF0 RF1
---------------------PhysicalProject
-----------------------PhysicalOlapScan[store_returns] apply RFs: RF2
-----------------PhysicalProject
-------------------filter((reason.r_reason_desc = 'duplicate purchase'))
---------------------PhysicalOlapScan[reason]
+--------hashAgg[GLOBAL]
+----------PhysicalDistribute[DistributionSpecHash]
+------------hashAgg[LOCAL]
+--------------PhysicalProject
+----------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((store_returns.sr_reason_sk = reason.r_reason_sk)) 
otherCondition=() build RFs:RF2 r_reason_sk->[sr_reason_sk]
+------------------PhysicalProject
+--------------------hashJoin[INNER_JOIN colocated] 
hashCondition=((store_returns.sr_item_sk = store_sales.ss_item_sk) and 
(store_returns.sr_ticket_number = store_sales.ss_ticket_number)) 
otherCondition=() build RFs:RF0 sr_item_sk->[ss_item_sk];RF1 
sr_ticket_number->[ss_ticket_number]
+----------------------PhysicalProject
+------------------------PhysicalOlapScan[store_sales] apply RFs: RF0 RF1
+----------------------PhysicalProject
+------------------------PhysicalOlapScan[store_returns] apply RFs: RF2
+------------------PhysicalProject
+--------------------filter((reason.r_reason_desc = 'duplicate purchase'))
+----------------------PhysicalOlapScan[reason]
 
diff --git 
a/regression-test/data/nereids_tpcds_shape_sf100_p0/no_stats_shape/query47.out 
b/regression-test/data/nereids_tpcds_shape_sf100_p0/no_stats_shape/query47.out
index fe54c0ad6fa..659f33cec98 100644
--- 
a/regression-test/data/nereids_tpcds_shape_sf100_p0/no_stats_shape/query47.out
+++ 
b/regression-test/data/nereids_tpcds_shape_sf100_p0/no_stats_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_sf100_p0/no_stats_shape/query57.out 
b/regression-test/data/nereids_tpcds_shape_sf100_p0/no_stats_shape/query57.out
index a2ef9fadc40..17896b5f964 100644
--- 
a/regression-test/data/nereids_tpcds_shape_sf100_p0/no_stats_shape/query57.out
+++ 
b/regression-test/data/nereids_tpcds_shape_sf100_p0/no_stats_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_sf100_p0/no_stats_shape/query89.out 
b/regression-test/data/nereids_tpcds_shape_sf100_p0/no_stats_shape/query89.out
index cc5f3e08aa0..35a90cb9429 100644
--- 
a/regression-test/data/nereids_tpcds_shape_sf100_p0/no_stats_shape/query89.out
+++ 
b/regression-test/data/nereids_tpcds_shape_sf100_p0/no_stats_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/no_stats_shape/query93.out 
b/regression-test/data/nereids_tpcds_shape_sf100_p0/no_stats_shape/query93.out
index d0977a71afd..77175ca96ff 100644
--- 
a/regression-test/data/nereids_tpcds_shape_sf100_p0/no_stats_shape/query93.out
+++ 
b/regression-test/data/nereids_tpcds_shape_sf100_p0/no_stats_shape/query93.out
@@ -4,17 +4,18 @@ PhysicalResultSink
 --PhysicalTopN[MERGE_SORT]
 ----PhysicalDistribute[DistributionSpecGather]
 ------PhysicalTopN[LOCAL_SORT]
---------hashAgg[LOCAL]
-----------PhysicalProject
-------------PhysicalDistribute[DistributionSpecHash]
---------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((store_returns.sr_reason_sk = reason.r_reason_sk)) 
otherCondition=() build RFs:RF2 r_reason_sk->[sr_reason_sk]
-----------------PhysicalProject
-------------------hashJoin[INNER_JOIN colocated] 
hashCondition=((store_returns.sr_item_sk = store_sales.ss_item_sk) and 
(store_returns.sr_ticket_number = store_sales.ss_ticket_number)) 
otherCondition=() build RFs:RF0 sr_item_sk->[ss_item_sk];RF1 
sr_ticket_number->[ss_ticket_number]
---------------------PhysicalProject
-----------------------PhysicalOlapScan[store_sales] apply RFs: RF0 RF1
---------------------PhysicalProject
-----------------------PhysicalOlapScan[store_returns] apply RFs: RF2
-----------------PhysicalProject
-------------------filter((reason.r_reason_desc = 'duplicate purchase'))
---------------------PhysicalOlapScan[reason]
+--------hashAgg[GLOBAL]
+----------PhysicalDistribute[DistributionSpecHash]
+------------hashAgg[LOCAL]
+--------------PhysicalProject
+----------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((store_returns.sr_reason_sk = reason.r_reason_sk)) 
otherCondition=() build RFs:RF2 r_reason_sk->[sr_reason_sk]
+------------------PhysicalProject
+--------------------hashJoin[INNER_JOIN colocated] 
hashCondition=((store_returns.sr_item_sk = store_sales.ss_item_sk) and 
(store_returns.sr_ticket_number = store_sales.ss_ticket_number)) 
otherCondition=() build RFs:RF0 sr_item_sk->[ss_item_sk];RF1 
sr_ticket_number->[ss_ticket_number]
+----------------------PhysicalProject
+------------------------PhysicalOlapScan[store_sales] apply RFs: RF0 RF1
+----------------------PhysicalProject
+------------------------PhysicalOlapScan[store_returns] apply RFs: RF2
+------------------PhysicalProject
+--------------------filter((reason.r_reason_desc = 'duplicate purchase'))
+----------------------PhysicalOlapScan[reason]
 
diff --git 
a/regression-test/data/nereids_tpcds_shape_sf100_p0/rf_prune/query47.out 
b/regression-test/data/nereids_tpcds_shape_sf100_p0/rf_prune/query47.out
index 72b0f73c435..e9c29da52d6 100644
--- a/regression-test/data/nereids_tpcds_shape_sf100_p0/rf_prune/query47.out
+++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/rf_prune/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_sf100_p0/rf_prune/query57.out 
b/regression-test/data/nereids_tpcds_shape_sf100_p0/rf_prune/query57.out
index 62ad9f39728..ae1d9e8b5af 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/rf_prune/query89.out 
b/regression-test/data/nereids_tpcds_shape_sf100_p0/rf_prune/query89.out
index 2976b10eda1..e1c1fd9222d 100644
--- a/regression-test/data/nereids_tpcds_shape_sf100_p0/rf_prune/query89.out
+++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/rf_prune/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/shape/query47.out 
b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query47.out
index 70d9beb3705..bba74448d30 100644
--- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query47.out
+++ b/regression-test/data/nereids_tpcds_shape_sf100_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_sf100_p0/shape/query57.out 
b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query57.out
index 3884d995fd1..06e9f277d5a 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]
diff --git 
a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query89.out 
b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query89.out
index cc5f3e08aa0..35a90cb9429 100644
--- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query89.out
+++ b/regression-test/data/nereids_tpcds_shape_sf100_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/new_shapes_p0/tpcds_sf100/noStatsRfPrune/query47.out 
b/regression-test/data/new_shapes_p0/tpcds_sf100/noStatsRfPrune/query47.out
index af0ae34c5d5..c807b2d355e 100644
--- a/regression-test/data/new_shapes_p0/tpcds_sf100/noStatsRfPrune/query47.out
+++ b/regression-test/data/new_shapes_p0/tpcds_sf100/noStatsRfPrune/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/new_shapes_p0/tpcds_sf100/noStatsRfPrune/query57.out 
b/regression-test/data/new_shapes_p0/tpcds_sf100/noStatsRfPrune/query57.out
index d6142f4fe14..0de9d7afec0 100644
--- a/regression-test/data/new_shapes_p0/tpcds_sf100/noStatsRfPrune/query57.out
+++ b/regression-test/data/new_shapes_p0/tpcds_sf100/noStatsRfPrune/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/new_shapes_p0/tpcds_sf100/noStatsRfPrune/query89.out 
b/regression-test/data/new_shapes_p0/tpcds_sf100/noStatsRfPrune/query89.out
index 2976b10eda1..e1c1fd9222d 100644
--- a/regression-test/data/new_shapes_p0/tpcds_sf100/noStatsRfPrune/query89.out
+++ b/regression-test/data/new_shapes_p0/tpcds_sf100/noStatsRfPrune/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/new_shapes_p0/tpcds_sf100/noStatsRfPrune/query93.out 
b/regression-test/data/new_shapes_p0/tpcds_sf100/noStatsRfPrune/query93.out
index d0977a71afd..77175ca96ff 100644
--- a/regression-test/data/new_shapes_p0/tpcds_sf100/noStatsRfPrune/query93.out
+++ b/regression-test/data/new_shapes_p0/tpcds_sf100/noStatsRfPrune/query93.out
@@ -4,17 +4,18 @@ PhysicalResultSink
 --PhysicalTopN[MERGE_SORT]
 ----PhysicalDistribute[DistributionSpecGather]
 ------PhysicalTopN[LOCAL_SORT]
---------hashAgg[LOCAL]
-----------PhysicalProject
-------------PhysicalDistribute[DistributionSpecHash]
---------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((store_returns.sr_reason_sk = reason.r_reason_sk)) 
otherCondition=() build RFs:RF2 r_reason_sk->[sr_reason_sk]
-----------------PhysicalProject
-------------------hashJoin[INNER_JOIN colocated] 
hashCondition=((store_returns.sr_item_sk = store_sales.ss_item_sk) and 
(store_returns.sr_ticket_number = store_sales.ss_ticket_number)) 
otherCondition=() build RFs:RF0 sr_item_sk->[ss_item_sk];RF1 
sr_ticket_number->[ss_ticket_number]
---------------------PhysicalProject
-----------------------PhysicalOlapScan[store_sales] apply RFs: RF0 RF1
---------------------PhysicalProject
-----------------------PhysicalOlapScan[store_returns] apply RFs: RF2
-----------------PhysicalProject
-------------------filter((reason.r_reason_desc = 'duplicate purchase'))
---------------------PhysicalOlapScan[reason]
+--------hashAgg[GLOBAL]
+----------PhysicalDistribute[DistributionSpecHash]
+------------hashAgg[LOCAL]
+--------------PhysicalProject
+----------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((store_returns.sr_reason_sk = reason.r_reason_sk)) 
otherCondition=() build RFs:RF2 r_reason_sk->[sr_reason_sk]
+------------------PhysicalProject
+--------------------hashJoin[INNER_JOIN colocated] 
hashCondition=((store_returns.sr_item_sk = store_sales.ss_item_sk) and 
(store_returns.sr_ticket_number = store_sales.ss_ticket_number)) 
otherCondition=() build RFs:RF0 sr_item_sk->[ss_item_sk];RF1 
sr_ticket_number->[ss_ticket_number]
+----------------------PhysicalProject
+------------------------PhysicalOlapScan[store_sales] apply RFs: RF0 RF1
+----------------------PhysicalProject
+------------------------PhysicalOlapScan[store_returns] apply RFs: RF2
+------------------PhysicalProject
+--------------------filter((reason.r_reason_desc = 'duplicate purchase'))
+----------------------PhysicalOlapScan[reason]
 
diff --git 
a/regression-test/data/new_shapes_p0/tpcds_sf100/no_stats_shape/query47.out 
b/regression-test/data/new_shapes_p0/tpcds_sf100/no_stats_shape/query47.out
index fe54c0ad6fa..659f33cec98 100644
--- a/regression-test/data/new_shapes_p0/tpcds_sf100/no_stats_shape/query47.out
+++ b/regression-test/data/new_shapes_p0/tpcds_sf100/no_stats_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/new_shapes_p0/tpcds_sf100/no_stats_shape/query57.out 
b/regression-test/data/new_shapes_p0/tpcds_sf100/no_stats_shape/query57.out
index a2ef9fadc40..17896b5f964 100644
--- a/regression-test/data/new_shapes_p0/tpcds_sf100/no_stats_shape/query57.out
+++ b/regression-test/data/new_shapes_p0/tpcds_sf100/no_stats_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/new_shapes_p0/tpcds_sf100/no_stats_shape/query89.out 
b/regression-test/data/new_shapes_p0/tpcds_sf100/no_stats_shape/query89.out
index cc5f3e08aa0..35a90cb9429 100644
--- a/regression-test/data/new_shapes_p0/tpcds_sf100/no_stats_shape/query89.out
+++ b/regression-test/data/new_shapes_p0/tpcds_sf100/no_stats_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/new_shapes_p0/tpcds_sf100/no_stats_shape/query93.out 
b/regression-test/data/new_shapes_p0/tpcds_sf100/no_stats_shape/query93.out
index d0977a71afd..77175ca96ff 100644
--- a/regression-test/data/new_shapes_p0/tpcds_sf100/no_stats_shape/query93.out
+++ b/regression-test/data/new_shapes_p0/tpcds_sf100/no_stats_shape/query93.out
@@ -4,17 +4,18 @@ PhysicalResultSink
 --PhysicalTopN[MERGE_SORT]
 ----PhysicalDistribute[DistributionSpecGather]
 ------PhysicalTopN[LOCAL_SORT]
---------hashAgg[LOCAL]
-----------PhysicalProject
-------------PhysicalDistribute[DistributionSpecHash]
---------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((store_returns.sr_reason_sk = reason.r_reason_sk)) 
otherCondition=() build RFs:RF2 r_reason_sk->[sr_reason_sk]
-----------------PhysicalProject
-------------------hashJoin[INNER_JOIN colocated] 
hashCondition=((store_returns.sr_item_sk = store_sales.ss_item_sk) and 
(store_returns.sr_ticket_number = store_sales.ss_ticket_number)) 
otherCondition=() build RFs:RF0 sr_item_sk->[ss_item_sk];RF1 
sr_ticket_number->[ss_ticket_number]
---------------------PhysicalProject
-----------------------PhysicalOlapScan[store_sales] apply RFs: RF0 RF1
---------------------PhysicalProject
-----------------------PhysicalOlapScan[store_returns] apply RFs: RF2
-----------------PhysicalProject
-------------------filter((reason.r_reason_desc = 'duplicate purchase'))
---------------------PhysicalOlapScan[reason]
+--------hashAgg[GLOBAL]
+----------PhysicalDistribute[DistributionSpecHash]
+------------hashAgg[LOCAL]
+--------------PhysicalProject
+----------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((store_returns.sr_reason_sk = reason.r_reason_sk)) 
otherCondition=() build RFs:RF2 r_reason_sk->[sr_reason_sk]
+------------------PhysicalProject
+--------------------hashJoin[INNER_JOIN colocated] 
hashCondition=((store_returns.sr_item_sk = store_sales.ss_item_sk) and 
(store_returns.sr_ticket_number = store_sales.ss_ticket_number)) 
otherCondition=() build RFs:RF0 sr_item_sk->[ss_item_sk];RF1 
sr_ticket_number->[ss_ticket_number]
+----------------------PhysicalProject
+------------------------PhysicalOlapScan[store_sales] apply RFs: RF0 RF1
+----------------------PhysicalProject
+------------------------PhysicalOlapScan[store_returns] apply RFs: RF2
+------------------PhysicalProject
+--------------------filter((reason.r_reason_desc = 'duplicate purchase'))
+----------------------PhysicalOlapScan[reason]
 
diff --git 
a/regression-test/data/new_shapes_p0/tpcds_sf100/rf_prune/query47.out 
b/regression-test/data/new_shapes_p0/tpcds_sf100/rf_prune/query47.out
index 72b0f73c435..e9c29da52d6 100644
--- a/regression-test/data/new_shapes_p0/tpcds_sf100/rf_prune/query47.out
+++ b/regression-test/data/new_shapes_p0/tpcds_sf100/rf_prune/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/new_shapes_p0/tpcds_sf100/rf_prune/query57.out 
b/regression-test/data/new_shapes_p0/tpcds_sf100/rf_prune/query57.out
index 62ad9f39728..ae1d9e8b5af 100644
--- a/regression-test/data/new_shapes_p0/tpcds_sf100/rf_prune/query57.out
+++ b/regression-test/data/new_shapes_p0/tpcds_sf100/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/new_shapes_p0/tpcds_sf100/rf_prune/query89.out 
b/regression-test/data/new_shapes_p0/tpcds_sf100/rf_prune/query89.out
index 2976b10eda1..e1c1fd9222d 100644
--- a/regression-test/data/new_shapes_p0/tpcds_sf100/rf_prune/query89.out
+++ b/regression-test/data/new_shapes_p0/tpcds_sf100/rf_prune/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/new_shapes_p0/tpcds_sf100/shape/query47.out 
b/regression-test/data/new_shapes_p0/tpcds_sf100/shape/query47.out
index 70d9beb3705..bba74448d30 100644
--- a/regression-test/data/new_shapes_p0/tpcds_sf100/shape/query47.out
+++ b/regression-test/data/new_shapes_p0/tpcds_sf100/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/new_shapes_p0/tpcds_sf100/shape/query57.out 
b/regression-test/data/new_shapes_p0/tpcds_sf100/shape/query57.out
index 3884d995fd1..06e9f277d5a 100644
--- a/regression-test/data/new_shapes_p0/tpcds_sf100/shape/query57.out
+++ b/regression-test/data/new_shapes_p0/tpcds_sf100/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/new_shapes_p0/tpcds_sf100/shape/query89.out 
b/regression-test/data/new_shapes_p0/tpcds_sf100/shape/query89.out
index cc5f3e08aa0..35a90cb9429 100644
--- a/regression-test/data/new_shapes_p0/tpcds_sf100/shape/query89.out
+++ b/regression-test/data/new_shapes_p0/tpcds_sf100/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/new_shapes_p0/tpcds_sf1000/shape/query47.out 
b/regression-test/data/new_shapes_p0/tpcds_sf1000/shape/query47.out
index a9cef4ad142..a7bc45eeacd 100644
--- a/regression-test/data/new_shapes_p0/tpcds_sf1000/shape/query47.out
+++ b/regression-test/data/new_shapes_p0/tpcds_sf1000/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/new_shapes_p0/tpcds_sf1000/shape/query57.out 
b/regression-test/data/new_shapes_p0/tpcds_sf1000/shape/query57.out
index e1e1d7e0ec4..5c47b7ae249 100644
--- a/regression-test/data/new_shapes_p0/tpcds_sf1000/shape/query57.out
+++ b/regression-test/data/new_shapes_p0/tpcds_sf1000/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/new_shapes_p0/tpcds_sf1000/shape/query89.out 
b/regression-test/data/new_shapes_p0/tpcds_sf1000/shape/query89.out
index 072af8a4aee..64708542abb 100644
--- a/regression-test/data/new_shapes_p0/tpcds_sf1000/shape/query89.out
+++ b/regression-test/data/new_shapes_p0/tpcds_sf1000/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]


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org


Reply via email to