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

jakevin pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/master by this push:
     new 5ba1f62da8 [enhancement](Nereids) make stats unchanged (#23737)
5ba1f62da8 is described below

commit 5ba1f62da80570fa9574de3cdb3521596860c809
Author: 谢健 <[email protected]>
AuthorDate: Thu Sep 14 22:18:54 2023 +0800

    [enhancement](Nereids) make stats unchanged (#23737)
    
    make stats unchanged when explore plan
---
 .../doris/nereids/stats/StatsCalculator.java       |  17 +---
 .../nereids_tpcds_shape_sf100_p0/shape/query13.out |  10 +-
 .../nereids_tpcds_shape_sf100_p0/shape/query17.out |  55 +++++------
 .../nereids_tpcds_shape_sf100_p0/shape/query2.out  |   8 +-
 .../nereids_tpcds_shape_sf100_p0/shape/query25.out |  56 +++++------
 .../nereids_tpcds_shape_sf100_p0/shape/query29.out |  58 ++++++------
 .../nereids_tpcds_shape_sf100_p0/shape/query30.out |  10 +-
 .../nereids_tpcds_shape_sf100_p0/shape/query40.out |  35 +++----
 .../nereids_tpcds_shape_sf100_p0/shape/query50.out |  17 ++--
 .../nereids_tpcds_shape_sf100_p0/shape/query59.out |  45 +++++----
 .../nereids_tpcds_shape_sf100_p0/shape/query61.out | 104 +++++++++++----------
 .../nereids_tpcds_shape_sf100_p0/shape/query72.out |  30 +++---
 .../nereids_tpcds_shape_sf100_p0/shape/query81.out |  10 +-
 .../nereids_tpcds_shape_sf100_p0/shape/query85.out |  50 +++++-----
 .../data/nereids_tpch_shape_sf1000_p0/shape/q2.out |  25 ++---
 .../data/nereids_tpch_shape_sf500_p0/shape/q2.out  |  25 ++---
 .../data/nereids_tpch_shape_sf500_p0/shape/q21.out |  31 +++---
 .../nereids_tpcds_shape_sf100_p0/rf/ds_rf13.groovy |   3 +-
 .../nereids_tpcds_shape_sf100_p0/rf/ds_rf17.groovy |   4 +-
 .../nereids_tpcds_shape_sf100_p0/rf/ds_rf25.groovy |   3 +-
 .../nereids_tpcds_shape_sf100_p0/rf/ds_rf29.groovy |   3 +-
 .../nereids_tpcds_shape_sf100_p0/rf/ds_rf40.groovy |   4 +-
 .../nereids_tpcds_shape_sf100_p0/rf/ds_rf5.groovy  |   2 +-
 .../nereids_tpcds_shape_sf100_p0/rf/ds_rf56.groovy |   3 +-
 .../nereids_tpcds_shape_sf100_p0/rf/ds_rf59.groovy |   3 +-
 .../nereids_tpcds_shape_sf100_p0/rf/ds_rf61.groovy |   4 +-
 .../nereids_tpcds_shape_sf100_p0/rf/ds_rf72.groovy |   4 +-
 .../nereids_tpcds_shape_sf100_p0/rf/ds_rf85.groovy |   4 +-
 .../nereids_tpch_shape_sf1000_p0/rf/h_rf2.groovy   |   2 +-
 29 files changed, 312 insertions(+), 313 deletions(-)

diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/stats/StatsCalculator.java 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/stats/StatsCalculator.java
index 2c4f91bca8..93792e62b6 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/stats/StatsCalculator.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/stats/StatsCalculator.java
@@ -222,22 +222,13 @@ public class StatsCalculator extends 
DefaultPlanVisitor<Statistics, Void> {
     private void estimate() {
         Plan plan = groupExpression.getPlan();
         Statistics newStats = plan.accept(this, null);
-        Statistics oldStats = groupExpression.getOwnerGroup().getStatistics();
-        /*
-        in an ideal cost model, every group expression in a group are 
equivalent, but in fact the cost are different.
-        we record the lowest expression cost as group cost to avoid missing 
this group.
-        */
-        if (oldStats == null) {
+        // We ensure that the rowCount remains unchanged in order to make the 
cost of each plan comparable.
+        if (groupExpression.getOwnerGroup().getStatistics() == null) {
             groupExpression.getOwnerGroup().setStatistics(newStats);
+            groupExpression.setEstOutputRowCount(newStats.getRowCount());
         } else {
-            Statistics discardStats = newStats;
-            if (oldStats.getRowCount() > newStats.getRowCount()) {
-                groupExpression.getOwnerGroup().setStatistics(newStats);
-                discardStats = oldStats;
-            }
-            
groupExpression.getOwnerGroup().getStatistics().updateNdv(discardStats);
+            
groupExpression.getOwnerGroup().getStatistics().updateNdv(newStats);
         }
-        groupExpression.setEstOutputRowCount(newStats.getRowCount());
         groupExpression.setStatDerived(true);
     }
 
diff --git 
a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query13.out 
b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query13.out
index e5ba86053f..adcacd12f7 100644
--- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query13.out
+++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query13.out
@@ -5,15 +5,15 @@ PhysicalResultSink
 ----PhysicalDistribute
 ------hashAgg[LOCAL]
 --------PhysicalProject
-----------hashJoin[INNER_JOIN](store.s_store_sk = store_sales.ss_store_sk)
+----------hashJoin[INNER_JOIN](store_sales.ss_sold_date_sk = 
date_dim.d_date_sk)
 ------------PhysicalProject
---------------PhysicalOlapScan[store]
+--------------filter((date_dim.d_year = 2001))
+----------------PhysicalOlapScan[date_dim]
 ------------PhysicalDistribute
 --------------PhysicalProject
-----------------hashJoin[INNER_JOIN](store_sales.ss_sold_date_sk = 
date_dim.d_date_sk)
+----------------hashJoin[INNER_JOIN](store.s_store_sk = 
store_sales.ss_store_sk)
 ------------------PhysicalProject
---------------------filter((date_dim.d_year = 2001))
-----------------------PhysicalOlapScan[date_dim]
+--------------------PhysicalOlapScan[store]
 ------------------PhysicalDistribute
 --------------------PhysicalProject
 ----------------------hashJoin[INNER_JOIN](customer_demographics.cd_demo_sk = 
store_sales.ss_cdemo_sk)((((((cast(cd_marital_status as VARCHAR(*)) = 'D') AND 
(cast(cd_education_status as VARCHAR(*)) = 'Unknown')) AND 
((store_sales.ss_sales_price >= 100.00) AND (store_sales.ss_sales_price <= 
150.00))) AND (household_demographics.hd_dep_count = 3)) OR 
((((cast(cd_marital_status as VARCHAR(*)) = 'S') AND (cast(cd_education_status 
as VARCHAR(*)) = 'College')) AND ((store_sales.ss_sales_price  [...]
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 dddca95770..36141eba60 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
@@ -14,35 +14,36 @@ PhysicalResultSink
 ----------------------hashJoin[INNER_JOIN](store_returns.sr_item_sk = 
catalog_sales.cs_item_sk)(store_returns.sr_customer_sk = 
catalog_sales.cs_bill_customer_sk)
 ------------------------PhysicalDistribute
 --------------------------PhysicalProject
-----------------------------PhysicalOlapScan[catalog_sales]
-------------------------PhysicalDistribute
---------------------------hashJoin[INNER_JOIN](store.s_store_sk = 
store_sales.ss_store_sk)
-----------------------------PhysicalProject
-------------------------------hashJoin[INNER_JOIN](item.i_item_sk = 
store_sales.ss_item_sk)
---------------------------------PhysicalDistribute
+----------------------------hashJoin[INNER_JOIN](store_returns.sr_returned_date_sk
 = d2.d_date_sk)
+------------------------------PhysicalProject
+--------------------------------hashJoin[INNER_JOIN](store_sales.ss_item_sk = 
store_returns.sr_item_sk)(store_sales.ss_ticket_number = 
store_returns.sr_ticket_number)(store_sales.ss_customer_sk = 
store_returns.sr_customer_sk)
 ----------------------------------PhysicalProject
-------------------------------------hashJoin[INNER_JOIN](store_returns.sr_returned_date_sk
 = d2.d_date_sk)
---------------------------------------PhysicalProject
-----------------------------------------hashJoin[INNER_JOIN](store_sales.ss_item_sk
 = store_returns.sr_item_sk)(store_sales.ss_ticket_number = 
store_returns.sr_ticket_number)(store_sales.ss_customer_sk = 
store_returns.sr_customer_sk)
-------------------------------------------PhysicalProject
---------------------------------------------PhysicalOlapScan[store_returns]
-------------------------------------------hashJoin[INNER_JOIN](d1.d_date_sk = 
store_sales.ss_sold_date_sk)
---------------------------------------------PhysicalProject
-----------------------------------------------PhysicalOlapScan[store_sales]
---------------------------------------------PhysicalDistribute
+------------------------------------PhysicalOlapScan[store_returns]
+----------------------------------PhysicalDistribute
+------------------------------------PhysicalProject
+--------------------------------------hashJoin[INNER_JOIN](store.s_store_sk = 
store_sales.ss_store_sk)
+----------------------------------------hashJoin[INNER_JOIN](item.i_item_sk = 
store_sales.ss_item_sk)
+------------------------------------------PhysicalDistribute
+--------------------------------------------hashJoin[INNER_JOIN](d1.d_date_sk 
= store_sales.ss_sold_date_sk)
 ----------------------------------------------PhysicalProject
-------------------------------------------------filter((cast(d_quarter_name as 
VARCHAR(*)) = '2001Q1'))
---------------------------------------------------PhysicalOlapScan[date_dim]
---------------------------------------PhysicalDistribute
-----------------------------------------PhysicalProject
-------------------------------------------filter(d_quarter_name IN ('2001Q1', 
'2001Q2', '2001Q3'))
---------------------------------------------PhysicalOlapScan[date_dim]
---------------------------------PhysicalDistribute
-----------------------------------PhysicalProject
-------------------------------------PhysicalOlapScan[item]
-----------------------------PhysicalDistribute
-------------------------------PhysicalProject
---------------------------------PhysicalOlapScan[store]
+------------------------------------------------PhysicalOlapScan[store_sales]
+----------------------------------------------PhysicalDistribute
+------------------------------------------------PhysicalProject
+--------------------------------------------------filter((cast(d_quarter_name 
as VARCHAR(*)) = '2001Q1'))
+----------------------------------------------------PhysicalOlapScan[date_dim]
+------------------------------------------PhysicalDistribute
+--------------------------------------------PhysicalProject
+----------------------------------------------PhysicalOlapScan[item]
+----------------------------------------PhysicalDistribute
+------------------------------------------PhysicalProject
+--------------------------------------------PhysicalOlapScan[store]
+------------------------------PhysicalDistribute
+--------------------------------PhysicalProject
+----------------------------------filter(d_quarter_name IN ('2001Q1', 
'2001Q2', '2001Q3'))
+------------------------------------PhysicalOlapScan[date_dim]
+------------------------PhysicalDistribute
+--------------------------PhysicalProject
+----------------------------PhysicalOlapScan[catalog_sales]
 --------------------PhysicalDistribute
 ----------------------PhysicalProject
 ------------------------filter(d_quarter_name IN ('2001Q1', '2001Q2', 
'2001Q3'))
diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query2.out 
b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query2.out
index d05df91bae..dd22494010 100644
--- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query2.out
+++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query2.out
@@ -25,22 +25,22 @@ PhysicalCteAnchor ( cteId=CTEId#1 )
 ------------hashJoin[INNER_JOIN](expr_cast(d_week_seq1 as BIGINT) = 
expr_(d_week_seq2 - 53))
 --------------PhysicalDistribute
 ----------------PhysicalProject
-------------------hashJoin[INNER_JOIN](date_dim.d_week_seq = d_week_seq2)
+------------------hashJoin[INNER_JOIN](date_dim.d_week_seq = d_week_seq1)
 --------------------PhysicalDistribute
 ----------------------PhysicalProject
 ------------------------PhysicalCteConsumer ( cteId=CTEId#1 )
 --------------------PhysicalDistribute
 ----------------------PhysicalProject
-------------------------filter((date_dim.d_year = 1999))
+------------------------filter((date_dim.d_year = 1998))
 --------------------------PhysicalOlapScan[date_dim]
 --------------PhysicalDistribute
 ----------------PhysicalProject
-------------------hashJoin[INNER_JOIN](date_dim.d_week_seq = d_week_seq1)
+------------------hashJoin[INNER_JOIN](date_dim.d_week_seq = d_week_seq2)
 --------------------PhysicalDistribute
 ----------------------PhysicalProject
 ------------------------PhysicalCteConsumer ( cteId=CTEId#1 )
 --------------------PhysicalDistribute
 ----------------------PhysicalProject
-------------------------filter((date_dim.d_year = 1998))
+------------------------filter((date_dim.d_year = 1999))
 --------------------------PhysicalOlapScan[date_dim]
 
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 35343e9a8c..1bed3183e0 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
@@ -11,36 +11,38 @@ PhysicalResultSink
 ----------------hashJoin[INNER_JOIN](catalog_sales.cs_sold_date_sk = 
d3.d_date_sk)
 ------------------PhysicalProject
 --------------------hashJoin[INNER_JOIN](store_returns.sr_item_sk = 
catalog_sales.cs_item_sk)(store_returns.sr_customer_sk = 
catalog_sales.cs_bill_customer_sk)
-----------------------PhysicalProject
-------------------------PhysicalOlapScan[catalog_sales]
 ----------------------PhysicalDistribute
-------------------------hashJoin[INNER_JOIN](store.s_store_sk = 
store_sales.ss_store_sk)
---------------------------PhysicalProject
-----------------------------hashJoin[INNER_JOIN](item.i_item_sk = 
store_sales.ss_item_sk)
-------------------------------PhysicalDistribute
+------------------------PhysicalProject
+--------------------------PhysicalOlapScan[catalog_sales]
+----------------------PhysicalDistribute
+------------------------PhysicalProject
+--------------------------hashJoin[INNER_JOIN](store_returns.sr_returned_date_sk
 = d2.d_date_sk)
+----------------------------PhysicalProject
+------------------------------hashJoin[INNER_JOIN](store_sales.ss_item_sk = 
store_returns.sr_item_sk)(store_sales.ss_ticket_number = 
store_returns.sr_ticket_number)(store_sales.ss_customer_sk = 
store_returns.sr_customer_sk)
 --------------------------------PhysicalProject
-----------------------------------hashJoin[INNER_JOIN](store_returns.sr_returned_date_sk
 = d2.d_date_sk)
-------------------------------------PhysicalProject
---------------------------------------hashJoin[INNER_JOIN](store_sales.ss_item_sk
 = store_returns.sr_item_sk)(store_sales.ss_ticket_number = 
store_returns.sr_ticket_number)(store_sales.ss_customer_sk = 
store_returns.sr_customer_sk)
-----------------------------------------PhysicalProject
-------------------------------------------PhysicalOlapScan[store_returns]
-----------------------------------------hashJoin[INNER_JOIN](d1.d_date_sk = 
store_sales.ss_sold_date_sk)
-------------------------------------------PhysicalProject
---------------------------------------------PhysicalOlapScan[store_sales]
-------------------------------------------PhysicalDistribute
+----------------------------------PhysicalOlapScan[store_returns]
+--------------------------------PhysicalDistribute
+----------------------------------PhysicalProject
+------------------------------------hashJoin[INNER_JOIN](store.s_store_sk = 
store_sales.ss_store_sk)
+--------------------------------------hashJoin[INNER_JOIN](item.i_item_sk = 
store_sales.ss_item_sk)
+----------------------------------------PhysicalDistribute
+------------------------------------------hashJoin[INNER_JOIN](d1.d_date_sk = 
store_sales.ss_sold_date_sk)
 --------------------------------------------PhysicalProject
-----------------------------------------------filter((d1.d_year = 
2000)(d1.d_moy = 4))
-------------------------------------------------PhysicalOlapScan[date_dim]
-------------------------------------PhysicalDistribute
---------------------------------------PhysicalProject
-----------------------------------------filter((d2.d_moy <= 10)(d2.d_moy >= 
4)(d2.d_year = 2000))
-------------------------------------------PhysicalOlapScan[date_dim]
-------------------------------PhysicalDistribute
---------------------------------PhysicalProject
-----------------------------------PhysicalOlapScan[item]
---------------------------PhysicalDistribute
-----------------------------PhysicalProject
-------------------------------PhysicalOlapScan[store]
+----------------------------------------------PhysicalOlapScan[store_sales]
+--------------------------------------------PhysicalDistribute
+----------------------------------------------PhysicalProject
+------------------------------------------------filter((d1.d_year = 
2000)(d1.d_moy = 4))
+--------------------------------------------------PhysicalOlapScan[date_dim]
+----------------------------------------PhysicalDistribute
+------------------------------------------PhysicalProject
+--------------------------------------------PhysicalOlapScan[item]
+--------------------------------------PhysicalDistribute
+----------------------------------------PhysicalProject
+------------------------------------------PhysicalOlapScan[store]
+----------------------------PhysicalDistribute
+------------------------------PhysicalProject
+--------------------------------filter((d2.d_moy <= 10)(d2.d_moy >= 
4)(d2.d_year = 2000))
+----------------------------------PhysicalOlapScan[date_dim]
 ------------------PhysicalDistribute
 --------------------PhysicalProject
 ----------------------filter((d3.d_year = 2000)(d3.d_moy <= 10)(d3.d_moy >= 4))
diff --git 
a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query29.out 
b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query29.out
index d3e1d4881a..0559297b76 100644
--- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query29.out
+++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query29.out
@@ -8,41 +8,43 @@ PhysicalResultSink
 ----------PhysicalDistribute
 ------------hashAgg[LOCAL]
 --------------PhysicalProject
-----------------hashJoin[INNER_JOIN](store.s_store_sk = 
store_sales.ss_store_sk)
+----------------hashJoin[INNER_JOIN](catalog_sales.cs_sold_date_sk = 
d3.d_date_sk)
 ------------------PhysicalProject
---------------------PhysicalOlapScan[store]
-------------------PhysicalDistribute
---------------------hashJoin[INNER_JOIN](item.i_item_sk = 
store_sales.ss_item_sk)
-----------------------PhysicalProject
-------------------------PhysicalOlapScan[item]
+--------------------hashJoin[INNER_JOIN](store_returns.sr_item_sk = 
catalog_sales.cs_item_sk)(store_returns.sr_customer_sk = 
catalog_sales.cs_bill_customer_sk)
 ----------------------PhysicalDistribute
 ------------------------PhysicalProject
---------------------------hashJoin[INNER_JOIN](catalog_sales.cs_sold_date_sk = 
d3.d_date_sk)
-----------------------------PhysicalDistribute
-------------------------------PhysicalProject
---------------------------------filter(d_year IN (1999, 2000, 2001))
-----------------------------------PhysicalOlapScan[date_dim]
-----------------------------PhysicalDistribute
-------------------------------PhysicalProject
---------------------------------hashJoin[INNER_JOIN](store_returns.sr_item_sk 
= catalog_sales.cs_item_sk)(store_returns.sr_customer_sk = 
catalog_sales.cs_bill_customer_sk)
+--------------------------PhysicalOlapScan[catalog_sales]
+----------------------PhysicalDistribute
+------------------------PhysicalProject
+--------------------------hashJoin[INNER_JOIN](store_returns.sr_returned_date_sk
 = d2.d_date_sk)
+----------------------------PhysicalProject
+------------------------------hashJoin[INNER_JOIN](store_sales.ss_item_sk = 
store_returns.sr_item_sk)(store_sales.ss_ticket_number = 
store_returns.sr_ticket_number)(store_sales.ss_customer_sk = 
store_returns.sr_customer_sk)
+--------------------------------PhysicalProject
+----------------------------------PhysicalOlapScan[store_returns]
+--------------------------------PhysicalDistribute
 ----------------------------------PhysicalProject
-------------------------------------PhysicalOlapScan[catalog_sales]
-----------------------------------PhysicalDistribute
-------------------------------------PhysicalProject
---------------------------------------hashJoin[INNER_JOIN](d1.d_date_sk = 
store_sales.ss_sold_date_sk)
-----------------------------------------PhysicalProject
-------------------------------------------hashJoin[INNER_JOIN](store_sales.ss_item_sk
 = store_returns.sr_item_sk)(store_sales.ss_ticket_number = 
store_returns.sr_ticket_number)(store_sales.ss_customer_sk = 
store_returns.sr_customer_sk)
+------------------------------------hashJoin[INNER_JOIN](store.s_store_sk = 
store_sales.ss_store_sk)
+--------------------------------------hashJoin[INNER_JOIN](item.i_item_sk = 
store_sales.ss_item_sk)
+----------------------------------------PhysicalDistribute
+------------------------------------------hashJoin[INNER_JOIN](d1.d_date_sk = 
store_sales.ss_sold_date_sk)
 --------------------------------------------PhysicalProject
 ----------------------------------------------PhysicalOlapScan[store_sales]
---------------------------------------------hashJoin[INNER_JOIN](store_returns.sr_returned_date_sk
 = d2.d_date_sk)
+--------------------------------------------PhysicalDistribute
 ----------------------------------------------PhysicalProject
-------------------------------------------------PhysicalOlapScan[store_returns]
-----------------------------------------------PhysicalDistribute
-------------------------------------------------PhysicalProject
---------------------------------------------------filter((d2.d_moy <= 
7)(d2.d_moy >= 4)(d2.d_year = 1999))
-----------------------------------------------------PhysicalOlapScan[date_dim]
+------------------------------------------------filter((d1.d_year = 
1999)(d1.d_moy = 4))
+--------------------------------------------------PhysicalOlapScan[date_dim]
 ----------------------------------------PhysicalDistribute
 ------------------------------------------PhysicalProject
---------------------------------------------filter((d1.d_year = 1999)(d1.d_moy 
= 4))
-----------------------------------------------PhysicalOlapScan[date_dim]
+--------------------------------------------PhysicalOlapScan[item]
+--------------------------------------PhysicalDistribute
+----------------------------------------PhysicalProject
+------------------------------------------PhysicalOlapScan[store]
+----------------------------PhysicalDistribute
+------------------------------PhysicalProject
+--------------------------------filter((d2.d_moy <= 7)(d2.d_moy >= 
4)(d2.d_year = 1999))
+----------------------------------PhysicalOlapScan[date_dim]
+------------------PhysicalDistribute
+--------------------PhysicalProject
+----------------------filter(d_year IN (1999, 2000, 2001))
+------------------------PhysicalOlapScan[date_dim]
 
diff --git 
a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query30.out 
b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query30.out
index 83982f3782..acc9901970 100644
--- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query30.out
+++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query30.out
@@ -25,11 +25,11 @@ PhysicalCteAnchor ( cteId=CTEId#0 )
 --------PhysicalTopN
 ----------PhysicalProject
 ------------hashJoin[INNER_JOIN](ctr1.ctr_state = 
ctr2.ctr_state)(cast(ctr_total_return as DOUBLE) > 
cast((avg(cast(ctr_total_return as DECIMALV3(38, 4))) * 1.2) as DOUBLE))
---------------hashJoin[INNER_JOIN](ctr1.ctr_customer_sk = 
customer.c_customer_sk)
-----------------PhysicalDistribute
-------------------PhysicalCteConsumer ( cteId=CTEId#0 )
-----------------PhysicalDistribute
-------------------PhysicalProject
+--------------PhysicalProject
+----------------hashJoin[INNER_JOIN](ctr1.ctr_customer_sk = 
customer.c_customer_sk)
+------------------PhysicalDistribute
+--------------------PhysicalCteConsumer ( cteId=CTEId#0 )
+------------------PhysicalDistribute
 --------------------hashJoin[INNER_JOIN](customer_address.ca_address_sk = 
customer.c_current_addr_sk)
 ----------------------PhysicalProject
 ------------------------PhysicalOlapScan[customer]
diff --git 
a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query40.out 
b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query40.out
index 6c1818fbfd..e0af770a07 100644
--- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query40.out
+++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query40.out
@@ -8,24 +8,25 @@ PhysicalResultSink
 ----------PhysicalDistribute
 ------------hashAgg[LOCAL]
 --------------PhysicalProject
-----------------hashJoin[INNER_JOIN](catalog_sales.cs_warehouse_sk = 
warehouse.w_warehouse_sk)
+----------------hashJoin[RIGHT_OUTER_JOIN](catalog_sales.cs_item_sk = 
catalog_returns.cr_item_sk)(catalog_sales.cs_order_number = 
catalog_returns.cr_order_number)
 ------------------PhysicalProject
---------------------hashJoin[RIGHT_OUTER_JOIN](catalog_sales.cs_item_sk = 
catalog_returns.cr_item_sk)(catalog_sales.cs_order_number = 
catalog_returns.cr_order_number)
-----------------------PhysicalProject
-------------------------PhysicalOlapScan[catalog_returns]
-----------------------hashJoin[INNER_JOIN](catalog_sales.cs_sold_date_sk = 
date_dim.d_date_sk)
-------------------------hashJoin[INNER_JOIN](item.i_item_sk = 
catalog_sales.cs_item_sk)
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[catalog_sales]
---------------------------PhysicalDistribute
-----------------------------PhysicalProject
-------------------------------filter((item.i_current_price >= 
0.99)(item.i_current_price <= 1.49))
---------------------------------PhysicalOlapScan[item]
-------------------------PhysicalDistribute
---------------------------PhysicalProject
-----------------------------filter((date_dim.d_date >= 
2001-03-03)(date_dim.d_date <= 2001-05-02))
-------------------------------PhysicalOlapScan[date_dim]
+--------------------PhysicalOlapScan[catalog_returns]
 ------------------PhysicalDistribute
 --------------------PhysicalProject
-----------------------PhysicalOlapScan[warehouse]
+----------------------hashJoin[INNER_JOIN](catalog_sales.cs_warehouse_sk = 
warehouse.w_warehouse_sk)
+------------------------PhysicalProject
+--------------------------PhysicalOlapScan[warehouse]
+------------------------PhysicalDistribute
+--------------------------hashJoin[INNER_JOIN](catalog_sales.cs_sold_date_sk = 
date_dim.d_date_sk)
+----------------------------hashJoin[INNER_JOIN](item.i_item_sk = 
catalog_sales.cs_item_sk)
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[catalog_sales]
+------------------------------PhysicalDistribute
+--------------------------------PhysicalProject
+----------------------------------filter((item.i_current_price >= 
0.99)(item.i_current_price <= 1.49))
+------------------------------------PhysicalOlapScan[item]
+----------------------------PhysicalDistribute
+------------------------------PhysicalProject
+--------------------------------filter((date_dim.d_date >= 
2001-03-03)(date_dim.d_date <= 2001-05-02))
+----------------------------------PhysicalOlapScan[date_dim]
 
diff --git 
a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query50.out 
b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query50.out
index 1fbd2f57a0..50219078fe 100644
--- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query50.out
+++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query50.out
@@ -16,17 +16,16 @@ PhysicalResultSink
 --------------------------PhysicalProject
 ----------------------------PhysicalOlapScan[date_dim]
 ------------------------PhysicalDistribute
---------------------------PhysicalProject
-----------------------------hashJoin[INNER_JOIN](store_sales.ss_item_sk = 
store_returns.sr_item_sk)(store_sales.ss_ticket_number = 
store_returns.sr_ticket_number)(store_sales.ss_customer_sk = 
store_returns.sr_customer_sk)
+--------------------------hashJoin[INNER_JOIN](store_sales.ss_item_sk = 
store_returns.sr_item_sk)(store_sales.ss_ticket_number = 
store_returns.sr_ticket_number)(store_sales.ss_customer_sk = 
store_returns.sr_customer_sk)
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[store_sales]
+----------------------------hashJoin[INNER_JOIN](store_returns.sr_returned_date_sk
 = d2.d_date_sk)
 ------------------------------PhysicalProject
---------------------------------PhysicalOlapScan[store_sales]
-------------------------------hashJoin[INNER_JOIN](store_returns.sr_returned_date_sk
 = d2.d_date_sk)
+--------------------------------PhysicalOlapScan[store_returns]
+------------------------------PhysicalDistribute
 --------------------------------PhysicalProject
-----------------------------------PhysicalOlapScan[store_returns]
---------------------------------PhysicalDistribute
-----------------------------------PhysicalProject
-------------------------------------filter((d2.d_year = 2001)(d2.d_moy = 8))
---------------------------------------PhysicalOlapScan[date_dim]
+----------------------------------filter((d2.d_year = 2001)(d2.d_moy = 8))
+------------------------------------PhysicalOlapScan[date_dim]
 ------------------PhysicalDistribute
 --------------------PhysicalProject
 ----------------------PhysicalOlapScan[store]
diff --git 
a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query59.out 
b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query59.out
index 35bb32094a..9f57ca6994 100644
--- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query59.out
+++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query59.out
@@ -18,36 +18,33 @@ PhysicalCteAnchor ( cteId=CTEId#0 )
 ------PhysicalDistribute
 --------PhysicalTopN
 ----------PhysicalProject
-------------hashJoin[INNER_JOIN](y.s_store_id1 = 
x.s_store_id2)(expr_cast(d_week_seq1 as BIGINT) = expr_(d_week_seq2 - 52))
---------------PhysicalDistribute
-----------------PhysicalProject
-------------------hashJoin[INNER_JOIN](wss.ss_store_sk = store.s_store_sk)
---------------------PhysicalDistribute
-----------------------hashJoin[INNER_JOIN](d.d_week_seq = d_week_seq1)
-------------------------PhysicalDistribute
---------------------------PhysicalProject
-----------------------------PhysicalCteConsumer ( cteId=CTEId#0 )
-------------------------PhysicalDistribute
---------------------------PhysicalProject
-----------------------------filter((d.d_month_seq <= 1207)(d.d_month_seq >= 
1196))
-------------------------------PhysicalOlapScan[date_dim]
---------------------PhysicalDistribute
-----------------------PhysicalProject
-------------------------PhysicalOlapScan[store]
---------------PhysicalDistribute
-----------------PhysicalProject
-------------------hashJoin[INNER_JOIN](wss.ss_store_sk = store.s_store_sk)
---------------------PhysicalDistribute
-----------------------PhysicalProject
-------------------------hashJoin[INNER_JOIN](d.d_week_seq = d_week_seq2)
+------------hashJoin[INNER_JOIN](y.s_store_id1 = 
x.s_store_id2)(wss.ss_store_sk = store.s_store_sk)
+--------------hashJoin[INNER_JOIN](expr_cast(d_week_seq1 as BIGINT) = 
expr_(d_week_seq2 - 52))
+----------------PhysicalDistribute
+------------------PhysicalProject
+--------------------hashJoin[INNER_JOIN](wss.ss_store_sk = store.s_store_sk)
+----------------------PhysicalDistribute
+------------------------hashJoin[INNER_JOIN](d.d_week_seq = d_week_seq1)
 --------------------------PhysicalDistribute
 ----------------------------PhysicalProject
 ------------------------------PhysicalCteConsumer ( cteId=CTEId#0 )
 --------------------------PhysicalDistribute
 ----------------------------PhysicalProject
-------------------------------filter((d.d_month_seq <= 1219)(d.d_month_seq >= 
1208))
+------------------------------filter((d.d_month_seq <= 1207)(d.d_month_seq >= 
1196))
 --------------------------------PhysicalOlapScan[date_dim]
+----------------------PhysicalDistribute
+------------------------PhysicalProject
+--------------------------PhysicalOlapScan[store]
+----------------PhysicalDistribute
+------------------hashJoin[INNER_JOIN](d.d_week_seq = d_week_seq2)
 --------------------PhysicalDistribute
 ----------------------PhysicalProject
-------------------------PhysicalOlapScan[store]
+------------------------PhysicalCteConsumer ( cteId=CTEId#0 )
+--------------------PhysicalDistribute
+----------------------PhysicalProject
+------------------------filter((d.d_month_seq <= 1219)(d.d_month_seq >= 1208))
+--------------------------PhysicalOlapScan[date_dim]
+--------------PhysicalDistribute
+----------------PhysicalProject
+------------------PhysicalOlapScan[store]
 
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 9ab45c237f..9dcfea291d 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
@@ -9,24 +9,66 @@ PhysicalResultSink
 ------------PhysicalDistribute
 --------------hashAgg[LOCAL]
 ----------------PhysicalProject
-------------------hashJoin[INNER_JOIN](customer_address.ca_address_sk = 
customer.c_current_addr_sk)
+------------------hashJoin[INNER_JOIN](store_sales.ss_item_sk = item.i_item_sk)
 --------------------PhysicalProject
-----------------------filter((customer_address.ca_gmt_offset = -7.00))
-------------------------PhysicalOlapScan[customer_address]
+----------------------filter((cast(i_category as VARCHAR(*)) = 'Jewelry'))
+------------------------PhysicalOlapScan[item]
 --------------------PhysicalDistribute
 ----------------------PhysicalProject
-------------------------hashJoin[INNER_JOIN](store_sales.ss_customer_sk = 
customer.c_customer_sk)
+------------------------hashJoin[INNER_JOIN](customer_address.ca_address_sk = 
customer.c_current_addr_sk)
 --------------------------PhysicalProject
-----------------------------PhysicalOlapScan[customer]
+----------------------------filter((customer_address.ca_gmt_offset = -7.00))
+------------------------------PhysicalOlapScan[customer_address]
 --------------------------PhysicalDistribute
-----------------------------hashJoin[INNER_JOIN](store_sales.ss_item_sk = 
item.i_item_sk)
+----------------------------PhysicalProject
+------------------------------hashJoin[INNER_JOIN](store_sales.ss_customer_sk 
= customer.c_customer_sk)
+--------------------------------PhysicalDistribute
+----------------------------------PhysicalProject
+------------------------------------PhysicalOlapScan[customer]
+--------------------------------PhysicalDistribute
+----------------------------------PhysicalProject
+------------------------------------hashJoin[INNER_JOIN](store_sales.ss_promo_sk
 = promotion.p_promo_sk)
+--------------------------------------PhysicalDistribute
+----------------------------------------hashJoin[INNER_JOIN](store_sales.ss_sold_date_sk
 = date_dim.d_date_sk)
+------------------------------------------PhysicalProject
+--------------------------------------------hashJoin[INNER_JOIN](store_sales.ss_store_sk
 = store.s_store_sk)
+----------------------------------------------PhysicalProject
+------------------------------------------------PhysicalOlapScan[store_sales]
+----------------------------------------------PhysicalDistribute
+------------------------------------------------PhysicalProject
+--------------------------------------------------filter((store.s_gmt_offset = 
-7.00))
+----------------------------------------------------PhysicalOlapScan[store]
+------------------------------------------PhysicalDistribute
+--------------------------------------------PhysicalProject
+----------------------------------------------filter((date_dim.d_moy = 
11)(date_dim.d_year = 1999))
+------------------------------------------------PhysicalOlapScan[date_dim]
+--------------------------------------PhysicalDistribute
+----------------------------------------PhysicalProject
+------------------------------------------filter((((cast(p_channel_dmail as 
VARCHAR(*)) = 'Y') OR (cast(p_channel_email as VARCHAR(*)) = 'Y')) OR 
(cast(p_channel_tv as VARCHAR(*)) = 'Y')))
+--------------------------------------------PhysicalOlapScan[promotion]
+----------PhysicalDistribute
+------------hashAgg[GLOBAL]
+--------------PhysicalDistribute
+----------------hashAgg[LOCAL]
+------------------PhysicalProject
+--------------------hashJoin[INNER_JOIN](store_sales.ss_item_sk = 
item.i_item_sk)
+----------------------PhysicalProject
+------------------------filter((cast(i_category as VARCHAR(*)) = 'Jewelry'))
+--------------------------PhysicalOlapScan[item]
+----------------------PhysicalDistribute
+------------------------PhysicalProject
+--------------------------hashJoin[INNER_JOIN](customer_address.ca_address_sk 
= customer.c_current_addr_sk)
+----------------------------PhysicalProject
+------------------------------filter((customer_address.ca_gmt_offset = -7.00))
+--------------------------------PhysicalOlapScan[customer_address]
+----------------------------PhysicalDistribute
 ------------------------------PhysicalProject
---------------------------------filter((cast(i_category as VARCHAR(*)) = 
'Jewelry'))
-----------------------------------PhysicalOlapScan[item]
-------------------------------PhysicalDistribute
---------------------------------PhysicalProject
-----------------------------------hashJoin[INNER_JOIN](store_sales.ss_promo_sk 
= promotion.p_promo_sk)
-------------------------------------PhysicalDistribute
+--------------------------------hashJoin[INNER_JOIN](store_sales.ss_customer_sk
 = customer.c_customer_sk)
+----------------------------------PhysicalDistribute
+------------------------------------PhysicalProject
+--------------------------------------PhysicalOlapScan[customer]
+----------------------------------PhysicalDistribute
+------------------------------------PhysicalProject
 
--------------------------------------hashJoin[INNER_JOIN](store_sales.ss_sold_date_sk
 = date_dim.d_date_sk)
 ----------------------------------------PhysicalProject
 
------------------------------------------hashJoin[INNER_JOIN](store_sales.ss_store_sk
 = store.s_store_sk)
@@ -40,42 +82,4 @@ PhysicalResultSink
 ------------------------------------------PhysicalProject
 --------------------------------------------filter((date_dim.d_moy = 
11)(date_dim.d_year = 1999))
 ----------------------------------------------PhysicalOlapScan[date_dim]
-------------------------------------PhysicalDistribute
---------------------------------------PhysicalProject
-----------------------------------------filter((((cast(p_channel_dmail as 
VARCHAR(*)) = 'Y') OR (cast(p_channel_email as VARCHAR(*)) = 'Y')) OR 
(cast(p_channel_tv as VARCHAR(*)) = 'Y')))
-------------------------------------------PhysicalOlapScan[promotion]
-----------PhysicalDistribute
-------------hashAgg[GLOBAL]
---------------PhysicalDistribute
-----------------hashAgg[LOCAL]
-------------------PhysicalProject
---------------------hashJoin[INNER_JOIN](customer_address.ca_address_sk = 
customer.c_current_addr_sk)
-----------------------PhysicalProject
-------------------------filter((customer_address.ca_gmt_offset = -7.00))
---------------------------PhysicalOlapScan[customer_address]
-----------------------PhysicalDistribute
-------------------------PhysicalProject
---------------------------hashJoin[INNER_JOIN](store_sales.ss_customer_sk = 
customer.c_customer_sk)
-----------------------------PhysicalProject
-------------------------------PhysicalOlapScan[customer]
-----------------------------PhysicalDistribute
-------------------------------hashJoin[INNER_JOIN](store_sales.ss_item_sk = 
item.i_item_sk)
---------------------------------PhysicalProject
-----------------------------------filter((cast(i_category as VARCHAR(*)) = 
'Jewelry'))
-------------------------------------PhysicalOlapScan[item]
---------------------------------PhysicalDistribute
-----------------------------------PhysicalProject
-------------------------------------hashJoin[INNER_JOIN](store_sales.ss_sold_date_sk
 = date_dim.d_date_sk)
---------------------------------------PhysicalProject
-----------------------------------------hashJoin[INNER_JOIN](store_sales.ss_store_sk
 = store.s_store_sk)
-------------------------------------------PhysicalProject
---------------------------------------------PhysicalOlapScan[store_sales]
-------------------------------------------PhysicalDistribute
---------------------------------------------PhysicalProject
-----------------------------------------------filter((store.s_gmt_offset = 
-7.00))
-------------------------------------------------PhysicalOlapScan[store]
---------------------------------------PhysicalDistribute
-----------------------------------------PhysicalProject
-------------------------------------------filter((date_dim.d_moy = 
11)(date_dim.d_year = 1999))
---------------------------------------------PhysicalOlapScan[date_dim]
 
diff --git 
a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query72.out 
b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query72.out
index 90bf3501c5..888557d30d 100644
--- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query72.out
+++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query72.out
@@ -8,24 +8,20 @@ PhysicalResultSink
 ----------PhysicalDistribute
 ------------hashAgg[LOCAL]
 --------------PhysicalProject
-----------------hashJoin[RIGHT_OUTER_JOIN](catalog_returns.cr_item_sk = 
catalog_sales.cs_item_sk)(catalog_returns.cr_order_number = 
catalog_sales.cs_order_number)
-------------------PhysicalProject
---------------------PhysicalOlapScan[catalog_returns]
+----------------hashJoin[LEFT_OUTER_JOIN](catalog_returns.cr_item_sk = 
catalog_sales.cs_item_sk)(catalog_returns.cr_order_number = 
catalog_sales.cs_order_number)
 ------------------PhysicalDistribute
 --------------------PhysicalProject
-----------------------hashJoin[LEFT_OUTER_JOIN](catalog_sales.cs_promo_sk = 
promotion.p_promo_sk)
+----------------------hashJoin[INNER_JOIN](warehouse.w_warehouse_sk = 
inventory.inv_warehouse_sk)
 ------------------------PhysicalProject
---------------------------hashJoin[INNER_JOIN](warehouse.w_warehouse_sk = 
inventory.inv_warehouse_sk)
+--------------------------hashJoin[INNER_JOIN](inventory.inv_date_sk = 
d2.d_date_sk)(d1.d_week_seq = d2.d_week_seq)
 ----------------------------PhysicalProject
-------------------------------hashJoin[INNER_JOIN](item.i_item_sk = 
catalog_sales.cs_item_sk)
---------------------------------PhysicalProject
-----------------------------------PhysicalOlapScan[item]
+------------------------------hashJoin[INNER_JOIN](catalog_sales.cs_item_sk = 
inventory.inv_item_sk)(inventory.inv_quantity_on_hand < 
catalog_sales.cs_quantity)
+--------------------------------PhysicalOlapScan[inventory]
 --------------------------------PhysicalDistribute
 ----------------------------------PhysicalProject
-------------------------------------hashJoin[INNER_JOIN](inventory.inv_date_sk 
= d2.d_date_sk)(d1.d_week_seq = d2.d_week_seq)
+------------------------------------hashJoin[LEFT_OUTER_JOIN](catalog_sales.cs_promo_sk
 = promotion.p_promo_sk)
 --------------------------------------PhysicalProject
-----------------------------------------hashJoin[INNER_JOIN](catalog_sales.cs_item_sk
 = inventory.inv_item_sk)(inventory.inv_quantity_on_hand < 
catalog_sales.cs_quantity)
-------------------------------------------PhysicalOlapScan[inventory]
+----------------------------------------hashJoin[INNER_JOIN](item.i_item_sk = 
catalog_sales.cs_item_sk)
 ------------------------------------------PhysicalDistribute
 --------------------------------------------PhysicalProject
 
----------------------------------------------hashJoin[INNER_JOIN](catalog_sales.cs_ship_date_sk
 = d3.d_date_sk)(d3.d_date > cast((cast(d_date as BIGINT) + 5) as DATEV2))
@@ -51,13 +47,19 @@ PhysicalResultSink
 ------------------------------------------------PhysicalDistribute
 --------------------------------------------------PhysicalProject
 ----------------------------------------------------PhysicalOlapScan[date_dim]
+------------------------------------------PhysicalDistribute
+--------------------------------------------PhysicalProject
+----------------------------------------------PhysicalOlapScan[item]
 --------------------------------------PhysicalDistribute
 ----------------------------------------PhysicalProject
-------------------------------------------PhysicalOlapScan[date_dim]
+------------------------------------------PhysicalOlapScan[promotion]
 ----------------------------PhysicalDistribute
 ------------------------------PhysicalProject
---------------------------------PhysicalOlapScan[warehouse]
+--------------------------------PhysicalOlapScan[date_dim]
 ------------------------PhysicalDistribute
 --------------------------PhysicalProject
-----------------------------PhysicalOlapScan[promotion]
+----------------------------PhysicalOlapScan[warehouse]
+------------------PhysicalDistribute
+--------------------PhysicalProject
+----------------------PhysicalOlapScan[catalog_returns]
 
diff --git 
a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query81.out 
b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query81.out
index bfcec6ce41..ea982e8c29 100644
--- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query81.out
+++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query81.out
@@ -25,11 +25,11 @@ PhysicalCteAnchor ( cteId=CTEId#0 )
 --------PhysicalTopN
 ----------PhysicalProject
 ------------hashJoin[INNER_JOIN](ctr1.ctr_state = 
ctr2.ctr_state)(cast(ctr_total_return as DOUBLE) > 
cast((avg(cast(ctr_total_return as DECIMALV3(38, 4))) * 1.2) as DOUBLE))
---------------hashJoin[INNER_JOIN](ctr1.ctr_customer_sk = 
customer.c_customer_sk)
-----------------PhysicalDistribute
-------------------PhysicalCteConsumer ( cteId=CTEId#0 )
-----------------PhysicalDistribute
-------------------PhysicalProject
+--------------PhysicalProject
+----------------hashJoin[INNER_JOIN](ctr1.ctr_customer_sk = 
customer.c_customer_sk)
+------------------PhysicalDistribute
+--------------------PhysicalCteConsumer ( cteId=CTEId#0 )
+------------------PhysicalDistribute
 --------------------hashJoin[INNER_JOIN](customer_address.ca_address_sk = 
customer.c_current_addr_sk)
 ----------------------PhysicalProject
 ------------------------PhysicalOlapScan[customer]
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 77be6e8544..f51819a367 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
@@ -9,9 +9,9 @@ PhysicalResultSink
 ------------PhysicalDistribute
 --------------hashAgg[LOCAL]
 ----------------PhysicalProject
-------------------hashJoin[INNER_JOIN](cd2.cd_demo_sk = 
web_returns.wr_returning_cdemo_sk)(cd1.cd_marital_status = 
cd2.cd_marital_status)(cd1.cd_education_status = cd2.cd_education_status)
+------------------hashJoin[INNER_JOIN](reason.r_reason_sk = 
web_returns.wr_reason_sk)
 --------------------PhysicalProject
-----------------------PhysicalOlapScan[customer_demographics]
+----------------------PhysicalOlapScan[reason]
 --------------------PhysicalDistribute
 ----------------------PhysicalProject
 ------------------------hashJoin[INNER_JOIN](web_sales.ws_web_page_sk = 
web_page.wp_web_page_sk)
@@ -19,30 +19,32 @@ PhysicalResultSink
 ----------------------------PhysicalOlapScan[web_page]
 --------------------------PhysicalDistribute
 ----------------------------PhysicalProject
-------------------------------hashJoin[INNER_JOIN](cd1.cd_demo_sk = 
web_returns.wr_refunded_cdemo_sk)(((((cast(cd_marital_status as VARCHAR(*)) = 
'M') AND (cast(cd_education_status as VARCHAR(*)) = '4 yr Degree')) AND 
((web_sales.ws_sales_price >= 100.00) AND (web_sales.ws_sales_price <= 
150.00))) OR (((cast(cd_marital_status as VARCHAR(*)) = 'S') AND 
(cast(cd_education_status as VARCHAR(*)) = 'Secondary')) AND 
((web_sales.ws_sales_price >= 50.00) AND (web_sales.ws_sales_price <= 100.00) 
[...]
+------------------------------hashJoin[INNER_JOIN](cd2.cd_demo_sk = 
web_returns.wr_returning_cdemo_sk)(cd1.cd_marital_status = 
cd2.cd_marital_status)(cd1.cd_education_status = cd2.cd_education_status)
 --------------------------------PhysicalProject
-----------------------------------filter(((((cast(cd_marital_status as 
VARCHAR(*)) = 'M') AND (cast(cd_education_status as VARCHAR(*)) = '4 yr 
Degree')) OR ((cast(cd_marital_status as VARCHAR(*)) = 'S') AND 
(cast(cd_education_status as VARCHAR(*)) = 'Secondary'))) OR 
((cast(cd_marital_status as VARCHAR(*)) = 'W') AND (cast(cd_education_status as 
VARCHAR(*)) = 'Advanced Degree'))))
-------------------------------------PhysicalOlapScan[customer_demographics]
+----------------------------------PhysicalOlapScan[customer_demographics]
 --------------------------------PhysicalDistribute
-----------------------------------hashJoin[INNER_JOIN](reason.r_reason_sk = 
web_returns.wr_reason_sk)
-------------------------------------PhysicalProject
---------------------------------------PhysicalOlapScan[reason]
-------------------------------------PhysicalDistribute
---------------------------------------hashJoin[INNER_JOIN](customer_address.ca_address_sk
 = web_returns.wr_refunded_addr_sk)(((ca_state IN ('FL', 'TX', 'DE') AND 
((web_sales.ws_net_profit >= 100.00) AND (web_sales.ws_net_profit <= 200.00))) 
OR (ca_state IN ('IN', 'ND', 'ID') AND ((web_sales.ws_net_profit >= 150.00) AND 
(web_sales.ws_net_profit <= 300.00)))) OR (ca_state IN ('MT', 'IL', 'OH') AND 
((web_sales.ws_net_profit >= 50.00) AND (web_sales.ws_net_profit <= 250.00))))
-----------------------------------------PhysicalProject
-------------------------------------------filter(((ca_state IN ('FL', 'TX', 
'DE') OR ca_state IN ('IN', 'ND', 'ID')) OR ca_state IN ('MT', 'IL', 
'OH'))(customer_address.ca_country = 'United States'))
---------------------------------------------PhysicalOlapScan[customer_address]
-----------------------------------------PhysicalDistribute
-------------------------------------------PhysicalProject
---------------------------------------------hashJoin[INNER_JOIN](web_sales.ws_item_sk
 = web_returns.wr_item_sk)(web_sales.ws_order_number = 
web_returns.wr_order_number)
-----------------------------------------------PhysicalProject
-------------------------------------------------PhysicalOlapScan[web_returns]
-----------------------------------------------hashJoin[INNER_JOIN](web_sales.ws_sold_date_sk
 = date_dim.d_date_sk)
+----------------------------------PhysicalProject
+------------------------------------hashJoin[INNER_JOIN](cd1.cd_demo_sk = 
web_returns.wr_refunded_cdemo_sk)(((((cast(cd_marital_status as VARCHAR(*)) = 
'M') AND (cast(cd_education_status as VARCHAR(*)) = '4 yr Degree')) AND 
((web_sales.ws_sales_price >= 100.00) AND (web_sales.ws_sales_price <= 
150.00))) OR (((cast(cd_marital_status as VARCHAR(*)) = 'S') AND 
(cast(cd_education_status as VARCHAR(*)) = 'Secondary')) AND 
((web_sales.ws_sales_price >= 50.00) AND (web_sales.ws_sales_price <= 1 [...]
+--------------------------------------PhysicalProject
+----------------------------------------filter(((((cast(cd_marital_status as 
VARCHAR(*)) = 'M') AND (cast(cd_education_status as VARCHAR(*)) = '4 yr 
Degree')) OR ((cast(cd_marital_status as VARCHAR(*)) = 'S') AND 
(cast(cd_education_status as VARCHAR(*)) = 'Secondary'))) OR 
((cast(cd_marital_status as VARCHAR(*)) = 'W') AND (cast(cd_education_status as 
VARCHAR(*)) = 'Advanced Degree'))))
+------------------------------------------PhysicalOlapScan[customer_demographics]
+--------------------------------------PhysicalDistribute
+----------------------------------------hashJoin[INNER_JOIN](customer_address.ca_address_sk
 = web_returns.wr_refunded_addr_sk)(((ca_state IN ('FL', 'TX', 'DE') AND 
((web_sales.ws_net_profit >= 100.00) AND (web_sales.ws_net_profit <= 200.00))) 
OR (ca_state IN ('IN', 'ND', 'ID') AND ((web_sales.ws_net_profit >= 150.00) AND 
(web_sales.ws_net_profit <= 300.00)))) OR (ca_state IN ('MT', 'IL', 'OH') AND 
((web_sales.ws_net_profit >= 50.00) AND (web_sales.ws_net_profit <= 250.00))))
+------------------------------------------PhysicalDistribute
+--------------------------------------------PhysicalProject
+----------------------------------------------hashJoin[INNER_JOIN](web_sales.ws_item_sk
 = web_returns.wr_item_sk)(web_sales.ws_order_number = 
web_returns.wr_order_number)
 ------------------------------------------------PhysicalProject
---------------------------------------------------filter(((((web_sales.ws_net_profit
 >= 100.00) AND (web_sales.ws_net_profit <= 200.00)) OR 
((web_sales.ws_net_profit >= 150.00) AND (web_sales.ws_net_profit <= 300.00))) 
OR ((web_sales.ws_net_profit >= 50.00) AND (web_sales.ws_net_profit <= 
250.00)))((((web_sales.ws_sales_price >= 100.00) AND (web_sales.ws_sales_price 
<= 150.00)) OR ((web_sales.ws_sales_price >= 50.00) AND 
(web_sales.ws_sales_price <= 100.00))) OR ((web_sales.ws_sales_pric [...]
-----------------------------------------------------PhysicalOlapScan[web_sales]
-------------------------------------------------PhysicalDistribute
+--------------------------------------------------PhysicalOlapScan[web_returns]
+------------------------------------------------hashJoin[INNER_JOIN](web_sales.ws_sold_date_sk
 = date_dim.d_date_sk)
 --------------------------------------------------PhysicalProject
-----------------------------------------------------filter((date_dim.d_year = 
2000))
-------------------------------------------------------PhysicalOlapScan[date_dim]
+----------------------------------------------------filter(((((web_sales.ws_net_profit
 >= 100.00) AND (web_sales.ws_net_profit <= 200.00)) OR 
((web_sales.ws_net_profit >= 150.00) AND (web_sales.ws_net_profit <= 300.00))) 
OR ((web_sales.ws_net_profit >= 50.00) AND (web_sales.ws_net_profit <= 
250.00)))((((web_sales.ws_sales_price >= 100.00) AND (web_sales.ws_sales_price 
<= 150.00)) OR ((web_sales.ws_sales_price >= 50.00) AND 
(web_sales.ws_sales_price <= 100.00))) OR ((web_sales.ws_sales_pr [...]
+------------------------------------------------------PhysicalOlapScan[web_sales]
+--------------------------------------------------PhysicalDistribute
+----------------------------------------------------PhysicalProject
+------------------------------------------------------filter((date_dim.d_year 
= 2000))
+--------------------------------------------------------PhysicalOlapScan[date_dim]
+------------------------------------------PhysicalDistribute
+--------------------------------------------PhysicalProject
+----------------------------------------------filter(((ca_state IN ('FL', 
'TX', 'DE') OR ca_state IN ('IN', 'ND', 'ID')) OR ca_state IN ('MT', 'IL', 
'OH'))(customer_address.ca_country = 'United States'))
+------------------------------------------------PhysicalOlapScan[customer_address]
 
diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q2.out 
b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q2.out
index 401b2d35c6..4c8fc44b7c 100644
--- a/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q2.out
+++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q2.out
@@ -11,18 +11,6 @@ PhysicalResultSink
 ----------------PhysicalDistribute
 ------------------PhysicalProject
 --------------------hashJoin[INNER_JOIN](supplier.s_suppkey = 
partsupp.ps_suppkey)
-----------------------PhysicalProject
-------------------------hashJoin[INNER_JOIN](supplier.s_nationkey = 
nation.n_nationkey)
---------------------------PhysicalOlapScan[supplier]
---------------------------PhysicalDistribute
-----------------------------hashJoin[INNER_JOIN](nation.n_regionkey = 
region.r_regionkey)
-------------------------------PhysicalDistribute
---------------------------------PhysicalProject
-----------------------------------PhysicalOlapScan[nation]
-------------------------------PhysicalDistribute
---------------------------------PhysicalProject
-----------------------------------filter((region.r_name = 'EUROPE'))
-------------------------------------PhysicalOlapScan[region]
 ----------------------PhysicalDistribute
 ------------------------PhysicalProject
 --------------------------hashJoin[INNER_JOIN](part.p_partkey = 
partsupp.ps_partkey)
@@ -31,4 +19,17 @@ PhysicalResultSink
 ----------------------------PhysicalProject
 ------------------------------filter((part.p_size = 15)(p_type like '%BRASS'))
 --------------------------------PhysicalOlapScan[part]
+----------------------PhysicalDistribute
+------------------------PhysicalProject
+--------------------------hashJoin[INNER_JOIN](supplier.s_nationkey = 
nation.n_nationkey)
+----------------------------PhysicalOlapScan[supplier]
+----------------------------PhysicalDistribute
+------------------------------hashJoin[INNER_JOIN](nation.n_regionkey = 
region.r_regionkey)
+--------------------------------PhysicalDistribute
+----------------------------------PhysicalProject
+------------------------------------PhysicalOlapScan[nation]
+--------------------------------PhysicalDistribute
+----------------------------------PhysicalProject
+------------------------------------filter((region.r_name = 'EUROPE'))
+--------------------------------------PhysicalOlapScan[region]
 
diff --git a/regression-test/data/nereids_tpch_shape_sf500_p0/shape/q2.out 
b/regression-test/data/nereids_tpch_shape_sf500_p0/shape/q2.out
index 401b2d35c6..4c8fc44b7c 100644
--- a/regression-test/data/nereids_tpch_shape_sf500_p0/shape/q2.out
+++ b/regression-test/data/nereids_tpch_shape_sf500_p0/shape/q2.out
@@ -11,18 +11,6 @@ PhysicalResultSink
 ----------------PhysicalDistribute
 ------------------PhysicalProject
 --------------------hashJoin[INNER_JOIN](supplier.s_suppkey = 
partsupp.ps_suppkey)
-----------------------PhysicalProject
-------------------------hashJoin[INNER_JOIN](supplier.s_nationkey = 
nation.n_nationkey)
---------------------------PhysicalOlapScan[supplier]
---------------------------PhysicalDistribute
-----------------------------hashJoin[INNER_JOIN](nation.n_regionkey = 
region.r_regionkey)
-------------------------------PhysicalDistribute
---------------------------------PhysicalProject
-----------------------------------PhysicalOlapScan[nation]
-------------------------------PhysicalDistribute
---------------------------------PhysicalProject
-----------------------------------filter((region.r_name = 'EUROPE'))
-------------------------------------PhysicalOlapScan[region]
 ----------------------PhysicalDistribute
 ------------------------PhysicalProject
 --------------------------hashJoin[INNER_JOIN](part.p_partkey = 
partsupp.ps_partkey)
@@ -31,4 +19,17 @@ PhysicalResultSink
 ----------------------------PhysicalProject
 ------------------------------filter((part.p_size = 15)(p_type like '%BRASS'))
 --------------------------------PhysicalOlapScan[part]
+----------------------PhysicalDistribute
+------------------------PhysicalProject
+--------------------------hashJoin[INNER_JOIN](supplier.s_nationkey = 
nation.n_nationkey)
+----------------------------PhysicalOlapScan[supplier]
+----------------------------PhysicalDistribute
+------------------------------hashJoin[INNER_JOIN](nation.n_regionkey = 
region.r_regionkey)
+--------------------------------PhysicalDistribute
+----------------------------------PhysicalProject
+------------------------------------PhysicalOlapScan[nation]
+--------------------------------PhysicalDistribute
+----------------------------------PhysicalProject
+------------------------------------filter((region.r_name = 'EUROPE'))
+--------------------------------------PhysicalOlapScan[region]
 
diff --git a/regression-test/data/nereids_tpch_shape_sf500_p0/shape/q21.out 
b/regression-test/data/nereids_tpch_shape_sf500_p0/shape/q21.out
index 2f4348619b..52f7b7a7ee 100644
--- a/regression-test/data/nereids_tpch_shape_sf500_p0/shape/q21.out
+++ b/regression-test/data/nereids_tpch_shape_sf500_p0/shape/q21.out
@@ -12,23 +12,24 @@ PhysicalResultSink
 ------------------PhysicalProject
 --------------------filter((orders.o_orderstatus = 'F'))
 ----------------------PhysicalOlapScan[orders]
-------------------hashJoin[RIGHT_SEMI_JOIN](l2.l_orderkey = l1.l_orderkey)( 
not (l_suppkey = l_suppkey))
---------------------PhysicalProject
-----------------------PhysicalOlapScan[lineitem]
---------------------hashJoin[RIGHT_ANTI_JOIN](l3.l_orderkey = l1.l_orderkey)( 
not (l_suppkey = l_suppkey))
+------------------PhysicalProject
+--------------------hashJoin[RIGHT_SEMI_JOIN](l2.l_orderkey = l1.l_orderkey)( 
not (l_suppkey = l_suppkey))
 ----------------------PhysicalProject
-------------------------filter((l3.l_receiptdate > l3.l_commitdate))
---------------------------PhysicalOlapScan[lineitem]
-----------------------hashJoin[INNER_JOIN](supplier.s_suppkey = l1.l_suppkey)
+------------------------PhysicalOlapScan[lineitem]
+----------------------hashJoin[RIGHT_ANTI_JOIN](l3.l_orderkey = 
l1.l_orderkey)( not (l_suppkey = l_suppkey))
 ------------------------PhysicalProject
---------------------------filter((l1.l_receiptdate > l1.l_commitdate))
+--------------------------filter((l3.l_receiptdate > l3.l_commitdate))
 ----------------------------PhysicalOlapScan[lineitem]
-------------------------PhysicalDistribute
---------------------------hashJoin[INNER_JOIN](supplier.s_nationkey = 
nation.n_nationkey)
-----------------------------PhysicalProject
-------------------------------PhysicalOlapScan[supplier]
-----------------------------PhysicalDistribute
+------------------------hashJoin[INNER_JOIN](supplier.s_suppkey = l1.l_suppkey)
+--------------------------PhysicalProject
+----------------------------filter((l1.l_receiptdate > l1.l_commitdate))
+------------------------------PhysicalOlapScan[lineitem]
+--------------------------PhysicalDistribute
+----------------------------hashJoin[INNER_JOIN](supplier.s_nationkey = 
nation.n_nationkey)
 ------------------------------PhysicalProject
---------------------------------filter((nation.n_name = 'SAUDI ARABIA'))
-----------------------------------PhysicalOlapScan[nation]
+--------------------------------PhysicalOlapScan[supplier]
+------------------------------PhysicalDistribute
+--------------------------------PhysicalProject
+----------------------------------filter((nation.n_name = 'SAUDI ARABIA'))
+------------------------------------PhysicalOlapScan[nation]
 
diff --git 
a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf13.groovy 
b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf13.groovy
index 16633d2379..4f302dd614 100644
--- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf13.groovy
+++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf13.groovy
@@ -101,6 +101,5 @@ suite("ds_rf13") {
     // def outFile = 
"regression-test/suites/nereids_tpcds_shape_sf100_p0/ddl/rf/rf.13"
     // File file = new File(outFile)
     // file.write(getRuntimeFilters(plan))
-    
-     
assertEquals("RF4[ss_store_sk->[s_store_sk],RF3[ss_sold_date_sk->[d_date_sk],RF2[ss_cdemo_sk->[cd_demo_sk],RF1[ss_hdemo_sk->[hd_demo_sk],RF0[ca_address_sk->[ss_addr_sk]",
 getRuntimeFilters(plan))
+     
assertEquals("RF4[ss_sold_date_sk->[d_date_sk],RF3[ss_store_sk->[s_store_sk],RF2[ss_cdemo_sk->[cd_demo_sk],RF1[ss_hdemo_sk->[hd_demo_sk],RF0[ca_address_sk->[ss_addr_sk]",
 getRuntimeFilters(plan))
 }
diff --git 
a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf17.groovy 
b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf17.groovy
index ee41541e83..8eece8aa39 100644
--- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf17.groovy
+++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf17.groovy
@@ -94,6 +94,6 @@ limit 100;
     // def outFile = 
"regression-test/suites/nereids_tpcds_shape_sf100_p0/ddl/rf/rf.17"
     // File file = new File(outFile)
     // file.write(getRuntimeFilters(plan))
-    
-     
assertEquals("RF9[d_date_sk->[cs_sold_date_sk],RF7[sr_customer_sk->[cs_bill_customer_sk],RF8[sr_item_sk->[cs_item_sk],RF6[s_store_sk->[ss_store_sk],RF5[i_item_sk->[ss_item_sk],RF4[d_date_sk->[sr_returned_date_sk],RF1[ss_customer_sk->[sr_customer_sk],RF2[ss_item_sk->[sr_item_sk],RF3[ss_ticket_number->[sr_ticket_number],RF0[d_date_sk->[ss_sold_date_sk]",
 getRuntimeFilters(plan))
+
+     
assertEquals("RF9[d_date_sk->[cs_sold_date_sk],RF7[cs_bill_customer_sk->[sr_customer_sk],RF8[cs_item_sk->[sr_item_sk],RF6[d_date_sk->[sr_returned_date_sk],RF3[ss_customer_sk->[sr_customer_sk],RF4[ss_item_sk->[sr_item_sk],RF5[ss_ticket_number->[sr_ticket_number],RF2[s_store_sk->[ss_store_sk],RF1[i_item_sk->[ss_item_sk],RF0[d_date_sk->[ss_sold_date_sk]",
 getRuntimeFilters(plan))
 }
diff --git 
a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf25.groovy 
b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf25.groovy
index 6fb6062931..a3b43d7cb2 100644
--- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf25.groovy
+++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf25.groovy
@@ -97,6 +97,5 @@ suite("ds_rf25") {
     // def outFile = 
"regression-test/suites/nereids_tpcds_shape_sf100_p0/ddl/rf/rf.25"
     // File file = new File(outFile)
     // file.write(getRuntimeFilters(plan))
-    
-     
assertEquals("RF9[d_date_sk->[cs_sold_date_sk],RF7[sr_customer_sk->[cs_bill_customer_sk],RF8[sr_item_sk->[cs_item_sk],RF6[s_store_sk->[ss_store_sk],RF5[i_item_sk->[ss_item_sk],RF4[d_date_sk->[sr_returned_date_sk],RF1[ss_customer_sk->[sr_customer_sk],RF2[ss_item_sk->[sr_item_sk],RF3[ss_ticket_number->[sr_ticket_number],RF0[d_date_sk->[ss_sold_date_sk]",
 getRuntimeFilters(plan))
+     
assertEquals("RF9[d_date_sk->[cs_sold_date_sk],RF7[sr_customer_sk->[cs_bill_customer_sk],RF8[sr_item_sk->[cs_item_sk],RF6[d_date_sk->[sr_returned_date_sk],RF3[ss_customer_sk->[sr_customer_sk],RF4[ss_item_sk->[sr_item_sk],RF5[ss_ticket_number->[sr_ticket_number],RF2[s_store_sk->[ss_store_sk],RF1[i_item_sk->[ss_item_sk],RF0[d_date_sk->[ss_sold_date_sk]",
 getRuntimeFilters(plan))
 }
diff --git 
a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf29.groovy 
b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf29.groovy
index 7682b105df..61a0468666 100644
--- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf29.groovy
+++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf29.groovy
@@ -96,6 +96,5 @@ suite("ds_rf29") {
     // def outFile = 
"regression-test/suites/nereids_tpcds_shape_sf100_p0/ddl/rf/rf.29"
     // File file = new File(outFile)
     // file.write(getRuntimeFilters(plan))
-    
-     
assertEquals("RF9[ss_store_sk->[s_store_sk],RF8[ss_item_sk->[i_item_sk],RF7[cs_sold_date_sk->[d_date_sk],RF5[sr_customer_sk->[cs_bill_customer_sk],RF6[sr_item_sk->[cs_item_sk],RF4[d_date_sk->[ss_sold_date_sk],RF1[sr_customer_sk->[ss_customer_sk],RF2[sr_item_sk->[ss_item_sk],RF3[sr_ticket_number->[ss_ticket_number],RF0[d_date_sk->[sr_returned_date_sk]",
 getRuntimeFilters(plan))
+     
assertEquals("RF9[d_date_sk->[cs_sold_date_sk],RF7[sr_customer_sk->[cs_bill_customer_sk],RF8[sr_item_sk->[cs_item_sk],RF6[d_date_sk->[sr_returned_date_sk],RF3[ss_customer_sk->[sr_customer_sk],RF4[ss_item_sk->[sr_item_sk],RF5[ss_ticket_number->[sr_ticket_number],RF2[s_store_sk->[ss_store_sk],RF1[i_item_sk->[ss_item_sk],RF0[d_date_sk->[ss_sold_date_sk]",
 getRuntimeFilters(plan))
 }
diff --git 
a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf40.groovy 
b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf40.groovy
index 3d01ad13f8..6aefa4541d 100644
--- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf40.groovy
+++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf40.groovy
@@ -77,6 +77,6 @@ limit 100;
     // def outFile = 
"regression-test/suites/nereids_tpcds_shape_sf100_p0/ddl/rf/rf.40"
     // File file = new File(outFile)
     // file.write(getRuntimeFilters(plan))
-    
-     
assertEquals("RF4[w_warehouse_sk->[cs_warehouse_sk],RF2[cs_order_number->[cr_order_number],RF3[cs_item_sk->[cr_item_sk],RF1[d_date_sk->[cs_sold_date_sk],RF0[i_item_sk->[cs_item_sk]",
 getRuntimeFilters(plan))
+
+     
assertEquals("RF3[cs_order_number->[cr_order_number],RF4[cs_item_sk->[cr_item_sk],RF2[cs_warehouse_sk->[w_warehouse_sk],RF1[d_date_sk->[cs_sold_date_sk],RF0[i_item_sk->[cs_item_sk]",
 getRuntimeFilters(plan))
 }
diff --git 
a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf5.groovy 
b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf5.groovy
index 34149893a5..6cac42291a 100644
--- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf5.groovy
+++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf5.groovy
@@ -177,6 +177,6 @@ suite("ds_rf5") {
     // def outFile = 
"regression-test/suites/nereids_tpcds_shape_sf100_p0/ddl/rf/rf.5"
     // File file = new File(outFile)
     // file.write(getRuntimeFilters(plan))
-    
+
      
assertEquals("RF2[s_store_sk->[ss_store_sk],RF3[s_store_sk->[sr_store_sk],RF0[d_date_sk->[ss_sold_date_sk],RF1[d_date_sk->[sr_returned_date_sk],RF6[cp_catalog_page_sk->[cs_catalog_page_sk],RF7[cp_catalog_page_sk->[cr_catalog_page_sk],RF4[d_date_sk->[cs_sold_date_sk],RF5[d_date_sk->[cr_returned_date_sk],RF12[web_site_sk->[ws_web_site_sk],RF13[web_site_sk->[ws_web_site_sk],RF10[d_date_sk->[ws_sold_date_sk],RF11[d_date_sk->[wr_returned_date_sk],RF8[wr_item_sk->[ws_item_sk],RF9[wr_order
 [...]
 }
diff --git 
a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf56.groovy 
b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf56.groovy
index 9e793e6163..ef8d218104 100644
--- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf56.groovy
+++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf56.groovy
@@ -118,6 +118,5 @@ where i_color in ('powder','green','cyan'))
     // def outFile = 
"regression-test/suites/nereids_tpcds_shape_sf100_p0/ddl/rf/rf.56"
     // File file = new File(outFile)
     // file.write(getRuntimeFilters(plan))
-    
-     
assertEquals("RF3[ca_address_sk->[ss_addr_sk],RF2[i_item_sk->[ss_item_sk],RF1[d_date_sk->[ss_sold_date_sk],RF0[i_item_id->[i_item_id],RF7[cs_bill_addr_sk->[ca_address_sk],RF6[i_item_sk->[cs_item_sk],RF5[d_date_sk->[cs_sold_date_sk],RF4[i_item_id->[i_item_id],RF11[ws_bill_addr_sk->[ca_address_sk],RF10[i_item_sk->[ws_item_sk],RF9[d_date_sk->[ws_sold_date_sk],RF8[i_item_id->[i_item_id]",
 getRuntimeFilters(plan))
+    
assertEquals("RF3[ca_address_sk->[ss_addr_sk],RF2[i_item_sk->[ss_item_sk],RF1[d_date_sk->[ss_sold_date_sk],RF0[i_item_id->[i_item_id],RF7[cs_bill_addr_sk->[ca_address_sk],RF6[i_item_sk->[cs_item_sk],RF5[d_date_sk->[cs_sold_date_sk],RF4[i_item_id->[i_item_id],RF11[ws_bill_addr_sk->[ca_address_sk],RF10[i_item_sk->[ws_item_sk],RF9[d_date_sk->[ws_sold_date_sk],RF8[i_item_id->[i_item_id]",
 getRuntimeFilters(plan))
 }
diff --git 
a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf59.groovy 
b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf59.groovy
index fe48dbf558..e97af073f2 100644
--- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf59.groovy
+++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf59.groovy
@@ -93,6 +93,5 @@ limit 100;
     // def outFile = 
"regression-test/suites/nereids_tpcds_shape_sf100_p0/ddl/rf/rf.59"
     // File file = new File(outFile)
     // file.write(getRuntimeFilters(plan))
-    
-     
assertEquals("RF0[d_date_sk->[ss_sold_date_sk],RF4[s_store_sk->[ss_store_sk],RF3[d_week_seq->[d_week_seq],RF2[s_store_sk->[ss_store_sk],RF1[d_week_seq->[d_week_seq]",
 getRuntimeFilters(plan))
+     
assertEquals("RF0[d_date_sk->[ss_sold_date_sk],RF4[s_store_id2->[s_store_id],RF5[s_store_sk->[ss_store_sk],RF3[s_store_sk->[ss_store_sk],RF2[d_week_seq->[d_week_seq],RF1[d_week_seq->[d_week_seq]",
 getRuntimeFilters(plan))
 }
diff --git 
a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf61.groovy 
b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf61.groovy
index d416b6da84..da153785b4 100644
--- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf61.groovy
+++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf61.groovy
@@ -93,6 +93,6 @@ limit 100;
     // def outFile = 
"regression-test/suites/nereids_tpcds_shape_sf100_p0/ddl/rf/rf.61"
     // File file = new File(outFile)
     // file.write(getRuntimeFilters(plan))
-    
-     
assertEquals("RF10[c_current_addr_sk->[ca_address_sk],RF9[ss_customer_sk->[c_customer_sk],RF8[ss_item_sk->[i_item_sk],RF7[p_promo_sk->[ss_promo_sk],RF6[d_date_sk->[ss_sold_date_sk],RF5[s_store_sk->[ss_store_sk],RF4[c_current_addr_sk->[ca_address_sk],RF3[ss_customer_sk->[c_customer_sk],RF2[ss_item_sk->[i_item_sk],RF1[d_date_sk->[ss_sold_date_sk],RF0[s_store_sk->[ss_store_sk]",
 getRuntimeFilters(plan))
+
+     
assertEquals("RF10[ss_item_sk->[i_item_sk],RF9[c_current_addr_sk->[ca_address_sk],RF8[ss_customer_sk->[c_customer_sk],RF7[p_promo_sk->[ss_promo_sk],RF6[d_date_sk->[ss_sold_date_sk],RF5[s_store_sk->[ss_store_sk],RF4[ss_item_sk->[i_item_sk],RF3[c_current_addr_sk->[ca_address_sk],RF2[ss_customer_sk->[c_customer_sk],RF1[d_date_sk->[ss_sold_date_sk],RF0[s_store_sk->[ss_store_sk]",
 getRuntimeFilters(plan))
 }
diff --git 
a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf72.groovy 
b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf72.groovy
index 146e4dff49..a17c335617 100644
--- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf72.groovy
+++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf72.groovy
@@ -78,6 +78,6 @@ limit 100;
     // def outFile = 
"regression-test/suites/nereids_tpcds_shape_sf100_p0/ddl/rf/rf.72"
     // File file = new File(outFile)
     // file.write(getRuntimeFilters(plan))
-    
-     
assertEquals("RF9[cs_item_sk->[cr_item_sk],RF10[cs_order_number->[cr_order_number],RF8[w_warehouse_sk->[inv_warehouse_sk],RF7[cs_item_sk->[i_item_sk],RF5[d_week_seq->[d_week_seq],RF6[d_date_sk->[inv_date_sk],RF4[cs_item_sk->[inv_item_sk],RF3[d_date_sk->[cs_ship_date_sk],RF2[cd_demo_sk->[cs_bill_cdemo_sk],RF1[d_date_sk->[cs_sold_date_sk],RF0[hd_demo_sk->[cs_bill_hdemo_sk]",
 getRuntimeFilters(plan))
+
+     
assertEquals("RF8[w_warehouse_sk->[inv_warehouse_sk],RF6[d_week_seq->[d_week_seq],RF7[d_date_sk->[inv_date_sk],RF5[cs_item_sk->[inv_item_sk],RF4[i_item_sk->[cs_item_sk],RF3[d_date_sk->[cs_ship_date_sk],RF2[cd_demo_sk->[cs_bill_cdemo_sk],RF1[d_date_sk->[cs_sold_date_sk],RF0[hd_demo_sk->[cs_bill_hdemo_sk]",
 getRuntimeFilters(plan))
 }
diff --git 
a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf85.groovy 
b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf85.groovy
index ead22eeae9..b716a2a89d 100644
--- a/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf85.groovy
+++ b/regression-test/suites/nereids_tpcds_shape_sf100_p0/rf/ds_rf85.groovy
@@ -133,6 +133,6 @@ limit 100;
     // def outFile = 
"regression-test/suites/nereids_tpcds_shape_sf100_p0/ddl/rf/rf.85"
     // File file = new File(outFile)
     // file.write(getRuntimeFilters(plan))
-    
-     
assertEquals("RF7[cd_marital_status->[cd_marital_status],RF8[cd_education_status->[cd_education_status],RF9[wr_returning_cdemo_sk->[cd_demo_sk],RF6[ws_web_page_sk->[wp_web_page_sk],RF5[wr_refunded_cdemo_sk->[cd_demo_sk],RF4[wr_reason_sk->[r_reason_sk],RF3[wr_refunded_addr_sk->[ca_address_sk],RF1[ws_item_sk->[wr_item_sk],RF2[ws_order_number->[wr_order_number],RF0[d_date_sk->[ws_sold_date_sk]",
 getRuntimeFilters(plan))
+
+     
assertEquals("RF9[wr_reason_sk->[r_reason_sk],RF8[ws_web_page_sk->[wp_web_page_sk],RF5[cd_marital_status->[cd_marital_status],RF6[cd_education_status->[cd_education_status],RF7[wr_returning_cdemo_sk->[cd_demo_sk],RF4[wr_refunded_cdemo_sk->[cd_demo_sk],RF3[ca_address_sk->[wr_refunded_addr_sk],RF1[ws_item_sk->[wr_item_sk],RF2[ws_order_number->[wr_order_number],RF0[d_date_sk->[ws_sold_date_sk]",
 getRuntimeFilters(plan))
 }
diff --git 
a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf/h_rf2.groovy 
b/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf/h_rf2.groovy
index b488d04dac..6f04945edc 100644
--- a/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf/h_rf2.groovy
+++ b/regression-test/suites/nereids_tpch_shape_sf1000_p0/rf/h_rf2.groovy
@@ -94,5 +94,5 @@ limit 100;
     // def outFile = 
"regression-test/suites/nereids_tpch_shape_sf1000_p0/ddl/rf/rf.2"
     // File file = new File(outFile)
     // file.write(getRuntimeFilters(plan))
-    
assertEquals("RF3[ps_suppkey->[s_suppkey],RF2[n_nationkey->[s_nationkey],RF1[r_regionkey->[n_regionkey],RF0[p_partkey->[ps_partkey]",
 getRuntimeFilters(plan))
+    
assertEquals("RF3[s_suppkey->[ps_suppkey],RF2[p_partkey->[ps_partkey],RF1[n_nationkey->[s_nationkey],RF0[r_regionkey->[n_regionkey]",
 getRuntimeFilters(plan))
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to