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

huajianlan 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 6eb3eace405 [fix](test) fix test which conflict between #37219 and 
#37951 (#38157)
6eb3eace405 is described below

commit 6eb3eace405b7b34bdd1cdf7e82ce0b012117a76
Author: 924060929 <924060...@qq.com>
AuthorDate: Sat Jul 20 00:24:03 2024 +0800

    [fix](test) fix test which conflict between #37219 and #37951 (#38157)
    
    fix test which conflict between #37219 and #37951
---
 .../tpcds_sf100/noStatsRfPrune/query14.out         |  8 ++--
 .../tpcds_sf100/noStatsRfPrune/query58.out         | 18 ++++----
 .../tpcds_sf100/noStatsRfPrune/query95.out         | 28 ++++++------
 .../tpcds_sf100/no_stats_shape/query14.out         |  8 ++--
 .../tpcds_sf100/no_stats_shape/query58.out         | 24 +++++------
 .../tpcds_sf100/no_stats_shape/query95.out         | 28 ++++++------
 .../new_shapes_p0/tpcds_sf100/rf_prune/query14.out | 12 +++---
 .../new_shapes_p0/tpcds_sf100/rf_prune/query16.out |  4 +-
 .../new_shapes_p0/tpcds_sf100/rf_prune/query23.out | 12 +++---
 .../new_shapes_p0/tpcds_sf100/rf_prune/query33.out | 34 +++++++--------
 .../new_shapes_p0/tpcds_sf100/rf_prune/query35.out | 50 +++++++++++-----------
 .../new_shapes_p0/tpcds_sf100/rf_prune/query69.out | 42 +++++++++---------
 .../new_shapes_p0/tpcds_sf100/rf_prune/query94.out |  4 +-
 .../new_shapes_p0/tpcds_sf100/shape/query14.out    | 14 +++---
 .../new_shapes_p0/tpcds_sf100/shape/query16.out    |  4 +-
 .../new_shapes_p0/tpcds_sf100/shape/query23.out    | 12 +++---
 .../new_shapes_p0/tpcds_sf100/shape/query33.out    | 26 +++++------
 .../new_shapes_p0/tpcds_sf100/shape/query35.out    | 50 +++++++++++-----------
 .../new_shapes_p0/tpcds_sf100/shape/query69.out    | 42 +++++++++---------
 .../new_shapes_p0/tpcds_sf100/shape/query94.out    |  4 +-
 .../new_shapes_p0/tpcds_sf1000/shape/query23.out   | 12 +++---
 .../new_shapes_p0/tpcds_sf1000/shape/query33.out   | 26 +++++------
 .../new_shapes_p0/tpcds_sf1000/shape/query35.out   | 44 +++++++++----------
 .../new_shapes_p0/tpcds_sf1000/shape/query51.out   |  8 ++--
 .../new_shapes_p0/tpcds_sf1000/shape/query58.out   | 16 +++----
 .../new_shapes_p0/tpcds_sf1000/shape/query69.out   | 42 +++++++++---------
 .../new_shapes_p0/tpcds_sf1000/shape/query83.out   | 16 +++----
 .../new_shapes_p0/tpch_sf1000/rf_prune/q16.out     |  2 +-
 .../data/new_shapes_p0/tpch_sf1000/shape/q16.out   |  2 +-
 29 files changed, 296 insertions(+), 296 deletions(-)

diff --git 
a/regression-test/data/new_shapes_p0/tpcds_sf100/noStatsRfPrune/query14.out 
b/regression-test/data/new_shapes_p0/tpcds_sf100/noStatsRfPrune/query14.out
index fdf405c4b80..bde878b33ca 100644
--- a/regression-test/data/new_shapes_p0/tpcds_sf100/noStatsRfPrune/query14.out
+++ b/regression-test/data/new_shapes_p0/tpcds_sf100/noStatsRfPrune/query14.out
@@ -138,16 +138,16 @@ PhysicalCteAnchor ( cteId=CTEId#0 )
 --------------------------------PhysicalDistribute[DistributionSpecHash]
 ----------------------------------hashAgg[LOCAL]
 ------------------------------------PhysicalProject
---------------------------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk)) 
otherCondition=() build RFs:RF17 d_date_sk->[ws_sold_date_sk]
+--------------------------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk)) 
otherCondition=() build RFs:RF18 d_date_sk->[ws_sold_date_sk]
 ----------------------------------------PhysicalProject
-------------------------------------------hashJoin[LEFT_SEMI_JOIN 
bucketShuffle] hashCondition=((web_sales.ws_item_sk = cross_items.ss_item_sk)) 
otherCondition=()
+------------------------------------------hashJoin[RIGHT_SEMI_JOIN 
shuffleBucket] hashCondition=((web_sales.ws_item_sk = cross_items.ss_item_sk)) 
otherCondition=() build RFs:RF17 ws_item_sk->[ss_item_sk]
+--------------------------------------------PhysicalCteConsumer ( 
cteId=CTEId#0 ) apply RFs: RF17
 --------------------------------------------PhysicalProject
 ----------------------------------------------hashJoin[INNER_JOIN 
shuffleBucket] hashCondition=((web_sales.ws_item_sk = item.i_item_sk)) 
otherCondition=()
 ------------------------------------------------PhysicalProject
---------------------------------------------------PhysicalOlapScan[web_sales] 
apply RFs: RF17
+--------------------------------------------------PhysicalOlapScan[web_sales] 
apply RFs: RF18
 ------------------------------------------------PhysicalProject
 --------------------------------------------------PhysicalOlapScan[item]
---------------------------------------------PhysicalCteConsumer ( 
cteId=CTEId#0 )
 ----------------------------------------PhysicalProject
 ------------------------------------------filter((date_dim.d_moy = 11) and 
(date_dim.d_year = 2002))
 --------------------------------------------PhysicalOlapScan[date_dim]
diff --git 
a/regression-test/data/new_shapes_p0/tpcds_sf100/noStatsRfPrune/query58.out 
b/regression-test/data/new_shapes_p0/tpcds_sf100/noStatsRfPrune/query58.out
index 29925634b2a..a154c3b953b 100644
--- a/regression-test/data/new_shapes_p0/tpcds_sf100/noStatsRfPrune/query58.out
+++ b/regression-test/data/new_shapes_p0/tpcds_sf100/noStatsRfPrune/query58.out
@@ -21,9 +21,7 @@ PhysicalResultSink
 --------------------------------PhysicalProject
 ----------------------------------PhysicalOlapScan[item] apply RFs: RF12 RF13
 ----------------------------PhysicalProject
-------------------------------hashJoin[LEFT_SEMI_JOIN shuffle] 
hashCondition=((date_dim.d_date = date_dim.d_date)) otherCondition=() build 
RFs:RF9 d_date->[d_date]
---------------------------------PhysicalProject
-----------------------------------PhysicalOlapScan[date_dim] apply RFs: RF9
+------------------------------hashJoin[RIGHT_SEMI_JOIN shuffle] 
hashCondition=((date_dim.d_date = date_dim.d_date)) otherCondition=()
 --------------------------------PhysicalProject
 ----------------------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((date_dim.d_week_seq = date_dim.d_week_seq)) otherCondition=() 
build RFs:RF8 d_week_seq->[d_week_seq]
 ------------------------------------PhysicalProject
@@ -33,6 +31,8 @@ PhysicalResultSink
 ----------------------------------------PhysicalProject
 ------------------------------------------filter((date_dim.d_date = 
'2001-03-24'))
 --------------------------------------------PhysicalOlapScan[date_dim]
+--------------------------------PhysicalProject
+----------------------------------PhysicalOlapScan[date_dim]
 ----------------PhysicalProject
 ------------------hashAgg[GLOBAL]
 --------------------PhysicalDistribute[DistributionSpecHash]
@@ -46,9 +46,7 @@ PhysicalResultSink
 --------------------------------PhysicalProject
 ----------------------------------PhysicalOlapScan[item] apply RFs: RF13
 ----------------------------PhysicalProject
-------------------------------hashJoin[LEFT_SEMI_JOIN shuffle] 
hashCondition=((date_dim.d_date = date_dim.d_date)) otherCondition=() build 
RFs:RF5 d_date->[d_date]
---------------------------------PhysicalProject
-----------------------------------PhysicalOlapScan[date_dim] apply RFs: RF5
+------------------------------hashJoin[RIGHT_SEMI_JOIN shuffle] 
hashCondition=((date_dim.d_date = date_dim.d_date)) otherCondition=()
 --------------------------------PhysicalProject
 ----------------------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((date_dim.d_week_seq = date_dim.d_week_seq)) otherCondition=() 
build RFs:RF4 d_week_seq->[d_week_seq]
 ------------------------------------PhysicalProject
@@ -58,6 +56,8 @@ PhysicalResultSink
 ----------------------------------------PhysicalProject
 ------------------------------------------filter((date_dim.d_date = 
'2001-03-24'))
 --------------------------------------------PhysicalOlapScan[date_dim]
+--------------------------------PhysicalProject
+----------------------------------PhysicalOlapScan[date_dim]
 ------------PhysicalProject
 --------------hashAgg[GLOBAL]
 ----------------PhysicalDistribute[DistributionSpecHash]
@@ -71,9 +71,7 @@ PhysicalResultSink
 ----------------------------PhysicalProject
 ------------------------------PhysicalOlapScan[item]
 ------------------------PhysicalProject
---------------------------hashJoin[LEFT_SEMI_JOIN shuffle] 
hashCondition=((date_dim.d_date = date_dim.d_date)) otherCondition=() build 
RFs:RF1 d_date->[d_date]
-----------------------------PhysicalProject
-------------------------------PhysicalOlapScan[date_dim] apply RFs: RF1
+--------------------------hashJoin[RIGHT_SEMI_JOIN shuffle] 
hashCondition=((date_dim.d_date = date_dim.d_date)) otherCondition=()
 ----------------------------PhysicalProject
 ------------------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((date_dim.d_week_seq = date_dim.d_week_seq)) otherCondition=() 
build RFs:RF0 d_week_seq->[d_week_seq]
 --------------------------------PhysicalProject
@@ -83,4 +81,6 @@ PhysicalResultSink
 ------------------------------------PhysicalProject
 --------------------------------------filter((date_dim.d_date = '2001-03-24'))
 ----------------------------------------PhysicalOlapScan[date_dim]
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[date_dim]
 
diff --git 
a/regression-test/data/new_shapes_p0/tpcds_sf100/noStatsRfPrune/query95.out 
b/regression-test/data/new_shapes_p0/tpcds_sf100/noStatsRfPrune/query95.out
index 313d625fa34..fce09b1b604 100644
--- a/regression-test/data/new_shapes_p0/tpcds_sf100/noStatsRfPrune/query95.out
+++ b/regression-test/data/new_shapes_p0/tpcds_sf100/noStatsRfPrune/query95.out
@@ -5,9 +5,9 @@ PhysicalCteAnchor ( cteId=CTEId#0 )
 ----PhysicalProject
 ------hashJoin[INNER_JOIN shuffle] hashCondition=((ws1.ws_order_number = 
ws2.ws_order_number)) otherCondition=(( not (ws_warehouse_sk = 
ws_warehouse_sk))) build RFs:RF0 ws_order_number->[ws_order_number]
 --------PhysicalProject
-----------PhysicalOlapScan[web_sales] apply RFs: RF0 RF6
+----------PhysicalOlapScan[web_sales] apply RFs: RF0 RF7
 --------PhysicalProject
-----------PhysicalOlapScan[web_sales] apply RFs: RF6
+----------PhysicalOlapScan[web_sales] apply RFs: RF7
 --PhysicalResultSink
 ----PhysicalTopN[GATHER_SORT]
 ------hashAgg[DISTINCT_GLOBAL]
@@ -16,21 +16,21 @@ PhysicalCteAnchor ( cteId=CTEId#0 )
 ------------hashAgg[GLOBAL]
 --------------hashAgg[LOCAL]
 ----------------PhysicalProject
-------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((ws1.ws_web_site_sk = web_site.web_site_sk)) otherCondition=() 
build RFs:RF5 web_site_sk->[ws_web_site_sk]
+------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((ws1.ws_web_site_sk = web_site.web_site_sk)) otherCondition=() 
build RFs:RF6 web_site_sk->[ws_web_site_sk]
 --------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((ws1.ws_ship_addr_sk = customer_address.ca_address_sk)) 
otherCondition=() build RFs:RF4 ca_address_sk->[ws_ship_addr_sk]
+----------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((ws1.ws_ship_addr_sk = customer_address.ca_address_sk)) 
otherCondition=() build RFs:RF5 ca_address_sk->[ws_ship_addr_sk]
 ------------------------PhysicalProject
---------------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((ws1.ws_ship_date_sk = date_dim.d_date_sk)) otherCondition=() 
build RFs:RF3 d_date_sk->[ws_ship_date_sk]
-----------------------------hashJoin[LEFT_SEMI_JOIN colocated] 
hashCondition=((ws1.ws_order_number = web_returns.wr_order_number)) 
otherCondition=()
-------------------------------hashJoin[LEFT_SEMI_JOIN shuffle] 
hashCondition=((ws1.ws_order_number = ws_wh.ws_order_number)) otherCondition=()
+--------------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((ws1.ws_ship_date_sk = date_dim.d_date_sk)) otherCondition=() 
build RFs:RF4 d_date_sk->[ws_ship_date_sk]
+----------------------------hashJoin[RIGHT_SEMI_JOIN shuffleBucket] 
hashCondition=((ws1.ws_order_number = ws_wh.ws_order_number)) otherCondition=() 
build RFs:RF3 ws_order_number->[ws_order_number]
+------------------------------PhysicalCteConsumer ( cteId=CTEId#0 ) apply RFs: 
RF3
+------------------------------hashJoin[RIGHT_SEMI_JOIN bucketShuffle] 
hashCondition=((ws1.ws_order_number = web_returns.wr_order_number)) 
otherCondition=() build RFs:RF2 ws_order_number->[wr_order_number];RF7 
ws_order_number->[ws_order_number,ws_order_number]
 --------------------------------PhysicalProject
-----------------------------------PhysicalOlapScan[web_sales] apply RFs: RF3 
RF4 RF5
---------------------------------PhysicalCteConsumer ( cteId=CTEId#0 )
-------------------------------PhysicalProject
---------------------------------hashJoin[INNER_JOIN shuffle] 
hashCondition=((web_returns.wr_order_number = ws_wh.ws_order_number)) 
otherCondition=() build RFs:RF6 wr_order_number->[ws_order_number]
-----------------------------------PhysicalCteConsumer ( cteId=CTEId#0 )
-----------------------------------PhysicalProject
-------------------------------------PhysicalOlapScan[web_returns]
+----------------------------------hashJoin[INNER_JOIN shuffle] 
hashCondition=((web_returns.wr_order_number = ws_wh.ws_order_number)) 
otherCondition=()
+------------------------------------PhysicalCteConsumer ( cteId=CTEId#0 )
+------------------------------------PhysicalProject
+--------------------------------------PhysicalOlapScan[web_returns] apply RFs: 
RF2
+--------------------------------PhysicalProject
+----------------------------------PhysicalOlapScan[web_sales] apply RFs: RF4 
RF5 RF6
 ----------------------------PhysicalProject
 ------------------------------filter((date_dim.d_date <= '1999-04-02') and 
(date_dim.d_date >= '1999-02-01'))
 --------------------------------PhysicalOlapScan[date_dim]
diff --git 
a/regression-test/data/new_shapes_p0/tpcds_sf100/no_stats_shape/query14.out 
b/regression-test/data/new_shapes_p0/tpcds_sf100/no_stats_shape/query14.out
index 4ce39e58018..f12ae129c06 100644
--- a/regression-test/data/new_shapes_p0/tpcds_sf100/no_stats_shape/query14.out
+++ b/regression-test/data/new_shapes_p0/tpcds_sf100/no_stats_shape/query14.out
@@ -138,16 +138,16 @@ PhysicalCteAnchor ( cteId=CTEId#0 )
 --------------------------------PhysicalDistribute[DistributionSpecHash]
 ----------------------------------hashAgg[LOCAL]
 ------------------------------------PhysicalProject
---------------------------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk)) 
otherCondition=() build RFs:RF17 d_date_sk->[ws_sold_date_sk]
+--------------------------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk)) 
otherCondition=() build RFs:RF18 d_date_sk->[ws_sold_date_sk]
 ----------------------------------------PhysicalProject
-------------------------------------------hashJoin[LEFT_SEMI_JOIN 
bucketShuffle] hashCondition=((web_sales.ws_item_sk = cross_items.ss_item_sk)) 
otherCondition=()
+------------------------------------------hashJoin[RIGHT_SEMI_JOIN 
shuffleBucket] hashCondition=((web_sales.ws_item_sk = cross_items.ss_item_sk)) 
otherCondition=() build RFs:RF17 ws_item_sk->[ss_item_sk]
+--------------------------------------------PhysicalCteConsumer ( 
cteId=CTEId#0 ) apply RFs: RF17
 --------------------------------------------PhysicalProject
 ----------------------------------------------hashJoin[INNER_JOIN 
shuffleBucket] hashCondition=((web_sales.ws_item_sk = item.i_item_sk)) 
otherCondition=() build RFs:RF16 i_item_sk->[ws_item_sk]
 ------------------------------------------------PhysicalProject
---------------------------------------------------PhysicalOlapScan[web_sales] 
apply RFs: RF16 RF17
+--------------------------------------------------PhysicalOlapScan[web_sales] 
apply RFs: RF16 RF18
 ------------------------------------------------PhysicalProject
 --------------------------------------------------PhysicalOlapScan[item]
---------------------------------------------PhysicalCteConsumer ( 
cteId=CTEId#0 )
 ----------------------------------------PhysicalProject
 ------------------------------------------filter((date_dim.d_moy = 11) and 
(date_dim.d_year = 2002))
 --------------------------------------------PhysicalOlapScan[date_dim]
diff --git 
a/regression-test/data/new_shapes_p0/tpcds_sf100/no_stats_shape/query58.out 
b/regression-test/data/new_shapes_p0/tpcds_sf100/no_stats_shape/query58.out
index fcb11cadc05..cd737bad3f6 100644
--- a/regression-test/data/new_shapes_p0/tpcds_sf100/no_stats_shape/query58.out
+++ b/regression-test/data/new_shapes_p0/tpcds_sf100/no_stats_shape/query58.out
@@ -21,18 +21,18 @@ PhysicalResultSink
 --------------------------------PhysicalProject
 ----------------------------------PhysicalOlapScan[item] apply RFs: RF12 RF13
 ----------------------------PhysicalProject
-------------------------------hashJoin[LEFT_SEMI_JOIN shuffle] 
hashCondition=((date_dim.d_date = date_dim.d_date)) otherCondition=() build 
RFs:RF9 d_date->[d_date]
---------------------------------PhysicalProject
-----------------------------------PhysicalOlapScan[date_dim] apply RFs: RF9
+------------------------------hashJoin[RIGHT_SEMI_JOIN shuffle] 
hashCondition=((date_dim.d_date = date_dim.d_date)) otherCondition=() build 
RFs:RF9 d_date->[d_date]
 --------------------------------PhysicalProject
 ----------------------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((date_dim.d_week_seq = date_dim.d_week_seq)) otherCondition=() 
build RFs:RF8 d_week_seq->[d_week_seq]
 ------------------------------------PhysicalProject
---------------------------------------PhysicalOlapScan[date_dim] apply RFs: RF8
+--------------------------------------PhysicalOlapScan[date_dim] apply RFs: 
RF8 RF9
 ------------------------------------PhysicalAssertNumRows
 
--------------------------------------PhysicalDistribute[DistributionSpecGather]
 ----------------------------------------PhysicalProject
 ------------------------------------------filter((date_dim.d_date = 
'2001-03-24'))
 --------------------------------------------PhysicalOlapScan[date_dim]
+--------------------------------PhysicalProject
+----------------------------------PhysicalOlapScan[date_dim]
 ----------------PhysicalProject
 ------------------hashAgg[GLOBAL]
 --------------------PhysicalDistribute[DistributionSpecHash]
@@ -46,18 +46,18 @@ PhysicalResultSink
 --------------------------------PhysicalProject
 ----------------------------------PhysicalOlapScan[item] apply RFs: RF13
 ----------------------------PhysicalProject
-------------------------------hashJoin[LEFT_SEMI_JOIN shuffle] 
hashCondition=((date_dim.d_date = date_dim.d_date)) otherCondition=() build 
RFs:RF5 d_date->[d_date]
---------------------------------PhysicalProject
-----------------------------------PhysicalOlapScan[date_dim] apply RFs: RF5
+------------------------------hashJoin[RIGHT_SEMI_JOIN shuffle] 
hashCondition=((date_dim.d_date = date_dim.d_date)) otherCondition=() build 
RFs:RF5 d_date->[d_date]
 --------------------------------PhysicalProject
 ----------------------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((date_dim.d_week_seq = date_dim.d_week_seq)) otherCondition=() 
build RFs:RF4 d_week_seq->[d_week_seq]
 ------------------------------------PhysicalProject
---------------------------------------PhysicalOlapScan[date_dim] apply RFs: RF4
+--------------------------------------PhysicalOlapScan[date_dim] apply RFs: 
RF4 RF5
 ------------------------------------PhysicalAssertNumRows
 
--------------------------------------PhysicalDistribute[DistributionSpecGather]
 ----------------------------------------PhysicalProject
 ------------------------------------------filter((date_dim.d_date = 
'2001-03-24'))
 --------------------------------------------PhysicalOlapScan[date_dim]
+--------------------------------PhysicalProject
+----------------------------------PhysicalOlapScan[date_dim]
 ------------PhysicalProject
 --------------hashAgg[GLOBAL]
 ----------------PhysicalDistribute[DistributionSpecHash]
@@ -71,16 +71,16 @@ PhysicalResultSink
 ----------------------------PhysicalProject
 ------------------------------PhysicalOlapScan[item]
 ------------------------PhysicalProject
---------------------------hashJoin[LEFT_SEMI_JOIN shuffle] 
hashCondition=((date_dim.d_date = date_dim.d_date)) otherCondition=() build 
RFs:RF1 d_date->[d_date]
-----------------------------PhysicalProject
-------------------------------PhysicalOlapScan[date_dim] apply RFs: RF1
+--------------------------hashJoin[RIGHT_SEMI_JOIN shuffle] 
hashCondition=((date_dim.d_date = date_dim.d_date)) otherCondition=() build 
RFs:RF1 d_date->[d_date]
 ----------------------------PhysicalProject
 ------------------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((date_dim.d_week_seq = date_dim.d_week_seq)) otherCondition=() 
build RFs:RF0 d_week_seq->[d_week_seq]
 --------------------------------PhysicalProject
-----------------------------------PhysicalOlapScan[date_dim] apply RFs: RF0
+----------------------------------PhysicalOlapScan[date_dim] apply RFs: RF0 RF1
 --------------------------------PhysicalAssertNumRows
 ----------------------------------PhysicalDistribute[DistributionSpecGather]
 ------------------------------------PhysicalProject
 --------------------------------------filter((date_dim.d_date = '2001-03-24'))
 ----------------------------------------PhysicalOlapScan[date_dim]
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[date_dim]
 
diff --git 
a/regression-test/data/new_shapes_p0/tpcds_sf100/no_stats_shape/query95.out 
b/regression-test/data/new_shapes_p0/tpcds_sf100/no_stats_shape/query95.out
index 8486403dba9..aaaba243279 100644
--- a/regression-test/data/new_shapes_p0/tpcds_sf100/no_stats_shape/query95.out
+++ b/regression-test/data/new_shapes_p0/tpcds_sf100/no_stats_shape/query95.out
@@ -5,9 +5,9 @@ PhysicalCteAnchor ( cteId=CTEId#0 )
 ----PhysicalProject
 ------hashJoin[INNER_JOIN shuffle] hashCondition=((ws1.ws_order_number = 
ws2.ws_order_number)) otherCondition=(( not (ws_warehouse_sk = 
ws_warehouse_sk))) build RFs:RF0 ws_order_number->[ws_order_number];RF1 
ws_order_number->[ws_order_number]
 --------PhysicalProject
-----------PhysicalOlapScan[web_sales] apply RFs: RF0 RF1 RF12 RF13
+----------PhysicalOlapScan[web_sales] apply RFs: RF0 RF1 RF14 RF15
 --------PhysicalProject
-----------PhysicalOlapScan[web_sales] apply RFs: RF12 RF13
+----------PhysicalOlapScan[web_sales] apply RFs: RF14 RF15
 --PhysicalResultSink
 ----PhysicalTopN[GATHER_SORT]
 ------hashAgg[DISTINCT_GLOBAL]
@@ -16,21 +16,21 @@ PhysicalCteAnchor ( cteId=CTEId#0 )
 ------------hashAgg[GLOBAL]
 --------------hashAgg[LOCAL]
 ----------------PhysicalProject
-------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((ws1.ws_web_site_sk = web_site.web_site_sk)) otherCondition=() 
build RFs:RF10 web_site_sk->[ws_web_site_sk];RF11 web_site_sk->[ws_web_site_sk]
+------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((ws1.ws_web_site_sk = web_site.web_site_sk)) otherCondition=() 
build RFs:RF12 web_site_sk->[ws_web_site_sk];RF13 web_site_sk->[ws_web_site_sk]
 --------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((ws1.ws_ship_addr_sk = customer_address.ca_address_sk)) 
otherCondition=() build RFs:RF8 ca_address_sk->[ws_ship_addr_sk];RF9 
ca_address_sk->[ws_ship_addr_sk]
+----------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((ws1.ws_ship_addr_sk = customer_address.ca_address_sk)) 
otherCondition=() build RFs:RF10 ca_address_sk->[ws_ship_addr_sk];RF11 
ca_address_sk->[ws_ship_addr_sk]
 ------------------------PhysicalProject
---------------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((ws1.ws_ship_date_sk = date_dim.d_date_sk)) otherCondition=() 
build RFs:RF6 d_date_sk->[ws_ship_date_sk];RF7 d_date_sk->[ws_ship_date_sk]
-----------------------------hashJoin[LEFT_SEMI_JOIN colocated] 
hashCondition=((ws1.ws_order_number = web_returns.wr_order_number)) 
otherCondition=() build RFs:RF4 
wr_order_number->[ws_order_number,ws_order_number];RF5 
wr_order_number->[ws_order_number,ws_order_number]
-------------------------------hashJoin[LEFT_SEMI_JOIN shuffle] 
hashCondition=((ws1.ws_order_number = ws_wh.ws_order_number)) otherCondition=()
+--------------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((ws1.ws_ship_date_sk = date_dim.d_date_sk)) otherCondition=() 
build RFs:RF8 d_date_sk->[ws_ship_date_sk];RF9 d_date_sk->[ws_ship_date_sk]
+----------------------------hashJoin[RIGHT_SEMI_JOIN shuffleBucket] 
hashCondition=((ws1.ws_order_number = ws_wh.ws_order_number)) otherCondition=() 
build RFs:RF6 ws_order_number->[ws_order_number];RF7 
ws_order_number->[ws_order_number]
+------------------------------PhysicalCteConsumer ( cteId=CTEId#0 ) apply RFs: 
RF6 RF7
+------------------------------hashJoin[RIGHT_SEMI_JOIN bucketShuffle] 
hashCondition=((ws1.ws_order_number = web_returns.wr_order_number)) 
otherCondition=() build RFs:RF4 ws_order_number->[wr_order_number];RF5 
ws_order_number->[wr_order_number];RF14 
ws_order_number->[ws_order_number,ws_order_number];RF15 
ws_order_number->[ws_order_number,ws_order_number]
 --------------------------------PhysicalProject
-----------------------------------PhysicalOlapScan[web_sales] apply RFs: RF4 
RF5 RF6 RF7 RF8 RF9 RF10 RF11
---------------------------------PhysicalCteConsumer ( cteId=CTEId#0 ) apply 
RFs: RF4 RF5
-------------------------------PhysicalProject
---------------------------------hashJoin[INNER_JOIN shuffle] 
hashCondition=((web_returns.wr_order_number = ws_wh.ws_order_number)) 
otherCondition=() build RFs:RF12 
wr_order_number->[ws_order_number,ws_order_number];RF13 
wr_order_number->[ws_order_number,ws_order_number]
-----------------------------------PhysicalCteConsumer ( cteId=CTEId#0 )
-----------------------------------PhysicalProject
-------------------------------------PhysicalOlapScan[web_returns]
+----------------------------------hashJoin[INNER_JOIN shuffle] 
hashCondition=((web_returns.wr_order_number = ws_wh.ws_order_number)) 
otherCondition=() build RFs:RF2 wr_order_number->[ws_order_number];RF3 
wr_order_number->[ws_order_number]
+------------------------------------PhysicalCteConsumer ( cteId=CTEId#0 ) 
apply RFs: RF2 RF3
+------------------------------------PhysicalProject
+--------------------------------------PhysicalOlapScan[web_returns] apply RFs: 
RF4 RF5
+--------------------------------PhysicalProject
+----------------------------------PhysicalOlapScan[web_sales] apply RFs: RF8 
RF9 RF10 RF11 RF12 RF13
 ----------------------------PhysicalProject
 ------------------------------filter((date_dim.d_date <= '1999-04-02') and 
(date_dim.d_date >= '1999-02-01'))
 --------------------------------PhysicalOlapScan[date_dim]
diff --git 
a/regression-test/data/new_shapes_p0/tpcds_sf100/rf_prune/query14.out 
b/regression-test/data/new_shapes_p0/tpcds_sf100/rf_prune/query14.out
index 5acd0cf9cae..5e299e48a4a 100644
--- a/regression-test/data/new_shapes_p0/tpcds_sf100/rf_prune/query14.out
+++ b/regression-test/data/new_shapes_p0/tpcds_sf100/rf_prune/query14.out
@@ -120,8 +120,7 @@ PhysicalCteAnchor ( cteId=CTEId#0 )
 --------------------------------PhysicalDistribute[DistributionSpecHash]
 ----------------------------------hashAgg[LOCAL]
 ------------------------------------PhysicalProject
---------------------------------------hashJoin[RIGHT_SEMI_JOIN shuffleBucket] 
hashCondition=((catalog_sales.cs_item_sk = cross_items.ss_item_sk)) 
otherCondition=() build RFs:RF16 cs_item_sk->[ss_item_sk]
-----------------------------------------PhysicalCteConsumer ( cteId=CTEId#0 ) 
apply RFs: RF16
+--------------------------------------hashJoin[LEFT_SEMI_JOIN bucketShuffle] 
hashCondition=((catalog_sales.cs_item_sk = cross_items.ss_item_sk)) 
otherCondition=()
 ----------------------------------------PhysicalProject
 ------------------------------------------hashJoin[INNER_JOIN shuffleBucket] 
hashCondition=((catalog_sales.cs_item_sk = item.i_item_sk)) otherCondition=()
 --------------------------------------------PhysicalProject
@@ -133,6 +132,7 @@ PhysicalCteAnchor ( cteId=CTEId#0 )
 ----------------------------------------------------PhysicalOlapScan[date_dim]
 --------------------------------------------PhysicalProject
 ----------------------------------------------PhysicalOlapScan[item]
+----------------------------------------PhysicalCteConsumer ( cteId=CTEId#0 )
 ----------------------------PhysicalProject
 ------------------------------PhysicalAssertNumRows
 --------------------------------PhysicalDistribute[DistributionSpecGather]
@@ -144,19 +144,19 @@ PhysicalCteAnchor ( cteId=CTEId#0 )
 --------------------------------PhysicalDistribute[DistributionSpecHash]
 ----------------------------------hashAgg[LOCAL]
 ------------------------------------PhysicalProject
---------------------------------------hashJoin[RIGHT_SEMI_JOIN shuffleBucket] 
hashCondition=((web_sales.ws_item_sk = cross_items.ss_item_sk)) 
otherCondition=() build RFs:RF19 ws_item_sk->[ss_item_sk]
-----------------------------------------PhysicalCteConsumer ( cteId=CTEId#0 ) 
apply RFs: RF19
+--------------------------------------hashJoin[LEFT_SEMI_JOIN bucketShuffle] 
hashCondition=((web_sales.ws_item_sk = cross_items.ss_item_sk)) 
otherCondition=()
 ----------------------------------------PhysicalProject
 ------------------------------------------hashJoin[INNER_JOIN shuffleBucket] 
hashCondition=((web_sales.ws_item_sk = item.i_item_sk)) otherCondition=()
 --------------------------------------------PhysicalProject
-----------------------------------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk)) 
otherCondition=() build RFs:RF17 d_date_sk->[ws_sold_date_sk]
+----------------------------------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk)) 
otherCondition=() build RFs:RF16 d_date_sk->[ws_sold_date_sk]
 ------------------------------------------------PhysicalProject
---------------------------------------------------PhysicalOlapScan[web_sales] 
apply RFs: RF17
+--------------------------------------------------PhysicalOlapScan[web_sales] 
apply RFs: RF16
 ------------------------------------------------PhysicalProject
 --------------------------------------------------filter((date_dim.d_moy = 11) 
and (date_dim.d_year = 2002))
 ----------------------------------------------------PhysicalOlapScan[date_dim]
 --------------------------------------------PhysicalProject
 ----------------------------------------------PhysicalOlapScan[item]
+----------------------------------------PhysicalCteConsumer ( cteId=CTEId#0 )
 ----------------------------PhysicalProject
 ------------------------------PhysicalAssertNumRows
 --------------------------------PhysicalDistribute[DistributionSpecGather]
diff --git 
a/regression-test/data/new_shapes_p0/tpcds_sf100/rf_prune/query16.out 
b/regression-test/data/new_shapes_p0/tpcds_sf100/rf_prune/query16.out
index ba90af331bb..1733e793f1f 100644
--- a/regression-test/data/new_shapes_p0/tpcds_sf100/rf_prune/query16.out
+++ b/regression-test/data/new_shapes_p0/tpcds_sf100/rf_prune/query16.out
@@ -8,7 +8,7 @@ PhysicalResultSink
 ----------hashAgg[GLOBAL]
 ------------hashAgg[LOCAL]
 --------------PhysicalProject
-----------------hashJoin[RIGHT_SEMI_JOIN shuffleBucket] 
hashCondition=((cs1.cs_order_number = cs2.cs_order_number)) otherCondition=(( 
not (cs_warehouse_sk = cs_warehouse_sk))) build RFs:RF3 
cs_order_number->[cs_order_number]
+----------------hashJoin[RIGHT_SEMI_JOIN shuffle] 
hashCondition=((cs1.cs_order_number = cs2.cs_order_number)) otherCondition=(( 
not (cs_warehouse_sk = cs_warehouse_sk))) build RFs:RF3 
cs_order_number->[cs_order_number]
 ------------------PhysicalProject
 --------------------PhysicalOlapScan[catalog_sales] apply RFs: RF3
 ------------------PhysicalProject
@@ -17,7 +17,7 @@ PhysicalResultSink
 ------------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((cs1.cs_ship_date_sk = date_dim.d_date_sk)) otherCondition=() 
build RFs:RF1 d_date_sk->[cs_ship_date_sk]
 --------------------------PhysicalProject
 ----------------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((cs1.cs_ship_addr_sk = customer_address.ca_address_sk)) 
otherCondition=() build RFs:RF0 ca_address_sk->[cs_ship_addr_sk]
-------------------------------hashJoin[LEFT_ANTI_JOIN shuffle] 
hashCondition=((cs1.cs_order_number = cr1.cr_order_number)) otherCondition=()
+------------------------------hashJoin[LEFT_ANTI_JOIN broadcast] 
hashCondition=((cs1.cs_order_number = cr1.cr_order_number)) otherCondition=()
 --------------------------------PhysicalProject
 ----------------------------------PhysicalOlapScan[catalog_sales] apply RFs: 
RF0 RF1 RF2
 --------------------------------PhysicalProject
diff --git 
a/regression-test/data/new_shapes_p0/tpcds_sf100/rf_prune/query23.out 
b/regression-test/data/new_shapes_p0/tpcds_sf100/rf_prune/query23.out
index 1bf8480c752..9894c67e590 100644
--- a/regression-test/data/new_shapes_p0/tpcds_sf100/rf_prune/query23.out
+++ b/regression-test/data/new_shapes_p0/tpcds_sf100/rf_prune/query23.out
@@ -52,8 +52,7 @@ PhysicalCteAnchor ( cteId=CTEId#0 )
 ------------hashAgg[LOCAL]
 --------------PhysicalUnion
 ----------------PhysicalProject
-------------------hashJoin[RIGHT_SEMI_JOIN shuffle] 
hashCondition=((catalog_sales.cs_item_sk = frequent_ss_items.item_sk)) 
otherCondition=() build RFs:RF4 cs_item_sk->[item_sk]
---------------------PhysicalCteConsumer ( cteId=CTEId#0 ) apply RFs: RF4
+------------------hashJoin[LEFT_SEMI_JOIN shuffle] 
hashCondition=((catalog_sales.cs_item_sk = frequent_ss_items.item_sk)) 
otherCondition=()
 --------------------PhysicalProject
 ----------------------hashJoin[LEFT_SEMI_JOIN shuffle] 
hashCondition=((catalog_sales.cs_bill_customer_sk = 
best_ss_customer.c_customer_sk)) otherCondition=()
 ------------------------PhysicalProject
@@ -64,17 +63,18 @@ PhysicalCteAnchor ( cteId=CTEId#0 )
 ------------------------------filter((date_dim.d_moy = 5) and (date_dim.d_year 
= 2000))
 --------------------------------PhysicalOlapScan[date_dim]
 ------------------------PhysicalCteConsumer ( cteId=CTEId#2 )
+--------------------PhysicalCteConsumer ( cteId=CTEId#0 )
 ----------------PhysicalProject
-------------------hashJoin[RIGHT_SEMI_JOIN shuffle] 
hashCondition=((web_sales.ws_item_sk = frequent_ss_items.item_sk)) 
otherCondition=() build RFs:RF6 ws_item_sk->[item_sk]
---------------------PhysicalCteConsumer ( cteId=CTEId#0 ) apply RFs: RF6
+------------------hashJoin[LEFT_SEMI_JOIN shuffle] 
hashCondition=((web_sales.ws_item_sk = frequent_ss_items.item_sk)) 
otherCondition=()
 --------------------PhysicalProject
 ----------------------hashJoin[LEFT_SEMI_JOIN shuffle] 
hashCondition=((web_sales.ws_bill_customer_sk = 
best_ss_customer.c_customer_sk)) otherCondition=()
 ------------------------PhysicalProject
---------------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk)) 
otherCondition=() build RFs:RF5 d_date_sk->[ws_sold_date_sk]
+--------------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk)) 
otherCondition=() build RFs:RF4 d_date_sk->[ws_sold_date_sk]
 ----------------------------PhysicalProject
-------------------------------PhysicalOlapScan[web_sales] apply RFs: RF5
+------------------------------PhysicalOlapScan[web_sales] apply RFs: RF4
 ----------------------------PhysicalProject
 ------------------------------filter((date_dim.d_moy = 5) and (date_dim.d_year 
= 2000))
 --------------------------------PhysicalOlapScan[date_dim]
 ------------------------PhysicalCteConsumer ( cteId=CTEId#2 )
+--------------------PhysicalCteConsumer ( cteId=CTEId#0 )
 
diff --git 
a/regression-test/data/new_shapes_p0/tpcds_sf100/rf_prune/query33.out 
b/regression-test/data/new_shapes_p0/tpcds_sf100/rf_prune/query33.out
index e114ea6c9b9..7b9743bf11d 100644
--- a/regression-test/data/new_shapes_p0/tpcds_sf100/rf_prune/query33.out
+++ b/regression-test/data/new_shapes_p0/tpcds_sf100/rf_prune/query33.out
@@ -9,21 +9,18 @@ PhysicalResultSink
 ------------hashAgg[LOCAL]
 --------------PhysicalUnion
 ----------------PhysicalProject
-------------------hashJoin[RIGHT_SEMI_JOIN shuffleBucket] 
hashCondition=((item.i_manufact_id = item.i_manufact_id)) otherCondition=() 
build RFs:RF3 i_manufact_id->[i_manufact_id]
---------------------PhysicalProject
-----------------------filter((item.i_category = 'Home'))
-------------------------PhysicalOlapScan[item] apply RFs: RF3
+------------------hashJoin[LEFT_SEMI_JOIN bucketShuffle] 
hashCondition=((item.i_manufact_id = item.i_manufact_id)) otherCondition=() 
build RFs:RF3 i_manufact_id->[i_manufact_id]
 --------------------hashAgg[GLOBAL]
 ----------------------PhysicalDistribute[DistributionSpecHash]
 ------------------------hashAgg[LOCAL]
 --------------------------PhysicalProject
-----------------------------hashJoin[INNER_JOIN shuffleBucket] 
hashCondition=((store_sales.ss_item_sk = item.i_item_sk)) otherCondition=()
+----------------------------hashJoin[INNER_JOIN shuffleBucket] 
hashCondition=((store_sales.ss_item_sk = item.i_item_sk)) otherCondition=() 
build RFs:RF2 i_item_sk->[ss_item_sk]
 ------------------------------PhysicalProject
 --------------------------------hashJoin[INNER_JOIN shuffleBucket] 
hashCondition=((store_sales.ss_addr_sk = customer_address.ca_address_sk)) 
otherCondition=() build RFs:RF1 ca_address_sk->[ss_addr_sk]
 ----------------------------------PhysicalProject
 ------------------------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk)) 
otherCondition=() build RFs:RF0 d_date_sk->[ss_sold_date_sk]
 --------------------------------------PhysicalProject
-----------------------------------------PhysicalOlapScan[store_sales] apply 
RFs: RF0 RF1
+----------------------------------------PhysicalOlapScan[store_sales] apply 
RFs: RF0 RF1 RF2
 --------------------------------------PhysicalProject
 ----------------------------------------filter((date_dim.d_moy = 1) and 
(date_dim.d_year = 2002))
 ------------------------------------------PhysicalOlapScan[date_dim]
@@ -31,23 +28,23 @@ PhysicalResultSink
 ------------------------------------filter((customer_address.ca_gmt_offset = 
-5.00))
 --------------------------------------PhysicalOlapScan[customer_address]
 ------------------------------PhysicalProject
---------------------------------PhysicalOlapScan[item]
-----------------PhysicalProject
-------------------hashJoin[RIGHT_SEMI_JOIN shuffleBucket] 
hashCondition=((item.i_manufact_id = item.i_manufact_id)) otherCondition=() 
build RFs:RF7 i_manufact_id->[i_manufact_id]
+--------------------------------PhysicalOlapScan[item] apply RFs: RF3
 --------------------PhysicalProject
 ----------------------filter((item.i_category = 'Home'))
-------------------------PhysicalOlapScan[item] apply RFs: RF7
+------------------------PhysicalOlapScan[item]
+----------------PhysicalProject
+------------------hashJoin[LEFT_SEMI_JOIN bucketShuffle] 
hashCondition=((item.i_manufact_id = item.i_manufact_id)) otherCondition=() 
build RFs:RF7 i_manufact_id->[i_manufact_id]
 --------------------hashAgg[GLOBAL]
 ----------------------PhysicalDistribute[DistributionSpecHash]
 ------------------------hashAgg[LOCAL]
 --------------------------PhysicalProject
-----------------------------hashJoin[INNER_JOIN shuffleBucket] 
hashCondition=((catalog_sales.cs_item_sk = item.i_item_sk)) otherCondition=()
+----------------------------hashJoin[INNER_JOIN shuffleBucket] 
hashCondition=((catalog_sales.cs_item_sk = item.i_item_sk)) otherCondition=() 
build RFs:RF6 i_item_sk->[cs_item_sk]
 ------------------------------PhysicalProject
 --------------------------------hashJoin[INNER_JOIN shuffleBucket] 
hashCondition=((catalog_sales.cs_bill_addr_sk = 
customer_address.ca_address_sk)) otherCondition=() build RFs:RF5 
ca_address_sk->[cs_bill_addr_sk]
 ----------------------------------PhysicalProject
 ------------------------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk)) 
otherCondition=() build RFs:RF4 d_date_sk->[cs_sold_date_sk]
 --------------------------------------PhysicalProject
-----------------------------------------PhysicalOlapScan[catalog_sales] apply 
RFs: RF4 RF5
+----------------------------------------PhysicalOlapScan[catalog_sales] apply 
RFs: RF4 RF5 RF6
 --------------------------------------PhysicalProject
 ----------------------------------------filter((date_dim.d_moy = 1) and 
(date_dim.d_year = 2002))
 ------------------------------------------PhysicalOlapScan[date_dim]
@@ -55,19 +52,19 @@ PhysicalResultSink
 ------------------------------------filter((customer_address.ca_gmt_offset = 
-5.00))
 --------------------------------------PhysicalOlapScan[customer_address]
 ------------------------------PhysicalProject
---------------------------------PhysicalOlapScan[item]
-----------------PhysicalProject
-------------------hashJoin[RIGHT_SEMI_JOIN shuffleBucket] 
hashCondition=((item.i_manufact_id = item.i_manufact_id)) otherCondition=() 
build RFs:RF11 i_manufact_id->[i_manufact_id]
+--------------------------------PhysicalOlapScan[item] apply RFs: RF7
 --------------------PhysicalProject
 ----------------------filter((item.i_category = 'Home'))
-------------------------PhysicalOlapScan[item] apply RFs: RF11
+------------------------PhysicalOlapScan[item]
+----------------PhysicalProject
+------------------hashJoin[LEFT_SEMI_JOIN bucketShuffle] 
hashCondition=((item.i_manufact_id = item.i_manufact_id)) otherCondition=() 
build RFs:RF11 i_manufact_id->[i_manufact_id]
 --------------------hashAgg[GLOBAL]
 ----------------------PhysicalDistribute[DistributionSpecHash]
 ------------------------hashAgg[LOCAL]
 --------------------------PhysicalProject
 ----------------------------hashJoin[INNER_JOIN bucketShuffle] 
hashCondition=((web_sales.ws_item_sk = item.i_item_sk)) otherCondition=() build 
RFs:RF10 ws_item_sk->[i_item_sk]
 ------------------------------PhysicalProject
---------------------------------PhysicalOlapScan[item] apply RFs: RF10
+--------------------------------PhysicalOlapScan[item] apply RFs: RF10 RF11
 ------------------------------PhysicalProject
 --------------------------------hashJoin[INNER_JOIN shuffleBucket] 
hashCondition=((web_sales.ws_bill_addr_sk = customer_address.ca_address_sk)) 
otherCondition=() build RFs:RF9 ca_address_sk->[ws_bill_addr_sk]
 ----------------------------------PhysicalProject
@@ -80,4 +77,7 @@ PhysicalResultSink
 ----------------------------------PhysicalProject
 ------------------------------------filter((customer_address.ca_gmt_offset = 
-5.00))
 --------------------------------------PhysicalOlapScan[customer_address]
+--------------------PhysicalProject
+----------------------filter((item.i_category = 'Home'))
+------------------------PhysicalOlapScan[item]
 
diff --git 
a/regression-test/data/new_shapes_p0/tpcds_sf100/rf_prune/query35.out 
b/regression-test/data/new_shapes_p0/tpcds_sf100/rf_prune/query35.out
index 072c7aeb38a..4da981f140a 100644
--- a/regression-test/data/new_shapes_p0/tpcds_sf100/rf_prune/query35.out
+++ b/regression-test/data/new_shapes_p0/tpcds_sf100/rf_prune/query35.out
@@ -10,38 +10,38 @@ PhysicalResultSink
 --------------hashAgg[LOCAL]
 ----------------PhysicalProject
 ------------------filter((ifnull($c$1, FALSE) OR ifnull($c$2, FALSE)))
---------------------hashJoin[RIGHT_SEMI_JOIN shuffleBucket] 
hashCondition=((c.c_customer_sk = catalog_sales.cs_ship_customer_sk)) 
otherCondition=()
-----------------------PhysicalProject
-------------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk)) 
otherCondition=() build RFs:RF5 d_date_sk->[cs_sold_date_sk]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF5
---------------------------PhysicalProject
-----------------------------filter((date_dim.d_qoy < 4) and (date_dim.d_year = 
2001))
-------------------------------PhysicalOlapScan[date_dim]
-----------------------hashJoin[RIGHT_SEMI_JOIN shuffleBucket] 
hashCondition=((c.c_customer_sk = web_sales.ws_bill_customer_sk)) 
otherCondition=()
-------------------------PhysicalProject
---------------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk)) 
otherCondition=() build RFs:RF4 d_date_sk->[ws_sold_date_sk]
-----------------------------PhysicalProject
-------------------------------PhysicalOlapScan[web_sales] apply RFs: RF4
-----------------------------PhysicalProject
-------------------------------filter((date_dim.d_qoy < 4) and (date_dim.d_year 
= 2001))
---------------------------------PhysicalOlapScan[date_dim]
-------------------------hashJoin[RIGHT_SEMI_JOIN shuffle] 
hashCondition=((c.c_customer_sk = store_sales.ss_customer_sk)) otherCondition=()
---------------------------PhysicalProject
-----------------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk)) 
otherCondition=() build RFs:RF2 d_date_sk->[ss_sold_date_sk]
-------------------------------PhysicalProject
---------------------------------PhysicalOlapScan[store_sales] apply RFs: RF2
-------------------------------PhysicalProject
---------------------------------filter((date_dim.d_qoy < 4) and 
(date_dim.d_year = 2001))
-----------------------------------PhysicalOlapScan[date_dim]
+--------------------hashJoin[LEFT_SEMI_JOIN bucketShuffle] 
hashCondition=((c.c_customer_sk = catalog_sales.cs_ship_customer_sk)) 
otherCondition=()
+----------------------hashJoin[LEFT_SEMI_JOIN bucketShuffle] 
hashCondition=((c.c_customer_sk = web_sales.ws_bill_customer_sk)) 
otherCondition=()
+------------------------hashJoin[LEFT_SEMI_JOIN shuffle] 
hashCondition=((c.c_customer_sk = store_sales.ss_customer_sk)) 
otherCondition=() build RFs:RF5 ss_customer_sk->[c_customer_sk]
 --------------------------PhysicalProject
 ----------------------------hashJoin[INNER_JOIN shuffle] 
hashCondition=((customer_demographics.cd_demo_sk = c.c_current_cdemo_sk)) 
otherCondition=()
 ------------------------------PhysicalProject
 --------------------------------hashJoin[INNER_JOIN shuffleBucket] 
hashCondition=((c.c_current_addr_sk = ca.ca_address_sk)) otherCondition=()
 ----------------------------------PhysicalProject
-------------------------------------PhysicalOlapScan[customer]
+------------------------------------PhysicalOlapScan[customer] apply RFs: RF5
 ----------------------------------PhysicalProject
 ------------------------------------PhysicalOlapScan[customer_address]
 ------------------------------PhysicalProject
 --------------------------------PhysicalOlapScan[customer_demographics]
+--------------------------PhysicalProject
+----------------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk)) 
otherCondition=() build RFs:RF2 d_date_sk->[ss_sold_date_sk]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[store_sales] apply RFs: RF2
+------------------------------PhysicalProject
+--------------------------------filter((date_dim.d_qoy < 4) and 
(date_dim.d_year = 2001))
+----------------------------------PhysicalOlapScan[date_dim]
+------------------------PhysicalProject
+--------------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk)) 
otherCondition=() build RFs:RF1 d_date_sk->[ws_sold_date_sk]
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[web_sales] apply RFs: RF1
+----------------------------PhysicalProject
+------------------------------filter((date_dim.d_qoy < 4) and (date_dim.d_year 
= 2001))
+--------------------------------PhysicalOlapScan[date_dim]
+----------------------PhysicalProject
+------------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk)) 
otherCondition=() build RFs:RF0 d_date_sk->[cs_sold_date_sk]
+--------------------------PhysicalProject
+----------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF0
+--------------------------PhysicalProject
+----------------------------filter((date_dim.d_qoy < 4) and (date_dim.d_year = 
2001))
+------------------------------PhysicalOlapScan[date_dim]
 
diff --git 
a/regression-test/data/new_shapes_p0/tpcds_sf100/rf_prune/query69.out 
b/regression-test/data/new_shapes_p0/tpcds_sf100/rf_prune/query69.out
index 090d1940739..7293ef67e29 100644
--- a/regression-test/data/new_shapes_p0/tpcds_sf100/rf_prune/query69.out
+++ b/regression-test/data/new_shapes_p0/tpcds_sf100/rf_prune/query69.out
@@ -9,39 +9,39 @@ PhysicalResultSink
 ------------PhysicalDistribute[DistributionSpecHash]
 --------------hashAgg[LOCAL]
 ----------------PhysicalProject
-------------------hashJoin[RIGHT_SEMI_JOIN shuffleBucket] 
hashCondition=((c.c_customer_sk = store_sales.ss_customer_sk)) 
otherCondition=() build RFs:RF7 c_customer_sk->[ss_customer_sk]
+------------------hashJoin[RIGHT_SEMI_JOIN shuffleBucket] 
hashCondition=((c.c_customer_sk = store_sales.ss_customer_sk)) 
otherCondition=() build RFs:RF6 c_customer_sk->[ss_customer_sk]
 --------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk)) 
otherCondition=() build RFs:RF6 d_date_sk->[ss_sold_date_sk]
+----------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk)) 
otherCondition=() build RFs:RF5 d_date_sk->[ss_sold_date_sk]
 ------------------------PhysicalProject
---------------------------PhysicalOlapScan[store_sales] apply RFs: RF6 RF7
+--------------------------PhysicalOlapScan[store_sales] apply RFs: RF5 RF6
 ------------------------PhysicalProject
 --------------------------filter((date_dim.d_moy <= 3) and (date_dim.d_moy >= 
1) and (date_dim.d_year = 2000))
 ----------------------------PhysicalOlapScan[date_dim]
---------------------hashJoin[RIGHT_ANTI_JOIN shuffle] 
hashCondition=((c.c_customer_sk = catalog_sales.cs_ship_customer_sk)) 
otherCondition=() build RFs:RF5 c_customer_sk->[cs_ship_customer_sk]
+--------------------hashJoin[RIGHT_ANTI_JOIN shuffle] 
hashCondition=((c.c_customer_sk = catalog_sales.cs_ship_customer_sk)) 
otherCondition=() build RFs:RF4 c_customer_sk->[cs_ship_customer_sk]
 ----------------------PhysicalProject
-------------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk)) 
otherCondition=() build RFs:RF4 d_date_sk->[cs_sold_date_sk]
+------------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk)) 
otherCondition=() build RFs:RF3 d_date_sk->[cs_sold_date_sk]
 --------------------------PhysicalProject
-----------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF4 RF5
+----------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF3 RF4
 --------------------------PhysicalProject
 ----------------------------filter((date_dim.d_moy <= 3) and (date_dim.d_moy 
>= 1) and (date_dim.d_year = 2000))
 ------------------------------PhysicalOlapScan[date_dim]
 ----------------------PhysicalProject
-------------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((customer_demographics.cd_demo_sk = c.c_current_cdemo_sk)) 
otherCondition=() build RFs:RF3 c_current_cdemo_sk->[cd_demo_sk]
+------------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((customer_demographics.cd_demo_sk = c.c_current_cdemo_sk)) 
otherCondition=() build RFs:RF2 c_current_cdemo_sk->[cd_demo_sk]
 --------------------------PhysicalProject
-----------------------------PhysicalOlapScan[customer_demographics] apply RFs: 
RF3
---------------------------hashJoin[RIGHT_ANTI_JOIN shuffle] 
hashCondition=((c.c_customer_sk = web_sales.ws_bill_customer_sk)) 
otherCondition=() build RFs:RF2 c_customer_sk->[ws_bill_customer_sk]
-----------------------------PhysicalProject
-------------------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk)) 
otherCondition=() build RFs:RF1 d_date_sk->[ws_sold_date_sk]
---------------------------------PhysicalProject
-----------------------------------PhysicalOlapScan[web_sales] apply RFs: RF1 
RF2
---------------------------------PhysicalProject
-----------------------------------filter((date_dim.d_moy <= 3) and 
(date_dim.d_moy >= 1) and (date_dim.d_year = 2000))
-------------------------------------PhysicalOlapScan[date_dim]
-----------------------------PhysicalProject
-------------------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((c.c_current_addr_sk = ca.ca_address_sk)) otherCondition=() 
build RFs:RF0 ca_address_sk->[c_current_addr_sk]
+----------------------------PhysicalOlapScan[customer_demographics] apply RFs: 
RF2
+--------------------------PhysicalProject
+----------------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((c.c_current_addr_sk = ca.ca_address_sk)) otherCondition=() 
build RFs:RF1 ca_address_sk->[c_current_addr_sk]
+------------------------------hashJoin[LEFT_ANTI_JOIN shuffle] 
hashCondition=((c.c_customer_sk = web_sales.ws_bill_customer_sk)) 
otherCondition=()
 --------------------------------PhysicalProject
-----------------------------------PhysicalOlapScan[customer] apply RFs: RF0
+----------------------------------PhysicalOlapScan[customer] apply RFs: RF1
 --------------------------------PhysicalProject
-----------------------------------filter(ca_state IN ('MI', 'TX', 'VA'))
-------------------------------------PhysicalOlapScan[customer_address]
+----------------------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk)) 
otherCondition=() build RFs:RF0 d_date_sk->[ws_sold_date_sk]
+------------------------------------PhysicalProject
+--------------------------------------PhysicalOlapScan[web_sales] apply RFs: 
RF0
+------------------------------------PhysicalProject
+--------------------------------------filter((date_dim.d_moy <= 3) and 
(date_dim.d_moy >= 1) and (date_dim.d_year = 2000))
+----------------------------------------PhysicalOlapScan[date_dim]
+------------------------------PhysicalProject
+--------------------------------filter(ca_state IN ('MI', 'TX', 'VA'))
+----------------------------------PhysicalOlapScan[customer_address]
 
diff --git 
a/regression-test/data/new_shapes_p0/tpcds_sf100/rf_prune/query94.out 
b/regression-test/data/new_shapes_p0/tpcds_sf100/rf_prune/query94.out
index e13bdc06291..6a25137bf51 100644
--- a/regression-test/data/new_shapes_p0/tpcds_sf100/rf_prune/query94.out
+++ b/regression-test/data/new_shapes_p0/tpcds_sf100/rf_prune/query94.out
@@ -8,7 +8,7 @@ PhysicalResultSink
 ----------hashAgg[GLOBAL]
 ------------hashAgg[LOCAL]
 --------------PhysicalProject
-----------------hashJoin[RIGHT_SEMI_JOIN shuffleBucket] 
hashCondition=((ws1.ws_order_number = ws2.ws_order_number)) otherCondition=(( 
not (ws_warehouse_sk = ws_warehouse_sk))) build RFs:RF3 
ws_order_number->[ws_order_number]
+----------------hashJoin[RIGHT_SEMI_JOIN shuffle] 
hashCondition=((ws1.ws_order_number = ws2.ws_order_number)) otherCondition=(( 
not (ws_warehouse_sk = ws_warehouse_sk))) build RFs:RF3 
ws_order_number->[ws_order_number]
 ------------------PhysicalProject
 --------------------PhysicalOlapScan[web_sales] apply RFs: RF3
 ------------------PhysicalProject
@@ -17,7 +17,7 @@ PhysicalResultSink
 ------------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((ws1.ws_ship_date_sk = date_dim.d_date_sk)) otherCondition=() 
build RFs:RF1 d_date_sk->[ws_ship_date_sk]
 --------------------------PhysicalProject
 ----------------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((ws1.ws_ship_addr_sk = customer_address.ca_address_sk)) 
otherCondition=() build RFs:RF0 ca_address_sk->[ws_ship_addr_sk]
-------------------------------hashJoin[LEFT_ANTI_JOIN shuffle] 
hashCondition=((ws1.ws_order_number = wr1.wr_order_number)) otherCondition=()
+------------------------------hashJoin[LEFT_ANTI_JOIN broadcast] 
hashCondition=((ws1.ws_order_number = wr1.wr_order_number)) otherCondition=()
 --------------------------------PhysicalProject
 ----------------------------------PhysicalOlapScan[web_sales] apply RFs: RF0 
RF1 RF2
 --------------------------------PhysicalProject
diff --git a/regression-test/data/new_shapes_p0/tpcds_sf100/shape/query14.out 
b/regression-test/data/new_shapes_p0/tpcds_sf100/shape/query14.out
index 7d7b537cd06..8dcf496847a 100644
--- a/regression-test/data/new_shapes_p0/tpcds_sf100/shape/query14.out
+++ b/regression-test/data/new_shapes_p0/tpcds_sf100/shape/query14.out
@@ -120,8 +120,7 @@ PhysicalCteAnchor ( cteId=CTEId#0 )
 --------------------------------PhysicalDistribute[DistributionSpecHash]
 ----------------------------------hashAgg[LOCAL]
 ------------------------------------PhysicalProject
---------------------------------------hashJoin[RIGHT_SEMI_JOIN shuffleBucket] 
hashCondition=((catalog_sales.cs_item_sk = cross_items.ss_item_sk)) 
otherCondition=() build RFs:RF16 cs_item_sk->[ss_item_sk]
-----------------------------------------PhysicalCteConsumer ( cteId=CTEId#0 ) 
apply RFs: RF16
+--------------------------------------hashJoin[LEFT_SEMI_JOIN bucketShuffle] 
hashCondition=((catalog_sales.cs_item_sk = cross_items.ss_item_sk)) 
otherCondition=()
 ----------------------------------------PhysicalProject
 ------------------------------------------hashJoin[INNER_JOIN shuffleBucket] 
hashCondition=((catalog_sales.cs_item_sk = item.i_item_sk)) otherCondition=() 
build RFs:RF15 i_item_sk->[cs_item_sk]
 --------------------------------------------PhysicalProject
@@ -133,6 +132,7 @@ PhysicalCteAnchor ( cteId=CTEId#0 )
 ----------------------------------------------------PhysicalOlapScan[date_dim]
 --------------------------------------------PhysicalProject
 ----------------------------------------------PhysicalOlapScan[item]
+----------------------------------------PhysicalCteConsumer ( cteId=CTEId#0 )
 ----------------------------PhysicalProject
 ------------------------------PhysicalAssertNumRows
 --------------------------------PhysicalDistribute[DistributionSpecGather]
@@ -144,19 +144,19 @@ PhysicalCteAnchor ( cteId=CTEId#0 )
 --------------------------------PhysicalDistribute[DistributionSpecHash]
 ----------------------------------hashAgg[LOCAL]
 ------------------------------------PhysicalProject
---------------------------------------hashJoin[RIGHT_SEMI_JOIN shuffleBucket] 
hashCondition=((web_sales.ws_item_sk = cross_items.ss_item_sk)) 
otherCondition=() build RFs:RF19 ws_item_sk->[ss_item_sk]
-----------------------------------------PhysicalCteConsumer ( cteId=CTEId#0 ) 
apply RFs: RF19
+--------------------------------------hashJoin[LEFT_SEMI_JOIN bucketShuffle] 
hashCondition=((web_sales.ws_item_sk = cross_items.ss_item_sk)) 
otherCondition=()
 ----------------------------------------PhysicalProject
-------------------------------------------hashJoin[INNER_JOIN shuffleBucket] 
hashCondition=((web_sales.ws_item_sk = item.i_item_sk)) otherCondition=() build 
RFs:RF18 i_item_sk->[ws_item_sk]
+------------------------------------------hashJoin[INNER_JOIN shuffleBucket] 
hashCondition=((web_sales.ws_item_sk = item.i_item_sk)) otherCondition=() build 
RFs:RF17 i_item_sk->[ws_item_sk]
 --------------------------------------------PhysicalProject
-----------------------------------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk)) 
otherCondition=() build RFs:RF17 d_date_sk->[ws_sold_date_sk]
+----------------------------------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk)) 
otherCondition=() build RFs:RF16 d_date_sk->[ws_sold_date_sk]
 ------------------------------------------------PhysicalProject
---------------------------------------------------PhysicalOlapScan[web_sales] 
apply RFs: RF17 RF18
+--------------------------------------------------PhysicalOlapScan[web_sales] 
apply RFs: RF16 RF17
 ------------------------------------------------PhysicalProject
 --------------------------------------------------filter((date_dim.d_moy = 11) 
and (date_dim.d_year = 2002))
 ----------------------------------------------------PhysicalOlapScan[date_dim]
 --------------------------------------------PhysicalProject
 ----------------------------------------------PhysicalOlapScan[item]
+----------------------------------------PhysicalCteConsumer ( cteId=CTEId#0 )
 ----------------------------PhysicalProject
 ------------------------------PhysicalAssertNumRows
 --------------------------------PhysicalDistribute[DistributionSpecGather]
diff --git a/regression-test/data/new_shapes_p0/tpcds_sf100/shape/query16.out 
b/regression-test/data/new_shapes_p0/tpcds_sf100/shape/query16.out
index ba90af331bb..1733e793f1f 100644
--- a/regression-test/data/new_shapes_p0/tpcds_sf100/shape/query16.out
+++ b/regression-test/data/new_shapes_p0/tpcds_sf100/shape/query16.out
@@ -8,7 +8,7 @@ PhysicalResultSink
 ----------hashAgg[GLOBAL]
 ------------hashAgg[LOCAL]
 --------------PhysicalProject
-----------------hashJoin[RIGHT_SEMI_JOIN shuffleBucket] 
hashCondition=((cs1.cs_order_number = cs2.cs_order_number)) otherCondition=(( 
not (cs_warehouse_sk = cs_warehouse_sk))) build RFs:RF3 
cs_order_number->[cs_order_number]
+----------------hashJoin[RIGHT_SEMI_JOIN shuffle] 
hashCondition=((cs1.cs_order_number = cs2.cs_order_number)) otherCondition=(( 
not (cs_warehouse_sk = cs_warehouse_sk))) build RFs:RF3 
cs_order_number->[cs_order_number]
 ------------------PhysicalProject
 --------------------PhysicalOlapScan[catalog_sales] apply RFs: RF3
 ------------------PhysicalProject
@@ -17,7 +17,7 @@ PhysicalResultSink
 ------------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((cs1.cs_ship_date_sk = date_dim.d_date_sk)) otherCondition=() 
build RFs:RF1 d_date_sk->[cs_ship_date_sk]
 --------------------------PhysicalProject
 ----------------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((cs1.cs_ship_addr_sk = customer_address.ca_address_sk)) 
otherCondition=() build RFs:RF0 ca_address_sk->[cs_ship_addr_sk]
-------------------------------hashJoin[LEFT_ANTI_JOIN shuffle] 
hashCondition=((cs1.cs_order_number = cr1.cr_order_number)) otherCondition=()
+------------------------------hashJoin[LEFT_ANTI_JOIN broadcast] 
hashCondition=((cs1.cs_order_number = cr1.cr_order_number)) otherCondition=()
 --------------------------------PhysicalProject
 ----------------------------------PhysicalOlapScan[catalog_sales] apply RFs: 
RF0 RF1 RF2
 --------------------------------PhysicalProject
diff --git a/regression-test/data/new_shapes_p0/tpcds_sf100/shape/query23.out 
b/regression-test/data/new_shapes_p0/tpcds_sf100/shape/query23.out
index 28e49b0a70c..893f7e0e2cc 100644
--- a/regression-test/data/new_shapes_p0/tpcds_sf100/shape/query23.out
+++ b/regression-test/data/new_shapes_p0/tpcds_sf100/shape/query23.out
@@ -52,8 +52,7 @@ PhysicalCteAnchor ( cteId=CTEId#0 )
 ------------hashAgg[LOCAL]
 --------------PhysicalUnion
 ----------------PhysicalProject
-------------------hashJoin[RIGHT_SEMI_JOIN shuffle] 
hashCondition=((catalog_sales.cs_item_sk = frequent_ss_items.item_sk)) 
otherCondition=() build RFs:RF4 cs_item_sk->[item_sk]
---------------------PhysicalCteConsumer ( cteId=CTEId#0 ) apply RFs: RF4
+------------------hashJoin[LEFT_SEMI_JOIN shuffle] 
hashCondition=((catalog_sales.cs_item_sk = frequent_ss_items.item_sk)) 
otherCondition=()
 --------------------PhysicalProject
 ----------------------hashJoin[LEFT_SEMI_JOIN shuffle] 
hashCondition=((catalog_sales.cs_bill_customer_sk = 
best_ss_customer.c_customer_sk)) otherCondition=()
 ------------------------PhysicalProject
@@ -64,17 +63,18 @@ PhysicalCteAnchor ( cteId=CTEId#0 )
 ------------------------------filter((date_dim.d_moy = 5) and (date_dim.d_year 
= 2000))
 --------------------------------PhysicalOlapScan[date_dim]
 ------------------------PhysicalCteConsumer ( cteId=CTEId#2 )
+--------------------PhysicalCteConsumer ( cteId=CTEId#0 )
 ----------------PhysicalProject
-------------------hashJoin[RIGHT_SEMI_JOIN shuffle] 
hashCondition=((web_sales.ws_item_sk = frequent_ss_items.item_sk)) 
otherCondition=() build RFs:RF6 ws_item_sk->[item_sk]
---------------------PhysicalCteConsumer ( cteId=CTEId#0 ) apply RFs: RF6
+------------------hashJoin[LEFT_SEMI_JOIN shuffle] 
hashCondition=((web_sales.ws_item_sk = frequent_ss_items.item_sk)) 
otherCondition=()
 --------------------PhysicalProject
 ----------------------hashJoin[LEFT_SEMI_JOIN shuffle] 
hashCondition=((web_sales.ws_bill_customer_sk = 
best_ss_customer.c_customer_sk)) otherCondition=()
 ------------------------PhysicalProject
---------------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk)) 
otherCondition=() build RFs:RF5 d_date_sk->[ws_sold_date_sk]
+--------------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk)) 
otherCondition=() build RFs:RF4 d_date_sk->[ws_sold_date_sk]
 ----------------------------PhysicalProject
-------------------------------PhysicalOlapScan[web_sales] apply RFs: RF5
+------------------------------PhysicalOlapScan[web_sales] apply RFs: RF4
 ----------------------------PhysicalProject
 ------------------------------filter((date_dim.d_moy = 5) and (date_dim.d_year 
= 2000))
 --------------------------------PhysicalOlapScan[date_dim]
 ------------------------PhysicalCteConsumer ( cteId=CTEId#2 )
+--------------------PhysicalCteConsumer ( cteId=CTEId#0 )
 
diff --git a/regression-test/data/new_shapes_p0/tpcds_sf100/shape/query33.out 
b/regression-test/data/new_shapes_p0/tpcds_sf100/shape/query33.out
index caceff430e1..7b9743bf11d 100644
--- a/regression-test/data/new_shapes_p0/tpcds_sf100/shape/query33.out
+++ b/regression-test/data/new_shapes_p0/tpcds_sf100/shape/query33.out
@@ -9,10 +9,7 @@ PhysicalResultSink
 ------------hashAgg[LOCAL]
 --------------PhysicalUnion
 ----------------PhysicalProject
-------------------hashJoin[RIGHT_SEMI_JOIN shuffleBucket] 
hashCondition=((item.i_manufact_id = item.i_manufact_id)) otherCondition=() 
build RFs:RF3 i_manufact_id->[i_manufact_id]
---------------------PhysicalProject
-----------------------filter((item.i_category = 'Home'))
-------------------------PhysicalOlapScan[item] apply RFs: RF3
+------------------hashJoin[LEFT_SEMI_JOIN bucketShuffle] 
hashCondition=((item.i_manufact_id = item.i_manufact_id)) otherCondition=() 
build RFs:RF3 i_manufact_id->[i_manufact_id]
 --------------------hashAgg[GLOBAL]
 ----------------------PhysicalDistribute[DistributionSpecHash]
 ------------------------hashAgg[LOCAL]
@@ -31,12 +28,12 @@ PhysicalResultSink
 ------------------------------------filter((customer_address.ca_gmt_offset = 
-5.00))
 --------------------------------------PhysicalOlapScan[customer_address]
 ------------------------------PhysicalProject
---------------------------------PhysicalOlapScan[item]
-----------------PhysicalProject
-------------------hashJoin[RIGHT_SEMI_JOIN shuffleBucket] 
hashCondition=((item.i_manufact_id = item.i_manufact_id)) otherCondition=() 
build RFs:RF7 i_manufact_id->[i_manufact_id]
+--------------------------------PhysicalOlapScan[item] apply RFs: RF3
 --------------------PhysicalProject
 ----------------------filter((item.i_category = 'Home'))
-------------------------PhysicalOlapScan[item] apply RFs: RF7
+------------------------PhysicalOlapScan[item]
+----------------PhysicalProject
+------------------hashJoin[LEFT_SEMI_JOIN bucketShuffle] 
hashCondition=((item.i_manufact_id = item.i_manufact_id)) otherCondition=() 
build RFs:RF7 i_manufact_id->[i_manufact_id]
 --------------------hashAgg[GLOBAL]
 ----------------------PhysicalDistribute[DistributionSpecHash]
 ------------------------hashAgg[LOCAL]
@@ -55,19 +52,19 @@ PhysicalResultSink
 ------------------------------------filter((customer_address.ca_gmt_offset = 
-5.00))
 --------------------------------------PhysicalOlapScan[customer_address]
 ------------------------------PhysicalProject
---------------------------------PhysicalOlapScan[item]
-----------------PhysicalProject
-------------------hashJoin[RIGHT_SEMI_JOIN shuffleBucket] 
hashCondition=((item.i_manufact_id = item.i_manufact_id)) otherCondition=() 
build RFs:RF11 i_manufact_id->[i_manufact_id]
+--------------------------------PhysicalOlapScan[item] apply RFs: RF7
 --------------------PhysicalProject
 ----------------------filter((item.i_category = 'Home'))
-------------------------PhysicalOlapScan[item] apply RFs: RF11
+------------------------PhysicalOlapScan[item]
+----------------PhysicalProject
+------------------hashJoin[LEFT_SEMI_JOIN bucketShuffle] 
hashCondition=((item.i_manufact_id = item.i_manufact_id)) otherCondition=() 
build RFs:RF11 i_manufact_id->[i_manufact_id]
 --------------------hashAgg[GLOBAL]
 ----------------------PhysicalDistribute[DistributionSpecHash]
 ------------------------hashAgg[LOCAL]
 --------------------------PhysicalProject
 ----------------------------hashJoin[INNER_JOIN bucketShuffle] 
hashCondition=((web_sales.ws_item_sk = item.i_item_sk)) otherCondition=() build 
RFs:RF10 ws_item_sk->[i_item_sk]
 ------------------------------PhysicalProject
---------------------------------PhysicalOlapScan[item] apply RFs: RF10
+--------------------------------PhysicalOlapScan[item] apply RFs: RF10 RF11
 ------------------------------PhysicalProject
 --------------------------------hashJoin[INNER_JOIN shuffleBucket] 
hashCondition=((web_sales.ws_bill_addr_sk = customer_address.ca_address_sk)) 
otherCondition=() build RFs:RF9 ca_address_sk->[ws_bill_addr_sk]
 ----------------------------------PhysicalProject
@@ -80,4 +77,7 @@ PhysicalResultSink
 ----------------------------------PhysicalProject
 ------------------------------------filter((customer_address.ca_gmt_offset = 
-5.00))
 --------------------------------------PhysicalOlapScan[customer_address]
+--------------------PhysicalProject
+----------------------filter((item.i_category = 'Home'))
+------------------------PhysicalOlapScan[item]
 
diff --git a/regression-test/data/new_shapes_p0/tpcds_sf100/shape/query35.out 
b/regression-test/data/new_shapes_p0/tpcds_sf100/shape/query35.out
index e7f26ded20d..93fdd630b33 100644
--- a/regression-test/data/new_shapes_p0/tpcds_sf100/shape/query35.out
+++ b/regression-test/data/new_shapes_p0/tpcds_sf100/shape/query35.out
@@ -10,38 +10,38 @@ PhysicalResultSink
 --------------hashAgg[LOCAL]
 ----------------PhysicalProject
 ------------------filter((ifnull($c$1, FALSE) OR ifnull($c$2, FALSE)))
---------------------hashJoin[RIGHT_SEMI_JOIN shuffleBucket] 
hashCondition=((c.c_customer_sk = catalog_sales.cs_ship_customer_sk)) 
otherCondition=()
-----------------------PhysicalProject
-------------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk)) 
otherCondition=() build RFs:RF5 d_date_sk->[cs_sold_date_sk]
+--------------------hashJoin[LEFT_SEMI_JOIN bucketShuffle] 
hashCondition=((c.c_customer_sk = catalog_sales.cs_ship_customer_sk)) 
otherCondition=()
+----------------------hashJoin[LEFT_SEMI_JOIN bucketShuffle] 
hashCondition=((c.c_customer_sk = web_sales.ws_bill_customer_sk)) 
otherCondition=()
+------------------------hashJoin[LEFT_SEMI_JOIN shuffle] 
hashCondition=((c.c_customer_sk = store_sales.ss_customer_sk)) 
otherCondition=() build RFs:RF5 ss_customer_sk->[c_customer_sk]
 --------------------------PhysicalProject
-----------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF5
+----------------------------hashJoin[INNER_JOIN shuffle] 
hashCondition=((customer_demographics.cd_demo_sk = c.c_current_cdemo_sk)) 
otherCondition=() build RFs:RF4 cd_demo_sk->[c_current_cdemo_sk]
+------------------------------PhysicalProject
+--------------------------------hashJoin[INNER_JOIN shuffleBucket] 
hashCondition=((c.c_current_addr_sk = ca.ca_address_sk)) otherCondition=() 
build RFs:RF3 ca_address_sk->[c_current_addr_sk]
+----------------------------------PhysicalProject
+------------------------------------PhysicalOlapScan[customer] apply RFs: RF3 
RF4 RF5
+----------------------------------PhysicalProject
+------------------------------------PhysicalOlapScan[customer_address]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[customer_demographics]
 --------------------------PhysicalProject
-----------------------------filter((date_dim.d_qoy < 4) and (date_dim.d_year = 
2001))
-------------------------------PhysicalOlapScan[date_dim]
-----------------------hashJoin[RIGHT_SEMI_JOIN shuffleBucket] 
hashCondition=((c.c_customer_sk = web_sales.ws_bill_customer_sk)) 
otherCondition=()
+----------------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk)) 
otherCondition=() build RFs:RF2 d_date_sk->[ss_sold_date_sk]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[store_sales] apply RFs: RF2
+------------------------------PhysicalProject
+--------------------------------filter((date_dim.d_qoy < 4) and 
(date_dim.d_year = 2001))
+----------------------------------PhysicalOlapScan[date_dim]
 ------------------------PhysicalProject
---------------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk)) 
otherCondition=() build RFs:RF4 d_date_sk->[ws_sold_date_sk]
+--------------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk)) 
otherCondition=() build RFs:RF1 d_date_sk->[ws_sold_date_sk]
 ----------------------------PhysicalProject
-------------------------------PhysicalOlapScan[web_sales] apply RFs: RF4
+------------------------------PhysicalOlapScan[web_sales] apply RFs: RF1
 ----------------------------PhysicalProject
 ------------------------------filter((date_dim.d_qoy < 4) and (date_dim.d_year 
= 2001))
 --------------------------------PhysicalOlapScan[date_dim]
-------------------------hashJoin[RIGHT_SEMI_JOIN shuffle] 
hashCondition=((c.c_customer_sk = store_sales.ss_customer_sk)) 
otherCondition=() build RFs:RF3 c_customer_sk->[ss_customer_sk]
+----------------------PhysicalProject
+------------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk)) 
otherCondition=() build RFs:RF0 d_date_sk->[cs_sold_date_sk]
 --------------------------PhysicalProject
-----------------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk)) 
otherCondition=() build RFs:RF2 d_date_sk->[ss_sold_date_sk]
-------------------------------PhysicalProject
---------------------------------PhysicalOlapScan[store_sales] apply RFs: RF2 
RF3
-------------------------------PhysicalProject
---------------------------------filter((date_dim.d_qoy < 4) and 
(date_dim.d_year = 2001))
-----------------------------------PhysicalOlapScan[date_dim]
+----------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF0
 --------------------------PhysicalProject
-----------------------------hashJoin[INNER_JOIN shuffle] 
hashCondition=((customer_demographics.cd_demo_sk = c.c_current_cdemo_sk)) 
otherCondition=() build RFs:RF1 cd_demo_sk->[c_current_cdemo_sk]
-------------------------------PhysicalProject
---------------------------------hashJoin[INNER_JOIN shuffleBucket] 
hashCondition=((c.c_current_addr_sk = ca.ca_address_sk)) otherCondition=() 
build RFs:RF0 ca_address_sk->[c_current_addr_sk]
-----------------------------------PhysicalProject
-------------------------------------PhysicalOlapScan[customer] apply RFs: RF0 
RF1
-----------------------------------PhysicalProject
-------------------------------------PhysicalOlapScan[customer_address]
-------------------------------PhysicalProject
---------------------------------PhysicalOlapScan[customer_demographics]
+----------------------------filter((date_dim.d_qoy < 4) and (date_dim.d_year = 
2001))
+------------------------------PhysicalOlapScan[date_dim]
 
diff --git a/regression-test/data/new_shapes_p0/tpcds_sf100/shape/query69.out 
b/regression-test/data/new_shapes_p0/tpcds_sf100/shape/query69.out
index 090d1940739..7293ef67e29 100644
--- a/regression-test/data/new_shapes_p0/tpcds_sf100/shape/query69.out
+++ b/regression-test/data/new_shapes_p0/tpcds_sf100/shape/query69.out
@@ -9,39 +9,39 @@ PhysicalResultSink
 ------------PhysicalDistribute[DistributionSpecHash]
 --------------hashAgg[LOCAL]
 ----------------PhysicalProject
-------------------hashJoin[RIGHT_SEMI_JOIN shuffleBucket] 
hashCondition=((c.c_customer_sk = store_sales.ss_customer_sk)) 
otherCondition=() build RFs:RF7 c_customer_sk->[ss_customer_sk]
+------------------hashJoin[RIGHT_SEMI_JOIN shuffleBucket] 
hashCondition=((c.c_customer_sk = store_sales.ss_customer_sk)) 
otherCondition=() build RFs:RF6 c_customer_sk->[ss_customer_sk]
 --------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk)) 
otherCondition=() build RFs:RF6 d_date_sk->[ss_sold_date_sk]
+----------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk)) 
otherCondition=() build RFs:RF5 d_date_sk->[ss_sold_date_sk]
 ------------------------PhysicalProject
---------------------------PhysicalOlapScan[store_sales] apply RFs: RF6 RF7
+--------------------------PhysicalOlapScan[store_sales] apply RFs: RF5 RF6
 ------------------------PhysicalProject
 --------------------------filter((date_dim.d_moy <= 3) and (date_dim.d_moy >= 
1) and (date_dim.d_year = 2000))
 ----------------------------PhysicalOlapScan[date_dim]
---------------------hashJoin[RIGHT_ANTI_JOIN shuffle] 
hashCondition=((c.c_customer_sk = catalog_sales.cs_ship_customer_sk)) 
otherCondition=() build RFs:RF5 c_customer_sk->[cs_ship_customer_sk]
+--------------------hashJoin[RIGHT_ANTI_JOIN shuffle] 
hashCondition=((c.c_customer_sk = catalog_sales.cs_ship_customer_sk)) 
otherCondition=() build RFs:RF4 c_customer_sk->[cs_ship_customer_sk]
 ----------------------PhysicalProject
-------------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk)) 
otherCondition=() build RFs:RF4 d_date_sk->[cs_sold_date_sk]
+------------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk)) 
otherCondition=() build RFs:RF3 d_date_sk->[cs_sold_date_sk]
 --------------------------PhysicalProject
-----------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF4 RF5
+----------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF3 RF4
 --------------------------PhysicalProject
 ----------------------------filter((date_dim.d_moy <= 3) and (date_dim.d_moy 
>= 1) and (date_dim.d_year = 2000))
 ------------------------------PhysicalOlapScan[date_dim]
 ----------------------PhysicalProject
-------------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((customer_demographics.cd_demo_sk = c.c_current_cdemo_sk)) 
otherCondition=() build RFs:RF3 c_current_cdemo_sk->[cd_demo_sk]
+------------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((customer_demographics.cd_demo_sk = c.c_current_cdemo_sk)) 
otherCondition=() build RFs:RF2 c_current_cdemo_sk->[cd_demo_sk]
 --------------------------PhysicalProject
-----------------------------PhysicalOlapScan[customer_demographics] apply RFs: 
RF3
---------------------------hashJoin[RIGHT_ANTI_JOIN shuffle] 
hashCondition=((c.c_customer_sk = web_sales.ws_bill_customer_sk)) 
otherCondition=() build RFs:RF2 c_customer_sk->[ws_bill_customer_sk]
-----------------------------PhysicalProject
-------------------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk)) 
otherCondition=() build RFs:RF1 d_date_sk->[ws_sold_date_sk]
---------------------------------PhysicalProject
-----------------------------------PhysicalOlapScan[web_sales] apply RFs: RF1 
RF2
---------------------------------PhysicalProject
-----------------------------------filter((date_dim.d_moy <= 3) and 
(date_dim.d_moy >= 1) and (date_dim.d_year = 2000))
-------------------------------------PhysicalOlapScan[date_dim]
-----------------------------PhysicalProject
-------------------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((c.c_current_addr_sk = ca.ca_address_sk)) otherCondition=() 
build RFs:RF0 ca_address_sk->[c_current_addr_sk]
+----------------------------PhysicalOlapScan[customer_demographics] apply RFs: 
RF2
+--------------------------PhysicalProject
+----------------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((c.c_current_addr_sk = ca.ca_address_sk)) otherCondition=() 
build RFs:RF1 ca_address_sk->[c_current_addr_sk]
+------------------------------hashJoin[LEFT_ANTI_JOIN shuffle] 
hashCondition=((c.c_customer_sk = web_sales.ws_bill_customer_sk)) 
otherCondition=()
 --------------------------------PhysicalProject
-----------------------------------PhysicalOlapScan[customer] apply RFs: RF0
+----------------------------------PhysicalOlapScan[customer] apply RFs: RF1
 --------------------------------PhysicalProject
-----------------------------------filter(ca_state IN ('MI', 'TX', 'VA'))
-------------------------------------PhysicalOlapScan[customer_address]
+----------------------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk)) 
otherCondition=() build RFs:RF0 d_date_sk->[ws_sold_date_sk]
+------------------------------------PhysicalProject
+--------------------------------------PhysicalOlapScan[web_sales] apply RFs: 
RF0
+------------------------------------PhysicalProject
+--------------------------------------filter((date_dim.d_moy <= 3) and 
(date_dim.d_moy >= 1) and (date_dim.d_year = 2000))
+----------------------------------------PhysicalOlapScan[date_dim]
+------------------------------PhysicalProject
+--------------------------------filter(ca_state IN ('MI', 'TX', 'VA'))
+----------------------------------PhysicalOlapScan[customer_address]
 
diff --git a/regression-test/data/new_shapes_p0/tpcds_sf100/shape/query94.out 
b/regression-test/data/new_shapes_p0/tpcds_sf100/shape/query94.out
index e13bdc06291..6a25137bf51 100644
--- a/regression-test/data/new_shapes_p0/tpcds_sf100/shape/query94.out
+++ b/regression-test/data/new_shapes_p0/tpcds_sf100/shape/query94.out
@@ -8,7 +8,7 @@ PhysicalResultSink
 ----------hashAgg[GLOBAL]
 ------------hashAgg[LOCAL]
 --------------PhysicalProject
-----------------hashJoin[RIGHT_SEMI_JOIN shuffleBucket] 
hashCondition=((ws1.ws_order_number = ws2.ws_order_number)) otherCondition=(( 
not (ws_warehouse_sk = ws_warehouse_sk))) build RFs:RF3 
ws_order_number->[ws_order_number]
+----------------hashJoin[RIGHT_SEMI_JOIN shuffle] 
hashCondition=((ws1.ws_order_number = ws2.ws_order_number)) otherCondition=(( 
not (ws_warehouse_sk = ws_warehouse_sk))) build RFs:RF3 
ws_order_number->[ws_order_number]
 ------------------PhysicalProject
 --------------------PhysicalOlapScan[web_sales] apply RFs: RF3
 ------------------PhysicalProject
@@ -17,7 +17,7 @@ PhysicalResultSink
 ------------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((ws1.ws_ship_date_sk = date_dim.d_date_sk)) otherCondition=() 
build RFs:RF1 d_date_sk->[ws_ship_date_sk]
 --------------------------PhysicalProject
 ----------------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((ws1.ws_ship_addr_sk = customer_address.ca_address_sk)) 
otherCondition=() build RFs:RF0 ca_address_sk->[ws_ship_addr_sk]
-------------------------------hashJoin[LEFT_ANTI_JOIN shuffle] 
hashCondition=((ws1.ws_order_number = wr1.wr_order_number)) otherCondition=()
+------------------------------hashJoin[LEFT_ANTI_JOIN broadcast] 
hashCondition=((ws1.ws_order_number = wr1.wr_order_number)) otherCondition=()
 --------------------------------PhysicalProject
 ----------------------------------PhysicalOlapScan[web_sales] apply RFs: RF0 
RF1 RF2
 --------------------------------PhysicalProject
diff --git a/regression-test/data/new_shapes_p0/tpcds_sf1000/shape/query23.out 
b/regression-test/data/new_shapes_p0/tpcds_sf1000/shape/query23.out
index fa66824d3b8..9e2140c8327 100644
--- a/regression-test/data/new_shapes_p0/tpcds_sf1000/shape/query23.out
+++ b/regression-test/data/new_shapes_p0/tpcds_sf1000/shape/query23.out
@@ -52,8 +52,7 @@ PhysicalCteAnchor ( cteId=CTEId#0 )
 ------------hashAgg[LOCAL]
 --------------PhysicalUnion
 ----------------PhysicalProject
-------------------hashJoin[RIGHT_SEMI_JOIN shuffle] 
hashCondition=((catalog_sales.cs_item_sk = frequent_ss_items.item_sk)) 
otherCondition=() build RFs:RF4 cs_item_sk->[item_sk]
---------------------PhysicalCteConsumer ( cteId=CTEId#0 ) apply RFs: RF4
+------------------hashJoin[LEFT_SEMI_JOIN shuffle] 
hashCondition=((catalog_sales.cs_item_sk = frequent_ss_items.item_sk)) 
otherCondition=()
 --------------------PhysicalProject
 ----------------------hashJoin[LEFT_SEMI_JOIN shuffle] 
hashCondition=((catalog_sales.cs_bill_customer_sk = 
best_ss_customer.c_customer_sk)) otherCondition=()
 ------------------------PhysicalProject
@@ -64,17 +63,18 @@ PhysicalCteAnchor ( cteId=CTEId#0 )
 ------------------------------filter((date_dim.d_moy = 7) and (date_dim.d_year 
= 2000))
 --------------------------------PhysicalOlapScan[date_dim]
 ------------------------PhysicalCteConsumer ( cteId=CTEId#2 )
+--------------------PhysicalCteConsumer ( cteId=CTEId#0 )
 ----------------PhysicalProject
-------------------hashJoin[RIGHT_SEMI_JOIN shuffle] 
hashCondition=((web_sales.ws_item_sk = frequent_ss_items.item_sk)) 
otherCondition=() build RFs:RF6 ws_item_sk->[item_sk]
---------------------PhysicalCteConsumer ( cteId=CTEId#0 ) apply RFs: RF6
+------------------hashJoin[LEFT_SEMI_JOIN shuffle] 
hashCondition=((web_sales.ws_item_sk = frequent_ss_items.item_sk)) 
otherCondition=()
 --------------------PhysicalProject
 ----------------------hashJoin[LEFT_SEMI_JOIN shuffle] 
hashCondition=((web_sales.ws_bill_customer_sk = 
best_ss_customer.c_customer_sk)) otherCondition=()
 ------------------------PhysicalProject
---------------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk)) 
otherCondition=() build RFs:RF5 d_date_sk->[ws_sold_date_sk]
+--------------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk)) 
otherCondition=() build RFs:RF4 d_date_sk->[ws_sold_date_sk]
 ----------------------------PhysicalProject
-------------------------------PhysicalOlapScan[web_sales] apply RFs: RF5
+------------------------------PhysicalOlapScan[web_sales] apply RFs: RF4
 ----------------------------PhysicalProject
 ------------------------------filter((date_dim.d_moy = 7) and (date_dim.d_year 
= 2000))
 --------------------------------PhysicalOlapScan[date_dim]
 ------------------------PhysicalCteConsumer ( cteId=CTEId#2 )
+--------------------PhysicalCteConsumer ( cteId=CTEId#0 )
 
diff --git a/regression-test/data/new_shapes_p0/tpcds_sf1000/shape/query33.out 
b/regression-test/data/new_shapes_p0/tpcds_sf1000/shape/query33.out
index ff1b991d156..93e480ed643 100644
--- a/regression-test/data/new_shapes_p0/tpcds_sf1000/shape/query33.out
+++ b/regression-test/data/new_shapes_p0/tpcds_sf1000/shape/query33.out
@@ -9,10 +9,7 @@ PhysicalResultSink
 ------------hashAgg[LOCAL]
 --------------PhysicalUnion
 ----------------PhysicalProject
-------------------hashJoin[RIGHT_SEMI_JOIN shuffleBucket] 
hashCondition=((item.i_manufact_id = item.i_manufact_id)) otherCondition=() 
build RFs:RF3 i_manufact_id->[i_manufact_id]
---------------------PhysicalProject
-----------------------filter((item.i_category = 'Books'))
-------------------------PhysicalOlapScan[item] apply RFs: RF3
+------------------hashJoin[LEFT_SEMI_JOIN bucketShuffle] 
hashCondition=((item.i_manufact_id = item.i_manufact_id)) otherCondition=() 
build RFs:RF3 i_manufact_id->[i_manufact_id]
 --------------------hashAgg[GLOBAL]
 ----------------------PhysicalDistribute[DistributionSpecHash]
 ------------------------hashAgg[LOCAL]
@@ -31,12 +28,12 @@ PhysicalResultSink
 ------------------------------------filter((customer_address.ca_gmt_offset = 
-5.00))
 --------------------------------------PhysicalOlapScan[customer_address]
 ------------------------------PhysicalProject
---------------------------------PhysicalOlapScan[item]
-----------------PhysicalProject
-------------------hashJoin[RIGHT_SEMI_JOIN shuffleBucket] 
hashCondition=((item.i_manufact_id = item.i_manufact_id)) otherCondition=() 
build RFs:RF7 i_manufact_id->[i_manufact_id]
+--------------------------------PhysicalOlapScan[item] apply RFs: RF3
 --------------------PhysicalProject
 ----------------------filter((item.i_category = 'Books'))
-------------------------PhysicalOlapScan[item] apply RFs: RF7
+------------------------PhysicalOlapScan[item]
+----------------PhysicalProject
+------------------hashJoin[LEFT_SEMI_JOIN bucketShuffle] 
hashCondition=((item.i_manufact_id = item.i_manufact_id)) otherCondition=() 
build RFs:RF7 i_manufact_id->[i_manufact_id]
 --------------------hashAgg[GLOBAL]
 ----------------------PhysicalDistribute[DistributionSpecHash]
 ------------------------hashAgg[LOCAL]
@@ -55,12 +52,12 @@ PhysicalResultSink
 ------------------------------------filter((customer_address.ca_gmt_offset = 
-5.00))
 --------------------------------------PhysicalOlapScan[customer_address]
 ------------------------------PhysicalProject
---------------------------------PhysicalOlapScan[item]
-----------------PhysicalProject
-------------------hashJoin[RIGHT_SEMI_JOIN shuffleBucket] 
hashCondition=((item.i_manufact_id = item.i_manufact_id)) otherCondition=() 
build RFs:RF11 i_manufact_id->[i_manufact_id]
+--------------------------------PhysicalOlapScan[item] apply RFs: RF7
 --------------------PhysicalProject
 ----------------------filter((item.i_category = 'Books'))
-------------------------PhysicalOlapScan[item] apply RFs: RF11
+------------------------PhysicalOlapScan[item]
+----------------PhysicalProject
+------------------hashJoin[LEFT_SEMI_JOIN bucketShuffle] 
hashCondition=((item.i_manufact_id = item.i_manufact_id)) otherCondition=() 
build RFs:RF11 i_manufact_id->[i_manufact_id]
 --------------------hashAgg[GLOBAL]
 ----------------------PhysicalDistribute[DistributionSpecHash]
 ------------------------hashAgg[LOCAL]
@@ -79,5 +76,8 @@ PhysicalResultSink
 ------------------------------------filter((customer_address.ca_gmt_offset = 
-5.00))
 --------------------------------------PhysicalOlapScan[customer_address]
 ------------------------------PhysicalProject
---------------------------------PhysicalOlapScan[item]
+--------------------------------PhysicalOlapScan[item] apply RFs: RF11
+--------------------PhysicalProject
+----------------------filter((item.i_category = 'Books'))
+------------------------PhysicalOlapScan[item]
 
diff --git a/regression-test/data/new_shapes_p0/tpcds_sf1000/shape/query35.out 
b/regression-test/data/new_shapes_p0/tpcds_sf1000/shape/query35.out
index cf7e15478ed..231ebddbd18 100644
--- a/regression-test/data/new_shapes_p0/tpcds_sf1000/shape/query35.out
+++ b/regression-test/data/new_shapes_p0/tpcds_sf1000/shape/query35.out
@@ -10,38 +10,38 @@ PhysicalResultSink
 --------------hashAgg[LOCAL]
 ----------------PhysicalProject
 ------------------filter((ifnull($c$1, FALSE) OR ifnull($c$2, FALSE)))
---------------------hashJoin[RIGHT_SEMI_JOIN shuffleBucket] 
hashCondition=((c.c_customer_sk = catalog_sales.cs_ship_customer_sk)) 
otherCondition=()
-----------------------PhysicalProject
-------------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk)) 
otherCondition=() build RFs:RF5 d_date_sk->[cs_sold_date_sk]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF5
---------------------------PhysicalProject
-----------------------------filter((date_dim.d_qoy < 4) and (date_dim.d_year = 
1999))
-------------------------------PhysicalOlapScan[date_dim]
-----------------------hashJoin[RIGHT_SEMI_JOIN shuffleBucket] 
hashCondition=((c.c_customer_sk = web_sales.ws_bill_customer_sk)) 
otherCondition=()
-------------------------PhysicalProject
---------------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk)) 
otherCondition=() build RFs:RF4 d_date_sk->[ws_sold_date_sk]
-----------------------------PhysicalProject
-------------------------------PhysicalOlapScan[web_sales] apply RFs: RF4
-----------------------------PhysicalProject
-------------------------------filter((date_dim.d_qoy < 4) and (date_dim.d_year 
= 1999))
---------------------------------PhysicalOlapScan[date_dim]
-------------------------hashJoin[RIGHT_SEMI_JOIN shuffle] 
hashCondition=((c.c_customer_sk = store_sales.ss_customer_sk)) 
otherCondition=() build RFs:RF3 c_customer_sk->[ss_customer_sk]
+--------------------hashJoin[LEFT_SEMI_JOIN bucketShuffle] 
hashCondition=((c.c_customer_sk = catalog_sales.cs_ship_customer_sk)) 
otherCondition=()
+----------------------hashJoin[LEFT_SEMI_JOIN bucketShuffle] 
hashCondition=((c.c_customer_sk = web_sales.ws_bill_customer_sk)) 
otherCondition=()
+------------------------hashJoin[RIGHT_SEMI_JOIN shuffle] 
hashCondition=((c.c_customer_sk = store_sales.ss_customer_sk)) 
otherCondition=() build RFs:RF5 c_customer_sk->[ss_customer_sk]
 --------------------------PhysicalProject
-----------------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk)) 
otherCondition=() build RFs:RF2 d_date_sk->[ss_sold_date_sk]
+----------------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk)) 
otherCondition=() build RFs:RF4 d_date_sk->[ss_sold_date_sk]
 ------------------------------PhysicalProject
---------------------------------PhysicalOlapScan[store_sales] apply RFs: RF2 
RF3
+--------------------------------PhysicalOlapScan[store_sales] apply RFs: RF4 
RF5
 ------------------------------PhysicalProject
 --------------------------------filter((date_dim.d_qoy < 4) and 
(date_dim.d_year = 1999))
 ----------------------------------PhysicalOlapScan[date_dim]
 --------------------------PhysicalProject
-----------------------------hashJoin[INNER_JOIN shuffle] 
hashCondition=((customer_demographics.cd_demo_sk = c.c_current_cdemo_sk)) 
otherCondition=() build RFs:RF1 cd_demo_sk->[c_current_cdemo_sk]
+----------------------------hashJoin[INNER_JOIN shuffle] 
hashCondition=((customer_demographics.cd_demo_sk = c.c_current_cdemo_sk)) 
otherCondition=() build RFs:RF3 cd_demo_sk->[c_current_cdemo_sk]
 ------------------------------PhysicalProject
---------------------------------hashJoin[INNER_JOIN shuffleBucket] 
hashCondition=((c.c_current_addr_sk = ca.ca_address_sk)) otherCondition=() 
build RFs:RF0 ca_address_sk->[c_current_addr_sk]
+--------------------------------hashJoin[INNER_JOIN shuffleBucket] 
hashCondition=((c.c_current_addr_sk = ca.ca_address_sk)) otherCondition=() 
build RFs:RF2 ca_address_sk->[c_current_addr_sk]
 ----------------------------------PhysicalProject
-------------------------------------PhysicalOlapScan[customer] apply RFs: RF0 
RF1
+------------------------------------PhysicalOlapScan[customer] apply RFs: RF2 
RF3
 ----------------------------------PhysicalProject
 ------------------------------------PhysicalOlapScan[customer_address]
 ------------------------------PhysicalProject
 --------------------------------PhysicalOlapScan[customer_demographics]
+------------------------PhysicalProject
+--------------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk)) 
otherCondition=() build RFs:RF1 d_date_sk->[ws_sold_date_sk]
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[web_sales] apply RFs: RF1
+----------------------------PhysicalProject
+------------------------------filter((date_dim.d_qoy < 4) and (date_dim.d_year 
= 1999))
+--------------------------------PhysicalOlapScan[date_dim]
+----------------------PhysicalProject
+------------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk)) 
otherCondition=() build RFs:RF0 d_date_sk->[cs_sold_date_sk]
+--------------------------PhysicalProject
+----------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF0
+--------------------------PhysicalProject
+----------------------------filter((date_dim.d_qoy < 4) and (date_dim.d_year = 
1999))
+------------------------------PhysicalOlapScan[date_dim]
 
diff --git a/regression-test/data/new_shapes_p0/tpcds_sf1000/shape/query51.out 
b/regression-test/data/new_shapes_p0/tpcds_sf1000/shape/query51.out
index 38bec2403ec..6c22d2df308 100644
--- a/regression-test/data/new_shapes_p0/tpcds_sf1000/shape/query51.out
+++ b/regression-test/data/new_shapes_p0/tpcds_sf1000/shape/query51.out
@@ -19,9 +19,9 @@ PhysicalResultSink
 --------------------------------PhysicalDistribute[DistributionSpecHash]
 ----------------------------------hashAgg[LOCAL]
 ------------------------------------PhysicalProject
---------------------------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk)) 
otherCondition=() build RFs:RF1 d_date_sk->[ss_sold_date_sk]
+--------------------------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk)) 
otherCondition=() build RFs:RF1 d_date_sk->[ws_sold_date_sk]
 ----------------------------------------PhysicalProject
-------------------------------------------PhysicalOlapScan[store_sales] apply 
RFs: RF1
+------------------------------------------PhysicalOlapScan[web_sales] apply 
RFs: RF1
 ----------------------------------------PhysicalProject
 ------------------------------------------filter((date_dim.d_month_seq <= 
1223) and (date_dim.d_month_seq >= 1212))
 --------------------------------------------PhysicalOlapScan[date_dim]
@@ -34,9 +34,9 @@ PhysicalResultSink
 --------------------------------PhysicalDistribute[DistributionSpecHash]
 ----------------------------------hashAgg[LOCAL]
 ------------------------------------PhysicalProject
---------------------------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk)) 
otherCondition=() build RFs:RF0 d_date_sk->[ws_sold_date_sk]
+--------------------------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk)) 
otherCondition=() build RFs:RF0 d_date_sk->[ss_sold_date_sk]
 ----------------------------------------PhysicalProject
-------------------------------------------PhysicalOlapScan[web_sales] apply 
RFs: RF0
+------------------------------------------PhysicalOlapScan[store_sales] apply 
RFs: RF0
 ----------------------------------------PhysicalProject
 ------------------------------------------filter((date_dim.d_month_seq <= 
1223) and (date_dim.d_month_seq >= 1212))
 --------------------------------------------PhysicalOlapScan[date_dim]
diff --git a/regression-test/data/new_shapes_p0/tpcds_sf1000/shape/query58.out 
b/regression-test/data/new_shapes_p0/tpcds_sf1000/shape/query58.out
index 3bf6c529935..c5002336113 100644
--- a/regression-test/data/new_shapes_p0/tpcds_sf1000/shape/query58.out
+++ b/regression-test/data/new_shapes_p0/tpcds_sf1000/shape/query58.out
@@ -5,17 +5,17 @@ PhysicalResultSink
 ----PhysicalDistribute[DistributionSpecGather]
 ------PhysicalTopN[LOCAL_SORT]
 --------PhysicalProject
-----------hashJoin[INNER_JOIN colocated] hashCondition=((ss_items.item_id = 
ws_items.item_id)) otherCondition=((cast(cs_item_rev as DOUBLE) <= cast((1.1 * 
ws_item_rev) as DOUBLE)) and (cast(cs_item_rev as DOUBLE) >= cast((0.9 * 
ws_item_rev) as DOUBLE)) and (cast(ss_item_rev as DOUBLE) <= cast((1.1 * 
ws_item_rev) as DOUBLE)) and (cast(ss_item_rev as DOUBLE) >= cast((0.9 * 
ws_item_rev) as DOUBLE)) and (cast(ws_item_rev as DOUBLE) <= cast((1.1 * 
cs_item_rev) as DOUBLE)) and (cast(ws_item_re [...]
+----------hashJoin[INNER_JOIN colocated] hashCondition=((ss_items.item_id = 
cs_items.item_id)) otherCondition=((cast(cs_item_rev as DOUBLE) <= cast((1.1 * 
ss_item_rev) as DOUBLE)) and (cast(cs_item_rev as DOUBLE) <= cast((1.1 * 
ws_item_rev) as DOUBLE)) and (cast(cs_item_rev as DOUBLE) >= cast((0.9 * 
ss_item_rev) as DOUBLE)) and (cast(cs_item_rev as DOUBLE) >= cast((0.9 * 
ws_item_rev) as DOUBLE)) and (cast(ss_item_rev as DOUBLE) <= cast((1.1 * 
cs_item_rev) as DOUBLE)) and (cast(ss_item_re [...]
 ------------PhysicalProject
 --------------hashAgg[GLOBAL]
 ----------------PhysicalDistribute[DistributionSpecHash]
 ------------------hashAgg[LOCAL]
 --------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN shuffleBucket] 
hashCondition=((web_sales.ws_item_sk = item.i_item_sk)) otherCondition=() build 
RFs:RF12 i_item_sk->[ws_item_sk]
+----------------------hashJoin[INNER_JOIN shuffleBucket] 
hashCondition=((catalog_sales.cs_item_sk = item.i_item_sk)) otherCondition=() 
build RFs:RF12 i_item_sk->[cs_item_sk]
 ------------------------PhysicalProject
---------------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk)) 
otherCondition=() build RFs:RF11 d_date_sk->[ws_sold_date_sk]
+--------------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk)) 
otherCondition=() build RFs:RF11 d_date_sk->[cs_sold_date_sk]
 ----------------------------PhysicalProject
-------------------------------PhysicalOlapScan[web_sales] apply RFs: RF11 RF12
+------------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF11 
RF12
 ----------------------------PhysicalProject
 ------------------------------hashJoin[LEFT_SEMI_JOIN broadcast] 
hashCondition=((date_dim.d_date = date_dim.d_date)) otherCondition=() build 
RFs:RF10 d_date->[d_date]
 --------------------------------PhysicalProject
@@ -32,7 +32,7 @@ PhysicalResultSink
 ------------------------PhysicalProject
 --------------------------PhysicalOlapScan[item] apply RFs: RF13
 ------------PhysicalProject
---------------hashJoin[INNER_JOIN colocated] hashCondition=((ss_items.item_id 
= cs_items.item_id)) otherCondition=((cast(cs_item_rev as DOUBLE) <= cast((1.1 
* ss_item_rev) as DOUBLE)) and (cast(cs_item_rev as DOUBLE) >= cast((0.9 * 
ss_item_rev) as DOUBLE)) and (cast(ss_item_rev as DOUBLE) <= cast((1.1 * 
cs_item_rev) as DOUBLE)) and (cast(ss_item_rev as DOUBLE) >= cast((0.9 * 
cs_item_rev) as DOUBLE))) build RFs:RF8 item_id->[i_item_id]
+--------------hashJoin[INNER_JOIN colocated] hashCondition=((ss_items.item_id 
= ws_items.item_id)) otherCondition=((cast(ss_item_rev as DOUBLE) <= cast((1.1 
* ws_item_rev) as DOUBLE)) and (cast(ss_item_rev as DOUBLE) >= cast((0.9 * 
ws_item_rev) as DOUBLE)) and (cast(ws_item_rev as DOUBLE) <= cast((1.1 * 
ss_item_rev) as DOUBLE)) and (cast(ws_item_rev as DOUBLE) >= cast((0.9 * 
ss_item_rev) as DOUBLE))) build RFs:RF8 item_id->[i_item_id]
 ----------------PhysicalProject
 ------------------hashAgg[GLOBAL]
 --------------------PhysicalDistribute[DistributionSpecHash]
@@ -63,11 +63,11 @@ PhysicalResultSink
 --------------------PhysicalDistribute[DistributionSpecHash]
 ----------------------hashAgg[LOCAL]
 ------------------------PhysicalProject
---------------------------hashJoin[INNER_JOIN shuffleBucket] 
hashCondition=((catalog_sales.cs_item_sk = item.i_item_sk)) otherCondition=() 
build RFs:RF3 i_item_sk->[cs_item_sk]
+--------------------------hashJoin[INNER_JOIN shuffleBucket] 
hashCondition=((web_sales.ws_item_sk = item.i_item_sk)) otherCondition=() build 
RFs:RF3 i_item_sk->[ws_item_sk]
 ----------------------------PhysicalProject
-------------------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk)) 
otherCondition=() build RFs:RF2 d_date_sk->[cs_sold_date_sk]
+------------------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk)) 
otherCondition=() build RFs:RF2 d_date_sk->[ws_sold_date_sk]
 --------------------------------PhysicalProject
-----------------------------------PhysicalOlapScan[catalog_sales] apply RFs: 
RF2 RF3
+----------------------------------PhysicalOlapScan[web_sales] apply RFs: RF2 
RF3
 --------------------------------PhysicalProject
 ----------------------------------hashJoin[LEFT_SEMI_JOIN broadcast] 
hashCondition=((date_dim.d_date = date_dim.d_date)) otherCondition=() build 
RFs:RF1 d_date->[d_date]
 ------------------------------------PhysicalProject
diff --git a/regression-test/data/new_shapes_p0/tpcds_sf1000/shape/query69.out 
b/regression-test/data/new_shapes_p0/tpcds_sf1000/shape/query69.out
index db0d8c1b62f..9b39b38f3c8 100644
--- a/regression-test/data/new_shapes_p0/tpcds_sf1000/shape/query69.out
+++ b/regression-test/data/new_shapes_p0/tpcds_sf1000/shape/query69.out
@@ -9,39 +9,39 @@ PhysicalResultSink
 ------------PhysicalDistribute[DistributionSpecHash]
 --------------hashAgg[LOCAL]
 ----------------PhysicalProject
-------------------hashJoin[RIGHT_SEMI_JOIN shuffleBucket] 
hashCondition=((c.c_customer_sk = store_sales.ss_customer_sk)) 
otherCondition=() build RFs:RF7 c_customer_sk->[ss_customer_sk]
+------------------hashJoin[RIGHT_SEMI_JOIN shuffleBucket] 
hashCondition=((c.c_customer_sk = store_sales.ss_customer_sk)) 
otherCondition=() build RFs:RF6 c_customer_sk->[ss_customer_sk]
 --------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk)) 
otherCondition=() build RFs:RF6 d_date_sk->[ss_sold_date_sk]
+----------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk)) 
otherCondition=() build RFs:RF5 d_date_sk->[ss_sold_date_sk]
 ------------------------PhysicalProject
---------------------------PhysicalOlapScan[store_sales] apply RFs: RF6 RF7
+--------------------------PhysicalOlapScan[store_sales] apply RFs: RF5 RF6
 ------------------------PhysicalProject
 --------------------------filter((date_dim.d_moy <= 3) and (date_dim.d_moy >= 
1) and (date_dim.d_year = 2002))
 ----------------------------PhysicalOlapScan[date_dim]
---------------------hashJoin[RIGHT_ANTI_JOIN shuffle] 
hashCondition=((c.c_customer_sk = catalog_sales.cs_ship_customer_sk)) 
otherCondition=() build RFs:RF5 c_customer_sk->[cs_ship_customer_sk]
+--------------------hashJoin[RIGHT_ANTI_JOIN shuffle] 
hashCondition=((c.c_customer_sk = catalog_sales.cs_ship_customer_sk)) 
otherCondition=() build RFs:RF4 c_customer_sk->[cs_ship_customer_sk]
 ----------------------PhysicalProject
-------------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk)) 
otherCondition=() build RFs:RF4 d_date_sk->[cs_sold_date_sk]
+------------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk)) 
otherCondition=() build RFs:RF3 d_date_sk->[cs_sold_date_sk]
 --------------------------PhysicalProject
-----------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF4 RF5
+----------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF3 RF4
 --------------------------PhysicalProject
 ----------------------------filter((date_dim.d_moy <= 3) and (date_dim.d_moy 
>= 1) and (date_dim.d_year = 2002))
 ------------------------------PhysicalOlapScan[date_dim]
 ----------------------PhysicalProject
-------------------------hashJoin[INNER_JOIN shuffle] 
hashCondition=((customer_demographics.cd_demo_sk = c.c_current_cdemo_sk)) 
otherCondition=() build RFs:RF3 c_current_cdemo_sk->[cd_demo_sk]
+------------------------hashJoin[INNER_JOIN shuffle] 
hashCondition=((customer_demographics.cd_demo_sk = c.c_current_cdemo_sk)) 
otherCondition=() build RFs:RF2 c_current_cdemo_sk->[cd_demo_sk]
 --------------------------PhysicalProject
-----------------------------PhysicalOlapScan[customer_demographics] apply RFs: 
RF3
---------------------------hashJoin[RIGHT_ANTI_JOIN shuffle] 
hashCondition=((c.c_customer_sk = web_sales.ws_bill_customer_sk)) 
otherCondition=() build RFs:RF2 c_customer_sk->[ws_bill_customer_sk]
-----------------------------PhysicalProject
-------------------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk)) 
otherCondition=() build RFs:RF1 d_date_sk->[ws_sold_date_sk]
---------------------------------PhysicalProject
-----------------------------------PhysicalOlapScan[web_sales] apply RFs: RF1 
RF2
---------------------------------PhysicalProject
-----------------------------------filter((date_dim.d_moy <= 3) and 
(date_dim.d_moy >= 1) and (date_dim.d_year = 2002))
-------------------------------------PhysicalOlapScan[date_dim]
-----------------------------PhysicalProject
-------------------------------hashJoin[INNER_JOIN shuffleBucket] 
hashCondition=((c.c_current_addr_sk = ca.ca_address_sk)) otherCondition=() 
build RFs:RF0 ca_address_sk->[c_current_addr_sk]
+----------------------------PhysicalOlapScan[customer_demographics] apply RFs: 
RF2
+--------------------------PhysicalProject
+----------------------------hashJoin[INNER_JOIN shuffleBucket] 
hashCondition=((c.c_current_addr_sk = ca.ca_address_sk)) otherCondition=() 
build RFs:RF1 ca_address_sk->[c_current_addr_sk]
+------------------------------hashJoin[LEFT_ANTI_JOIN shuffle] 
hashCondition=((c.c_customer_sk = web_sales.ws_bill_customer_sk)) 
otherCondition=()
 --------------------------------PhysicalProject
-----------------------------------PhysicalOlapScan[customer] apply RFs: RF0
+----------------------------------PhysicalOlapScan[customer] apply RFs: RF1
 --------------------------------PhysicalProject
-----------------------------------filter(ca_state IN ('IL', 'ME', 'TX'))
-------------------------------------PhysicalOlapScan[customer_address]
+----------------------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk)) 
otherCondition=() build RFs:RF0 d_date_sk->[ws_sold_date_sk]
+------------------------------------PhysicalProject
+--------------------------------------PhysicalOlapScan[web_sales] apply RFs: 
RF0
+------------------------------------PhysicalProject
+--------------------------------------filter((date_dim.d_moy <= 3) and 
(date_dim.d_moy >= 1) and (date_dim.d_year = 2002))
+----------------------------------------PhysicalOlapScan[date_dim]
+------------------------------PhysicalProject
+--------------------------------filter(ca_state IN ('IL', 'ME', 'TX'))
+----------------------------------PhysicalOlapScan[customer_address]
 
diff --git a/regression-test/data/new_shapes_p0/tpcds_sf1000/shape/query83.out 
b/regression-test/data/new_shapes_p0/tpcds_sf1000/shape/query83.out
index b9c77f6488b..062c94dcafc 100644
--- a/regression-test/data/new_shapes_p0/tpcds_sf1000/shape/query83.out
+++ b/regression-test/data/new_shapes_p0/tpcds_sf1000/shape/query83.out
@@ -5,9 +5,9 @@ PhysicalResultSink
 ----PhysicalDistribute[DistributionSpecGather]
 ------PhysicalTopN[LOCAL_SORT]
 --------PhysicalProject
-----------hashJoin[INNER_JOIN colocated] hashCondition=((sr_items.item_id = 
wr_items.item_id)) otherCondition=() build RFs:RF13 
item_id->[i_item_id,i_item_id]
+----------hashJoin[INNER_JOIN colocated] hashCondition=((sr_items.item_id = 
cr_items.item_id)) otherCondition=() build RFs:RF13 
item_id->[i_item_id,i_item_id]
 ------------PhysicalProject
---------------hashJoin[INNER_JOIN colocated] hashCondition=((sr_items.item_id 
= cr_items.item_id)) otherCondition=() build RFs:RF12 item_id->[i_item_id]
+--------------hashJoin[INNER_JOIN colocated] hashCondition=((sr_items.item_id 
= wr_items.item_id)) otherCondition=() build RFs:RF12 item_id->[i_item_id]
 ----------------PhysicalProject
 ------------------hashAgg[GLOBAL]
 --------------------PhysicalDistribute[DistributionSpecHash]
@@ -36,11 +36,11 @@ PhysicalResultSink
 --------------------PhysicalDistribute[DistributionSpecHash]
 ----------------------hashAgg[LOCAL]
 ------------------------PhysicalProject
---------------------------hashJoin[INNER_JOIN shuffleBucket] 
hashCondition=((catalog_returns.cr_item_sk = item.i_item_sk)) otherCondition=() 
build RFs:RF7 i_item_sk->[cr_item_sk]
+--------------------------hashJoin[INNER_JOIN shuffleBucket] 
hashCondition=((web_returns.wr_item_sk = item.i_item_sk)) otherCondition=() 
build RFs:RF7 i_item_sk->[wr_item_sk]
 ----------------------------PhysicalProject
-------------------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((catalog_returns.cr_returned_date_sk = date_dim.d_date_sk)) 
otherCondition=() build RFs:RF6 d_date_sk->[cr_returned_date_sk]
+------------------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((web_returns.wr_returned_date_sk = date_dim.d_date_sk)) 
otherCondition=() build RFs:RF6 d_date_sk->[wr_returned_date_sk]
 --------------------------------PhysicalProject
-----------------------------------PhysicalOlapScan[catalog_returns] apply RFs: 
RF6 RF7
+----------------------------------PhysicalOlapScan[web_returns] apply RFs: RF6 
RF7
 --------------------------------PhysicalProject
 ----------------------------------hashJoin[LEFT_SEMI_JOIN broadcast] 
hashCondition=((date_dim.d_date = date_dim.d_date)) otherCondition=() build 
RFs:RF5 d_date->[d_date]
 ------------------------------------PhysicalProject
@@ -59,11 +59,11 @@ PhysicalResultSink
 ----------------PhysicalDistribute[DistributionSpecHash]
 ------------------hashAgg[LOCAL]
 --------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN shuffleBucket] 
hashCondition=((web_returns.wr_item_sk = item.i_item_sk)) otherCondition=() 
build RFs:RF3 i_item_sk->[wr_item_sk]
+----------------------hashJoin[INNER_JOIN shuffleBucket] 
hashCondition=((catalog_returns.cr_item_sk = item.i_item_sk)) otherCondition=() 
build RFs:RF3 i_item_sk->[cr_item_sk]
 ------------------------PhysicalProject
---------------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((web_returns.wr_returned_date_sk = date_dim.d_date_sk)) 
otherCondition=() build RFs:RF2 d_date_sk->[wr_returned_date_sk]
+--------------------------hashJoin[INNER_JOIN broadcast] 
hashCondition=((catalog_returns.cr_returned_date_sk = date_dim.d_date_sk)) 
otherCondition=() build RFs:RF2 d_date_sk->[cr_returned_date_sk]
 ----------------------------PhysicalProject
-------------------------------PhysicalOlapScan[web_returns] apply RFs: RF2 RF3
+------------------------------PhysicalOlapScan[catalog_returns] apply RFs: RF2 
RF3
 ----------------------------PhysicalProject
 ------------------------------hashJoin[LEFT_SEMI_JOIN broadcast] 
hashCondition=((date_dim.d_date = date_dim.d_date)) otherCondition=() build 
RFs:RF1 d_date->[d_date]
 --------------------------------PhysicalProject
diff --git a/regression-test/data/new_shapes_p0/tpch_sf1000/rf_prune/q16.out 
b/regression-test/data/new_shapes_p0/tpch_sf1000/rf_prune/q16.out
index 314b5400d03..f04b0bc7663 100644
--- a/regression-test/data/new_shapes_p0/tpch_sf1000/rf_prune/q16.out
+++ b/regression-test/data/new_shapes_p0/tpch_sf1000/rf_prune/q16.out
@@ -7,7 +7,7 @@ PhysicalResultSink
 --------hashAgg[GLOBAL]
 ----------PhysicalDistribute[DistributionSpecHash]
 ------------hashAgg[LOCAL]
---------------hashJoin[LEFT_ANTI_JOIN shuffleBucket] 
hashCondition=((partsupp.ps_suppkey = supplier.s_suppkey)) otherCondition=()
+--------------hashJoin[LEFT_ANTI_JOIN broadcast] 
hashCondition=((partsupp.ps_suppkey = supplier.s_suppkey)) otherCondition=()
 ----------------PhysicalProject
 ------------------hashJoin[INNER_JOIN colocated] 
hashCondition=((part.p_partkey = partsupp.ps_partkey)) otherCondition=() build 
RFs:RF0 p_partkey->[ps_partkey]
 --------------------PhysicalProject
diff --git a/regression-test/data/new_shapes_p0/tpch_sf1000/shape/q16.out 
b/regression-test/data/new_shapes_p0/tpch_sf1000/shape/q16.out
index 314b5400d03..f04b0bc7663 100644
--- a/regression-test/data/new_shapes_p0/tpch_sf1000/shape/q16.out
+++ b/regression-test/data/new_shapes_p0/tpch_sf1000/shape/q16.out
@@ -7,7 +7,7 @@ PhysicalResultSink
 --------hashAgg[GLOBAL]
 ----------PhysicalDistribute[DistributionSpecHash]
 ------------hashAgg[LOCAL]
---------------hashJoin[LEFT_ANTI_JOIN shuffleBucket] 
hashCondition=((partsupp.ps_suppkey = supplier.s_suppkey)) otherCondition=()
+--------------hashJoin[LEFT_ANTI_JOIN broadcast] 
hashCondition=((partsupp.ps_suppkey = supplier.s_suppkey)) otherCondition=()
 ----------------PhysicalProject
 ------------------hashJoin[INNER_JOIN colocated] 
hashCondition=((part.p_partkey = partsupp.ps_partkey)) otherCondition=() build 
RFs:RF0 p_partkey->[ps_partkey]
 --------------------PhysicalProject


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

Reply via email to