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

englefly 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 8e358617c7e [opt](nereids)expr normalize after filter pushdown (#28743)
8e358617c7e is described below

commit 8e358617c7e1b8c27c5da5568ddf188e2b621a98
Author: minghong <[email protected]>
AuthorDate: Wed Dec 27 11:37:36 2023 +0800

    [opt](nereids)expr normalize after filter pushdown (#28743)
    
    normalize expression after filter push down
---
 .../java/org/apache/doris/nereids/jobs/executor/Rewriter.java     | 2 ++
 .../data/nereids_tpcds_shape_sf1000_p0/shape/query13.out          | 4 ++--
 .../data/nereids_tpcds_shape_sf1000_p0/shape/query48.out          | 2 +-
 .../data/nereids_tpcds_shape_sf1000_p0/shape/query85.out          | 2 +-
 .../data/nereids_tpcds_shape_sf100_p0/noStatsRfPrune/query13.out  | 4 ++--
 .../data/nereids_tpcds_shape_sf100_p0/noStatsRfPrune/query48.out  | 2 +-
 .../data/nereids_tpcds_shape_sf100_p0/noStatsRfPrune/query85.out  | 8 ++++----
 .../data/nereids_tpcds_shape_sf100_p0/no_stats_shape/query13.out  | 4 ++--
 .../data/nereids_tpcds_shape_sf100_p0/no_stats_shape/query48.out  | 2 +-
 .../data/nereids_tpcds_shape_sf100_p0/no_stats_shape/query85.out  | 8 ++++----
 .../data/nereids_tpcds_shape_sf100_p0/rf_prune/query13.out        | 4 ++--
 .../data/nereids_tpcds_shape_sf100_p0/rf_prune/query48.out        | 2 +-
 .../data/nereids_tpcds_shape_sf100_p0/rf_prune/query85.out        | 2 +-
 .../data/nereids_tpcds_shape_sf100_p0/shape/query13.out           | 4 ++--
 .../data/nereids_tpcds_shape_sf100_p0/shape/query48.out           | 2 +-
 .../data/nereids_tpcds_shape_sf100_p0/shape/query85.out           | 2 +-
 .../data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q19.out    | 2 +-
 .../data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q7.out     | 4 ++--
 .../data/nereids_tpch_shape_sf1000_p0/rf_prune/q19.out            | 2 +-
 regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q7.out | 4 ++--
 regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q19.out   | 2 +-
 regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q7.out    | 4 ++--
 .../data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q19.out      | 2 +-
 .../data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q7.out       | 4 ++--
 24 files changed, 40 insertions(+), 38 deletions(-)

diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/jobs/executor/Rewriter.java 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/jobs/executor/Rewriter.java
index af8f266a637..fc3ef04fba8 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/jobs/executor/Rewriter.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/jobs/executor/Rewriter.java
@@ -222,6 +222,8 @@ public class Rewriter extends AbstractBatchJobExecutor {
                     // but top-down traverse can not cover this case in one 
iteration, so bottom-up is more
                     // efficient because it can find the new plans and apply 
transform wherever it is
                     bottomUp(RuleSet.PUSH_DOWN_FILTERS),
+                    //after push down, some new filters are generated, which 
needs to be optimized. (example: tpch q19)
+                    topDown(new ExpressionOptimization()),
                     topDown(
                             new MergeFilters(),
                             new ReorderJoin(),
diff --git 
a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query13.out 
b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query13.out
index e7ef5574c7f..69173c83eae 100644
--- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query13.out
+++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query13.out
@@ -19,7 +19,7 @@ PhysicalResultSink
 ------------------------hashJoin[INNER_JOIN] 
hashCondition=((store_sales.ss_addr_sk = customer_address.ca_address_sk)) 
otherCondition=((((ca_state IN ('IL', 'TN', 'TX') AND 
((store_sales.ss_net_profit >= 100.00) AND (store_sales.ss_net_profit <= 
200.00))) OR (ca_state IN ('ID', 'OH', 'WY') AND ((store_sales.ss_net_profit >= 
150.00) AND (store_sales.ss_net_profit <= 300.00)))) OR (ca_state IN ('IA', 
'MS', 'SC') AND ((store_sales.ss_net_profit >= 50.00) AND 
(store_sales.ss_net_profit <= 25 [...]
 --------------------------PhysicalDistribute
 ----------------------------PhysicalProject
-------------------------------filter(((((store_sales.ss_net_profit >= 100.00) 
AND (store_sales.ss_net_profit <= 200.00)) OR ((store_sales.ss_net_profit >= 
150.00) AND (store_sales.ss_net_profit <= 300.00))) OR 
((store_sales.ss_net_profit >= 50.00) AND (store_sales.ss_net_profit <= 
250.00))) and ((((store_sales.ss_sales_price >= 100.00) AND 
(store_sales.ss_sales_price <= 150.00)) OR ((store_sales.ss_sales_price >= 
50.00) AND (store_sales.ss_sales_price <= 100.00))) OR ((store_sales.ss_sal 
[...]
+------------------------------filter((store_sales.ss_net_profit <= 300.00) and 
(store_sales.ss_net_profit >= 50.00) and (store_sales.ss_sales_price <= 200.00) 
and (store_sales.ss_sales_price >= 50.00))
 --------------------------------PhysicalOlapScan[store_sales] apply RFs: RF0 
RF1 RF2 RF4
 --------------------------PhysicalDistribute
 ----------------------------PhysicalProject
@@ -31,7 +31,7 @@ PhysicalResultSink
 ------------------------------PhysicalOlapScan[date_dim]
 ----------------------PhysicalDistribute
 ------------------------PhysicalProject
---------------------------filter(((household_demographics.hd_dep_count = 3) OR 
(household_demographics.hd_dep_count = 1)))
+--------------------------filter(hd_dep_count IN (1, 3))
 ----------------------------PhysicalOlapScan[household_demographics]
 ------------PhysicalDistribute
 --------------PhysicalProject
diff --git 
a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query48.out 
b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query48.out
index bc3047ea873..1a75b584a26 100644
--- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query48.out
+++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query48.out
@@ -13,7 +13,7 @@ PhysicalResultSink
 --------------------PhysicalDistribute
 ----------------------hashJoin[INNER_JOIN] 
hashCondition=((customer_demographics.cd_demo_sk = store_sales.ss_cdemo_sk)) 
otherCondition=((((((customer_demographics.cd_marital_status = 'S') AND 
(customer_demographics.cd_education_status = 'Secondary')) AND 
((store_sales.ss_sales_price >= 100.00) AND (store_sales.ss_sales_price <= 
150.00))) OR (((customer_demographics.cd_marital_status = 'M') AND 
(customer_demographics.cd_education_status = '2 yr Degree')) AND 
((store_sales.ss_sales_price > [...]
 ------------------------PhysicalProject
---------------------------filter(((((store_sales.ss_net_profit >= 0.00) AND 
(store_sales.ss_net_profit <= 2000.00)) OR ((store_sales.ss_net_profit >= 
150.00) AND (store_sales.ss_net_profit <= 3000.00))) OR 
((store_sales.ss_net_profit >= 50.00) AND (store_sales.ss_net_profit <= 
25000.00))) and ((((store_sales.ss_sales_price >= 100.00) AND 
(store_sales.ss_sales_price <= 150.00)) OR ((store_sales.ss_sales_price >= 
50.00) AND (store_sales.ss_sales_price <= 100.00))) OR ((store_sales.ss_sales 
[...]
+--------------------------filter((store_sales.ss_net_profit <= 25000.00) and 
(store_sales.ss_net_profit >= 0.00) and (store_sales.ss_sales_price <= 200.00) 
and (store_sales.ss_sales_price >= 50.00))
 ----------------------------PhysicalOlapScan[store_sales] apply RFs: RF0 RF1 
RF2 RF3
 ------------------------PhysicalDistribute
 --------------------------PhysicalProject
diff --git 
a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query85.out 
b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query85.out
index 49c9575af06..6d3a45d8a53 100644
--- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query85.out
+++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query85.out
@@ -35,7 +35,7 @@ PhysicalResultSink
 
--------------------------------------------------PhysicalOlapScan[web_returns] 
apply RFs: RF1 RF2 RF3 RF9
 ------------------------------------------------hashJoin[INNER_JOIN] 
hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk)) 
otherCondition=() build RFs:RF0 d_date_sk->[ws_sold_date_sk]
 --------------------------------------------------PhysicalProject
-----------------------------------------------------filter(((((web_sales.ws_net_profit
 >= 100.00) AND (web_sales.ws_net_profit <= 200.00)) OR 
((web_sales.ws_net_profit >= 150.00) AND (web_sales.ws_net_profit <= 300.00))) 
OR ((web_sales.ws_net_profit >= 50.00) AND (web_sales.ws_net_profit <= 
250.00))) and ((((web_sales.ws_sales_price >= 100.00) AND 
(web_sales.ws_sales_price <= 150.00)) OR ((web_sales.ws_sales_price >= 50.00) 
AND (web_sales.ws_sales_price <= 100.00))) OR ((web_sales.ws_sal [...]
+----------------------------------------------------filter((web_sales.ws_net_profit
 <= 300.00) and (web_sales.ws_net_profit >= 50.00) and 
(web_sales.ws_sales_price <= 200.00) and (web_sales.ws_sales_price >= 50.00))
 
------------------------------------------------------PhysicalOlapScan[web_sales]
 apply RFs: RF0
 --------------------------------------------------PhysicalDistribute
 ----------------------------------------------------PhysicalProject
diff --git 
a/regression-test/data/nereids_tpcds_shape_sf100_p0/noStatsRfPrune/query13.out 
b/regression-test/data/nereids_tpcds_shape_sf100_p0/noStatsRfPrune/query13.out
index ad8eecd7159..cb98071908d 100644
--- 
a/regression-test/data/nereids_tpcds_shape_sf100_p0/noStatsRfPrune/query13.out
+++ 
b/regression-test/data/nereids_tpcds_shape_sf100_p0/noStatsRfPrune/query13.out
@@ -14,7 +14,7 @@ PhysicalResultSink
 ----------------------hashJoin[INNER_JOIN] 
hashCondition=((customer_demographics.cd_demo_sk = store_sales.ss_cdemo_sk)) 
otherCondition=() build RFs:RF0 cd_demo_sk->[ss_cdemo_sk]
 ------------------------PhysicalDistribute
 --------------------------PhysicalProject
-----------------------------filter(((((store_sales.ss_net_profit >= 100.00) 
AND (store_sales.ss_net_profit <= 200.00)) OR ((store_sales.ss_net_profit >= 
150.00) AND (store_sales.ss_net_profit <= 300.00))) OR 
((store_sales.ss_net_profit >= 50.00) AND (store_sales.ss_net_profit <= 
250.00))) and ((((store_sales.ss_sales_price >= 100.00) AND 
(store_sales.ss_sales_price <= 150.00)) OR ((store_sales.ss_sales_price >= 
50.00) AND (store_sales.ss_sales_price <= 100.00))) OR ((store_sales.ss_sales 
[...]
+----------------------------filter((store_sales.ss_net_profit <= 300.00) and 
(store_sales.ss_net_profit >= 50.00) and (store_sales.ss_sales_price <= 200.00) 
and (store_sales.ss_sales_price >= 50.00))
 ------------------------------PhysicalOlapScan[store_sales] apply RFs: RF0 RF2 
RF3 RF4
 ------------------------PhysicalDistribute
 --------------------------PhysicalProject
@@ -29,7 +29,7 @@ PhysicalResultSink
 ------------------------PhysicalOlapScan[customer_address]
 ----------------PhysicalDistribute
 ------------------PhysicalProject
---------------------filter(((household_demographics.hd_dep_count = 3) OR 
(household_demographics.hd_dep_count = 1)))
+--------------------filter(hd_dep_count IN (1, 3))
 ----------------------PhysicalOlapScan[household_demographics]
 ------------PhysicalDistribute
 --------------PhysicalProject
diff --git 
a/regression-test/data/nereids_tpcds_shape_sf100_p0/noStatsRfPrune/query48.out 
b/regression-test/data/nereids_tpcds_shape_sf100_p0/noStatsRfPrune/query48.out
index 6d35acaa62f..a1e2aad9c5f 100644
--- 
a/regression-test/data/nereids_tpcds_shape_sf100_p0/noStatsRfPrune/query48.out
+++ 
b/regression-test/data/nereids_tpcds_shape_sf100_p0/noStatsRfPrune/query48.out
@@ -13,7 +13,7 @@ PhysicalResultSink
 --------------------hashJoin[INNER_JOIN] 
hashCondition=((customer_demographics.cd_demo_sk = store_sales.ss_cdemo_sk)) 
otherCondition=((((((customer_demographics.cd_marital_status = 'U') AND 
(customer_demographics.cd_education_status = 'Primary')) AND 
((store_sales.ss_sales_price >= 100.00) AND (store_sales.ss_sales_price <= 
150.00))) OR (((customer_demographics.cd_marital_status = 'W') AND 
(customer_demographics.cd_education_status = 'College')) AND 
((store_sales.ss_sales_price >= 50.00) [...]
 ----------------------PhysicalDistribute
 ------------------------PhysicalProject
---------------------------filter(((((store_sales.ss_net_profit >= 0.00) AND 
(store_sales.ss_net_profit <= 2000.00)) OR ((store_sales.ss_net_profit >= 
150.00) AND (store_sales.ss_net_profit <= 3000.00))) OR 
((store_sales.ss_net_profit >= 50.00) AND (store_sales.ss_net_profit <= 
25000.00))) and ((((store_sales.ss_sales_price >= 100.00) AND 
(store_sales.ss_sales_price <= 150.00)) OR ((store_sales.ss_sales_price >= 
50.00) AND (store_sales.ss_sales_price <= 100.00))) OR ((store_sales.ss_sales 
[...]
+--------------------------filter((store_sales.ss_net_profit <= 25000.00) and 
(store_sales.ss_net_profit >= 0.00) and (store_sales.ss_sales_price <= 200.00) 
and (store_sales.ss_sales_price >= 50.00))
 ----------------------------PhysicalOlapScan[store_sales] apply RFs: RF0 RF2 
RF3
 ----------------------PhysicalDistribute
 ------------------------PhysicalProject
diff --git 
a/regression-test/data/nereids_tpcds_shape_sf100_p0/noStatsRfPrune/query85.out 
b/regression-test/data/nereids_tpcds_shape_sf100_p0/noStatsRfPrune/query85.out
index 34cd3f8686b..fc66cb90113 100644
--- 
a/regression-test/data/nereids_tpcds_shape_sf100_p0/noStatsRfPrune/query85.out
+++ 
b/regression-test/data/nereids_tpcds_shape_sf100_p0/noStatsRfPrune/query85.out
@@ -22,12 +22,12 @@ PhysicalResultSink
 --------------------------------------hashJoin[INNER_JOIN] 
hashCondition=((cd1.cd_demo_sk = web_returns.wr_refunded_cdemo_sk)) 
otherCondition=((((((cd1.cd_marital_status = 'M') AND (cd1.cd_education_status 
= '4 yr Degree')) AND ((web_sales.ws_sales_price >= 100.00) AND 
(web_sales.ws_sales_price <= 150.00))) OR (((cd1.cd_marital_status = 'S') AND 
(cd1.cd_education_status = 'Secondary')) AND ((web_sales.ws_sales_price >= 
50.00) AND (web_sales.ws_sales_price <= 100.00)))) OR (((cd1.cd_marit [...]
 ----------------------------------------PhysicalDistribute
 ------------------------------------------PhysicalProject
---------------------------------------------hashJoin[INNER_JOIN] 
hashCondition=((web_sales.ws_item_sk = web_returns.wr_item_sk) and 
(web_sales.ws_order_number = web_returns.wr_order_number)) otherCondition=() 
build RFs:RF0 wr_item_sk->[ws_item_sk];RF1 wr_order_number->[ws_order_number]
+--------------------------------------------hashJoin[INNER_JOIN] 
hashCondition=((web_sales.ws_item_sk = web_returns.wr_item_sk) and 
(web_sales.ws_order_number = web_returns.wr_order_number)) otherCondition=() 
build RFs:RF0 ws_item_sk->[wr_item_sk];RF1 ws_order_number->[wr_order_number]
 ----------------------------------------------PhysicalProject
-------------------------------------------------filter(((((web_sales.ws_net_profit
 >= 100.00) AND (web_sales.ws_net_profit <= 200.00)) OR 
((web_sales.ws_net_profit >= 150.00) AND (web_sales.ws_net_profit <= 300.00))) 
OR ((web_sales.ws_net_profit >= 50.00) AND (web_sales.ws_net_profit <= 
250.00))) and ((((web_sales.ws_sales_price >= 100.00) AND 
(web_sales.ws_sales_price <= 150.00)) OR ((web_sales.ws_sales_price >= 50.00) 
AND (web_sales.ws_sales_price <= 100.00))) OR ((web_sales.ws_sales_p [...]
---------------------------------------------------PhysicalOlapScan[web_sales] 
apply RFs: RF0 RF1 RF8
+------------------------------------------------PhysicalOlapScan[web_returns] 
apply RFs: RF0 RF1 RF2 RF7
 ----------------------------------------------PhysicalProject
-------------------------------------------------PhysicalOlapScan[web_returns] 
apply RFs: RF2 RF7
+------------------------------------------------filter((web_sales.ws_net_profit
 <= 300.00) and (web_sales.ws_net_profit >= 50.00) and 
(web_sales.ws_sales_price <= 200.00) and (web_sales.ws_sales_price >= 50.00))
+--------------------------------------------------PhysicalOlapScan[web_sales] 
apply RFs: RF8
 ----------------------------------------PhysicalDistribute
 ------------------------------------------PhysicalProject
 --------------------------------------------filter(((((cd1.cd_marital_status = 
'M') AND (cd1.cd_education_status = '4 yr Degree')) OR ((cd1.cd_marital_status 
= 'S') AND (cd1.cd_education_status = 'Secondary'))) OR ((cd1.cd_marital_status 
= 'W') AND (cd1.cd_education_status = 'Advanced Degree'))))
diff --git 
a/regression-test/data/nereids_tpcds_shape_sf100_p0/no_stats_shape/query13.out 
b/regression-test/data/nereids_tpcds_shape_sf100_p0/no_stats_shape/query13.out
index 43c19e74dd5..422ab6674da 100644
--- 
a/regression-test/data/nereids_tpcds_shape_sf100_p0/no_stats_shape/query13.out
+++ 
b/regression-test/data/nereids_tpcds_shape_sf100_p0/no_stats_shape/query13.out
@@ -14,7 +14,7 @@ PhysicalResultSink
 ----------------------hashJoin[INNER_JOIN] 
hashCondition=((customer_demographics.cd_demo_sk = store_sales.ss_cdemo_sk)) 
otherCondition=() build RFs:RF0 cd_demo_sk->[ss_cdemo_sk]
 ------------------------PhysicalDistribute
 --------------------------PhysicalProject
-----------------------------filter(((((store_sales.ss_net_profit >= 100.00) 
AND (store_sales.ss_net_profit <= 200.00)) OR ((store_sales.ss_net_profit >= 
150.00) AND (store_sales.ss_net_profit <= 300.00))) OR 
((store_sales.ss_net_profit >= 50.00) AND (store_sales.ss_net_profit <= 
250.00))) and ((((store_sales.ss_sales_price >= 100.00) AND 
(store_sales.ss_sales_price <= 150.00)) OR ((store_sales.ss_sales_price >= 
50.00) AND (store_sales.ss_sales_price <= 100.00))) OR ((store_sales.ss_sales 
[...]
+----------------------------filter((store_sales.ss_net_profit <= 300.00) and 
(store_sales.ss_net_profit >= 50.00) and (store_sales.ss_sales_price <= 200.00) 
and (store_sales.ss_sales_price >= 50.00))
 ------------------------------PhysicalOlapScan[store_sales] apply RFs: RF0 RF1 
RF2 RF3 RF4
 ------------------------PhysicalDistribute
 --------------------------PhysicalProject
@@ -29,7 +29,7 @@ PhysicalResultSink
 ------------------------PhysicalOlapScan[customer_address]
 ----------------PhysicalDistribute
 ------------------PhysicalProject
---------------------filter(((household_demographics.hd_dep_count = 3) OR 
(household_demographics.hd_dep_count = 1)))
+--------------------filter(hd_dep_count IN (1, 3))
 ----------------------PhysicalOlapScan[household_demographics]
 ------------PhysicalDistribute
 --------------PhysicalProject
diff --git 
a/regression-test/data/nereids_tpcds_shape_sf100_p0/no_stats_shape/query48.out 
b/regression-test/data/nereids_tpcds_shape_sf100_p0/no_stats_shape/query48.out
index fe9aa0edcfa..9d3aeff4bc4 100644
--- 
a/regression-test/data/nereids_tpcds_shape_sf100_p0/no_stats_shape/query48.out
+++ 
b/regression-test/data/nereids_tpcds_shape_sf100_p0/no_stats_shape/query48.out
@@ -13,7 +13,7 @@ PhysicalResultSink
 --------------------hashJoin[INNER_JOIN] 
hashCondition=((customer_demographics.cd_demo_sk = store_sales.ss_cdemo_sk)) 
otherCondition=((((((customer_demographics.cd_marital_status = 'U') AND 
(customer_demographics.cd_education_status = 'Primary')) AND 
((store_sales.ss_sales_price >= 100.00) AND (store_sales.ss_sales_price <= 
150.00))) OR (((customer_demographics.cd_marital_status = 'W') AND 
(customer_demographics.cd_education_status = 'College')) AND 
((store_sales.ss_sales_price >= 50.00) [...]
 ----------------------PhysicalDistribute
 ------------------------PhysicalProject
---------------------------filter(((((store_sales.ss_net_profit >= 0.00) AND 
(store_sales.ss_net_profit <= 2000.00)) OR ((store_sales.ss_net_profit >= 
150.00) AND (store_sales.ss_net_profit <= 3000.00))) OR 
((store_sales.ss_net_profit >= 50.00) AND (store_sales.ss_net_profit <= 
25000.00))) and ((((store_sales.ss_sales_price >= 100.00) AND 
(store_sales.ss_sales_price <= 150.00)) OR ((store_sales.ss_sales_price >= 
50.00) AND (store_sales.ss_sales_price <= 100.00))) OR ((store_sales.ss_sales 
[...]
+--------------------------filter((store_sales.ss_net_profit <= 25000.00) and 
(store_sales.ss_net_profit >= 0.00) and (store_sales.ss_sales_price <= 200.00) 
and (store_sales.ss_sales_price >= 50.00))
 ----------------------------PhysicalOlapScan[store_sales] apply RFs: RF0 RF1 
RF2 RF3
 ----------------------PhysicalDistribute
 ------------------------PhysicalProject
diff --git 
a/regression-test/data/nereids_tpcds_shape_sf100_p0/no_stats_shape/query85.out 
b/regression-test/data/nereids_tpcds_shape_sf100_p0/no_stats_shape/query85.out
index e222cc74b10..1e0b72101a2 100644
--- 
a/regression-test/data/nereids_tpcds_shape_sf100_p0/no_stats_shape/query85.out
+++ 
b/regression-test/data/nereids_tpcds_shape_sf100_p0/no_stats_shape/query85.out
@@ -22,12 +22,12 @@ PhysicalResultSink
 --------------------------------------hashJoin[INNER_JOIN] 
hashCondition=((cd1.cd_demo_sk = web_returns.wr_refunded_cdemo_sk)) 
otherCondition=((((((cd1.cd_marital_status = 'M') AND (cd1.cd_education_status 
= '4 yr Degree')) AND ((web_sales.ws_sales_price >= 100.00) AND 
(web_sales.ws_sales_price <= 150.00))) OR (((cd1.cd_marital_status = 'S') AND 
(cd1.cd_education_status = 'Secondary')) AND ((web_sales.ws_sales_price >= 
50.00) AND (web_sales.ws_sales_price <= 100.00)))) OR (((cd1.cd_marit [...]
 ----------------------------------------PhysicalDistribute
 ------------------------------------------PhysicalProject
---------------------------------------------hashJoin[INNER_JOIN] 
hashCondition=((web_sales.ws_item_sk = web_returns.wr_item_sk) and 
(web_sales.ws_order_number = web_returns.wr_order_number)) otherCondition=() 
build RFs:RF0 wr_item_sk->[ws_item_sk];RF1 wr_order_number->[ws_order_number]
+--------------------------------------------hashJoin[INNER_JOIN] 
hashCondition=((web_sales.ws_item_sk = web_returns.wr_item_sk) and 
(web_sales.ws_order_number = web_returns.wr_order_number)) otherCondition=() 
build RFs:RF0 ws_item_sk->[wr_item_sk];RF1 ws_order_number->[wr_order_number]
 ----------------------------------------------PhysicalProject
-------------------------------------------------filter(((((web_sales.ws_net_profit
 >= 100.00) AND (web_sales.ws_net_profit <= 200.00)) OR 
((web_sales.ws_net_profit >= 150.00) AND (web_sales.ws_net_profit <= 300.00))) 
OR ((web_sales.ws_net_profit >= 50.00) AND (web_sales.ws_net_profit <= 
250.00))) and ((((web_sales.ws_sales_price >= 100.00) AND 
(web_sales.ws_sales_price <= 150.00)) OR ((web_sales.ws_sales_price >= 50.00) 
AND (web_sales.ws_sales_price <= 100.00))) OR ((web_sales.ws_sales_p [...]
---------------------------------------------------PhysicalOlapScan[web_sales] 
apply RFs: RF0 RF1 RF3 RF8
+------------------------------------------------PhysicalOlapScan[web_returns] 
apply RFs: RF0 RF1 RF2 RF6 RF7 RF9
 ----------------------------------------------PhysicalProject
-------------------------------------------------PhysicalOlapScan[web_returns] 
apply RFs: RF2 RF6 RF7 RF9
+------------------------------------------------filter((web_sales.ws_net_profit
 <= 300.00) and (web_sales.ws_net_profit >= 50.00) and 
(web_sales.ws_sales_price <= 200.00) and (web_sales.ws_sales_price >= 50.00))
+--------------------------------------------------PhysicalOlapScan[web_sales] 
apply RFs: RF3 RF8
 ----------------------------------------PhysicalDistribute
 ------------------------------------------PhysicalProject
 --------------------------------------------filter(((((cd1.cd_marital_status = 
'M') AND (cd1.cd_education_status = '4 yr Degree')) OR ((cd1.cd_marital_status 
= 'S') AND (cd1.cd_education_status = 'Secondary'))) OR ((cd1.cd_marital_status 
= 'W') AND (cd1.cd_education_status = 'Advanced Degree'))))
diff --git 
a/regression-test/data/nereids_tpcds_shape_sf100_p0/rf_prune/query13.out 
b/regression-test/data/nereids_tpcds_shape_sf100_p0/rf_prune/query13.out
index fe8d050464e..9565e553c2f 100644
--- a/regression-test/data/nereids_tpcds_shape_sf100_p0/rf_prune/query13.out
+++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/rf_prune/query13.out
@@ -21,7 +21,7 @@ PhysicalResultSink
 --------------------------hashJoin[INNER_JOIN] 
hashCondition=((store_sales.ss_addr_sk = customer_address.ca_address_sk)) 
otherCondition=((((ca_state IN ('KS', 'MI', 'SD') AND 
((store_sales.ss_net_profit >= 100.00) AND (store_sales.ss_net_profit <= 
200.00))) OR (ca_state IN ('CO', 'MO', 'ND') AND ((store_sales.ss_net_profit >= 
150.00) AND (store_sales.ss_net_profit <= 300.00)))) OR (ca_state IN ('NH', 
'OH', 'TX') AND ((store_sales.ss_net_profit >= 50.00) AND 
(store_sales.ss_net_profit <=  [...]
 ----------------------------PhysicalDistribute
 ------------------------------PhysicalProject
---------------------------------filter(((((store_sales.ss_net_profit >= 
100.00) AND (store_sales.ss_net_profit <= 200.00)) OR 
((store_sales.ss_net_profit >= 150.00) AND (store_sales.ss_net_profit <= 
300.00))) OR ((store_sales.ss_net_profit >= 50.00) AND 
(store_sales.ss_net_profit <= 250.00))) and ((((store_sales.ss_sales_price >= 
100.00) AND (store_sales.ss_sales_price <= 150.00)) OR 
((store_sales.ss_sales_price >= 50.00) AND (store_sales.ss_sales_price <= 
100.00))) OR ((store_sales.ss_s [...]
+--------------------------------filter((store_sales.ss_net_profit <= 300.00) 
and (store_sales.ss_net_profit >= 50.00) and (store_sales.ss_sales_price <= 
200.00) and (store_sales.ss_sales_price >= 50.00))
 ----------------------------------PhysicalOlapScan[store_sales] apply RFs: RF0 
RF1 RF2
 ----------------------------PhysicalDistribute
 ------------------------------PhysicalProject
@@ -33,6 +33,6 @@ PhysicalResultSink
 --------------------------------PhysicalOlapScan[date_dim]
 ------------------------PhysicalDistribute
 --------------------------PhysicalProject
-----------------------------filter(((household_demographics.hd_dep_count = 3) 
OR (household_demographics.hd_dep_count = 1)))
+----------------------------filter(hd_dep_count IN (1, 3))
 ------------------------------PhysicalOlapScan[household_demographics]
 
diff --git 
a/regression-test/data/nereids_tpcds_shape_sf100_p0/rf_prune/query48.out 
b/regression-test/data/nereids_tpcds_shape_sf100_p0/rf_prune/query48.out
index b1668554b02..6f8c32bfebc 100644
--- a/regression-test/data/nereids_tpcds_shape_sf100_p0/rf_prune/query48.out
+++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/rf_prune/query48.out
@@ -13,7 +13,7 @@ PhysicalResultSink
 --------------------PhysicalDistribute
 ----------------------hashJoin[INNER_JOIN] 
hashCondition=((customer_demographics.cd_demo_sk = store_sales.ss_cdemo_sk)) 
otherCondition=((((((customer_demographics.cd_marital_status = 'U') AND 
(customer_demographics.cd_education_status = 'Primary')) AND 
((store_sales.ss_sales_price >= 100.00) AND (store_sales.ss_sales_price <= 
150.00))) OR (((customer_demographics.cd_marital_status = 'W') AND 
(customer_demographics.cd_education_status = 'College')) AND 
((store_sales.ss_sales_price >= 50.0 [...]
 ------------------------PhysicalProject
---------------------------filter(((((store_sales.ss_net_profit >= 0.00) AND 
(store_sales.ss_net_profit <= 2000.00)) OR ((store_sales.ss_net_profit >= 
150.00) AND (store_sales.ss_net_profit <= 3000.00))) OR 
((store_sales.ss_net_profit >= 50.00) AND (store_sales.ss_net_profit <= 
25000.00))) and ((((store_sales.ss_sales_price >= 100.00) AND 
(store_sales.ss_sales_price <= 150.00)) OR ((store_sales.ss_sales_price >= 
50.00) AND (store_sales.ss_sales_price <= 100.00))) OR ((store_sales.ss_sales 
[...]
+--------------------------filter((store_sales.ss_net_profit <= 25000.00) and 
(store_sales.ss_net_profit >= 0.00) and (store_sales.ss_sales_price <= 200.00) 
and (store_sales.ss_sales_price >= 50.00))
 ----------------------------PhysicalOlapScan[store_sales] apply RFs: RF0 RF1 
RF2
 ------------------------PhysicalDistribute
 --------------------------PhysicalProject
diff --git 
a/regression-test/data/nereids_tpcds_shape_sf100_p0/rf_prune/query85.out 
b/regression-test/data/nereids_tpcds_shape_sf100_p0/rf_prune/query85.out
index dcf3eb64f34..a79804a81de 100644
--- a/regression-test/data/nereids_tpcds_shape_sf100_p0/rf_prune/query85.out
+++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/rf_prune/query85.out
@@ -30,7 +30,7 @@ PhysicalResultSink
 --------------------------------------------PhysicalOlapScan[web_returns] 
apply RFs: RF1 RF2 RF3
 ------------------------------------------hashJoin[INNER_JOIN] 
hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk)) 
otherCondition=() build RFs:RF0 d_date_sk->[ws_sold_date_sk]
 --------------------------------------------PhysicalProject
-----------------------------------------------filter(((((web_sales.ws_net_profit
 >= 100.00) AND (web_sales.ws_net_profit <= 200.00)) OR 
((web_sales.ws_net_profit >= 150.00) AND (web_sales.ws_net_profit <= 300.00))) 
OR ((web_sales.ws_net_profit >= 50.00) AND (web_sales.ws_net_profit <= 
250.00))) and ((((web_sales.ws_sales_price >= 100.00) AND 
(web_sales.ws_sales_price <= 150.00)) OR ((web_sales.ws_sales_price >= 50.00) 
AND (web_sales.ws_sales_price <= 100.00))) OR ((web_sales.ws_sales_pri [...]
+----------------------------------------------filter((web_sales.ws_net_profit 
<= 300.00) and (web_sales.ws_net_profit >= 50.00) and (web_sales.ws_sales_price 
<= 200.00) and (web_sales.ws_sales_price >= 50.00))
 ------------------------------------------------PhysicalOlapScan[web_sales] 
apply RFs: RF0
 --------------------------------------------PhysicalDistribute
 ----------------------------------------------PhysicalProject
diff --git 
a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query13.out 
b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query13.out
index fe8d050464e..9565e553c2f 100644
--- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query13.out
+++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query13.out
@@ -21,7 +21,7 @@ PhysicalResultSink
 --------------------------hashJoin[INNER_JOIN] 
hashCondition=((store_sales.ss_addr_sk = customer_address.ca_address_sk)) 
otherCondition=((((ca_state IN ('KS', 'MI', 'SD') AND 
((store_sales.ss_net_profit >= 100.00) AND (store_sales.ss_net_profit <= 
200.00))) OR (ca_state IN ('CO', 'MO', 'ND') AND ((store_sales.ss_net_profit >= 
150.00) AND (store_sales.ss_net_profit <= 300.00)))) OR (ca_state IN ('NH', 
'OH', 'TX') AND ((store_sales.ss_net_profit >= 50.00) AND 
(store_sales.ss_net_profit <=  [...]
 ----------------------------PhysicalDistribute
 ------------------------------PhysicalProject
---------------------------------filter(((((store_sales.ss_net_profit >= 
100.00) AND (store_sales.ss_net_profit <= 200.00)) OR 
((store_sales.ss_net_profit >= 150.00) AND (store_sales.ss_net_profit <= 
300.00))) OR ((store_sales.ss_net_profit >= 50.00) AND 
(store_sales.ss_net_profit <= 250.00))) and ((((store_sales.ss_sales_price >= 
100.00) AND (store_sales.ss_sales_price <= 150.00)) OR 
((store_sales.ss_sales_price >= 50.00) AND (store_sales.ss_sales_price <= 
100.00))) OR ((store_sales.ss_s [...]
+--------------------------------filter((store_sales.ss_net_profit <= 300.00) 
and (store_sales.ss_net_profit >= 50.00) and (store_sales.ss_sales_price <= 
200.00) and (store_sales.ss_sales_price >= 50.00))
 ----------------------------------PhysicalOlapScan[store_sales] apply RFs: RF0 
RF1 RF2
 ----------------------------PhysicalDistribute
 ------------------------------PhysicalProject
@@ -33,6 +33,6 @@ PhysicalResultSink
 --------------------------------PhysicalOlapScan[date_dim]
 ------------------------PhysicalDistribute
 --------------------------PhysicalProject
-----------------------------filter(((household_demographics.hd_dep_count = 3) 
OR (household_demographics.hd_dep_count = 1)))
+----------------------------filter(hd_dep_count IN (1, 3))
 ------------------------------PhysicalOlapScan[household_demographics]
 
diff --git 
a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query48.out 
b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query48.out
index 6d0c8e6967b..c16a92a82aa 100644
--- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query48.out
+++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query48.out
@@ -13,7 +13,7 @@ PhysicalResultSink
 --------------------PhysicalDistribute
 ----------------------hashJoin[INNER_JOIN] 
hashCondition=((customer_demographics.cd_demo_sk = store_sales.ss_cdemo_sk)) 
otherCondition=((((((customer_demographics.cd_marital_status = 'U') AND 
(customer_demographics.cd_education_status = 'Primary')) AND 
((store_sales.ss_sales_price >= 100.00) AND (store_sales.ss_sales_price <= 
150.00))) OR (((customer_demographics.cd_marital_status = 'W') AND 
(customer_demographics.cd_education_status = 'College')) AND 
((store_sales.ss_sales_price >= 50.0 [...]
 ------------------------PhysicalProject
---------------------------filter(((((store_sales.ss_net_profit >= 0.00) AND 
(store_sales.ss_net_profit <= 2000.00)) OR ((store_sales.ss_net_profit >= 
150.00) AND (store_sales.ss_net_profit <= 3000.00))) OR 
((store_sales.ss_net_profit >= 50.00) AND (store_sales.ss_net_profit <= 
25000.00))) and ((((store_sales.ss_sales_price >= 100.00) AND 
(store_sales.ss_sales_price <= 150.00)) OR ((store_sales.ss_sales_price >= 
50.00) AND (store_sales.ss_sales_price <= 100.00))) OR ((store_sales.ss_sales 
[...]
+--------------------------filter((store_sales.ss_net_profit <= 25000.00) and 
(store_sales.ss_net_profit >= 0.00) and (store_sales.ss_sales_price <= 200.00) 
and (store_sales.ss_sales_price >= 50.00))
 ----------------------------PhysicalOlapScan[store_sales] apply RFs: RF0 RF1 
RF2 RF3
 ------------------------PhysicalDistribute
 --------------------------PhysicalProject
diff --git 
a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query85.out 
b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query85.out
index 83c0a393d11..0918c3a587a 100644
--- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query85.out
+++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query85.out
@@ -30,7 +30,7 @@ PhysicalResultSink
 --------------------------------------------PhysicalOlapScan[web_returns] 
apply RFs: RF1 RF2 RF3 RF9
 ------------------------------------------hashJoin[INNER_JOIN] 
hashCondition=((web_sales.ws_sold_date_sk = date_dim.d_date_sk)) 
otherCondition=() build RFs:RF0 d_date_sk->[ws_sold_date_sk]
 --------------------------------------------PhysicalProject
-----------------------------------------------filter(((((web_sales.ws_net_profit
 >= 100.00) AND (web_sales.ws_net_profit <= 200.00)) OR 
((web_sales.ws_net_profit >= 150.00) AND (web_sales.ws_net_profit <= 300.00))) 
OR ((web_sales.ws_net_profit >= 50.00) AND (web_sales.ws_net_profit <= 
250.00))) and ((((web_sales.ws_sales_price >= 100.00) AND 
(web_sales.ws_sales_price <= 150.00)) OR ((web_sales.ws_sales_price >= 50.00) 
AND (web_sales.ws_sales_price <= 100.00))) OR ((web_sales.ws_sales_pri [...]
+----------------------------------------------filter((web_sales.ws_net_profit 
<= 300.00) and (web_sales.ws_net_profit >= 50.00) and (web_sales.ws_sales_price 
<= 200.00) and (web_sales.ws_sales_price >= 50.00))
 ------------------------------------------------PhysicalOlapScan[web_sales] 
apply RFs: RF0 RF8
 --------------------------------------------PhysicalDistribute
 ----------------------------------------------PhysicalProject
diff --git 
a/regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q19.out 
b/regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q19.out
index 14765ad432d..05b2551171d 100644
--- a/regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q19.out
+++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q19.out
@@ -8,7 +8,7 @@ PhysicalResultSink
 ----------hashJoin[INNER_JOIN] hashCondition=((part.p_partkey = 
lineitem.l_partkey)) otherCondition=(((((((part.p_brand = 'Brand#12') AND 
p_container IN ('SM BOX', 'SM CASE', 'SM PACK', 'SM PKG')) AND 
((lineitem.l_quantity >= 1.00) AND (lineitem.l_quantity <= 11.00))) AND 
(part.p_size <= 5)) OR ((((part.p_brand = 'Brand#23') AND p_container IN ('MED 
BAG', 'MED BOX', 'MED PACK', 'MED PKG')) AND ((lineitem.l_quantity >= 10.00) 
AND (lineitem.l_quantity <= 20.00))) AND (part.p_size <= 10)))  [...]
 ------------PhysicalDistribute
 --------------PhysicalProject
-----------------filter(((((lineitem.l_quantity >= 1.00) AND 
(lineitem.l_quantity <= 11.00)) OR ((lineitem.l_quantity >= 10.00) AND 
(lineitem.l_quantity <= 20.00))) OR ((lineitem.l_quantity >= 20.00) AND 
(lineitem.l_quantity <= 30.00))) and (lineitem.l_shipinstruct = 'DELIVER IN 
PERSON') and l_shipmode IN ('AIR REG', 'AIR'))
+----------------filter((lineitem.l_quantity <= 30.00) and (lineitem.l_quantity 
>= 1.00) and (lineitem.l_shipinstruct = 'DELIVER IN PERSON') and l_shipmode IN 
('AIR REG', 'AIR'))
 ------------------PhysicalOlapScan[lineitem] apply RFs: RF0
 ------------PhysicalDistribute
 --------------PhysicalProject
diff --git 
a/regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q7.out 
b/regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q7.out
index 0a7754c55f6..e4183539e32 100644
--- a/regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q7.out
+++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/nostats_rf_prune/q7.out
@@ -31,10 +31,10 @@ PhysicalResultSink
 ------------------------------PhysicalOlapScan[customer] apply RFs: RF4
 ----------------------PhysicalDistribute
 ------------------------PhysicalProject
---------------------------filter(((n1.n_name = 'FRANCE') OR (n1.n_name = 
'GERMANY')))
+--------------------------filter(n_name IN ('FRANCE', 'GERMANY'))
 ----------------------------PhysicalOlapScan[nation]
 ------------------PhysicalDistribute
 --------------------PhysicalProject
-----------------------filter(((n2.n_name = 'GERMANY') OR (n2.n_name = 
'FRANCE')))
+----------------------filter(n_name IN ('FRANCE', 'GERMANY'))
 ------------------------PhysicalOlapScan[nation]
 
diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q19.out 
b/regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q19.out
index 4ad887fd529..bfb550af233 100644
--- a/regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q19.out
+++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q19.out
@@ -7,7 +7,7 @@ PhysicalResultSink
 --------PhysicalProject
 ----------hashJoin[INNER_JOIN] hashCondition=((part.p_partkey = 
lineitem.l_partkey)) otherCondition=(((((((part.p_brand = 'Brand#12') AND 
p_container IN ('SM BOX', 'SM CASE', 'SM PACK', 'SM PKG')) AND 
((lineitem.l_quantity >= 1.00) AND (lineitem.l_quantity <= 11.00))) AND 
(part.p_size <= 5)) OR ((((part.p_brand = 'Brand#23') AND p_container IN ('MED 
BAG', 'MED BOX', 'MED PACK', 'MED PKG')) AND ((lineitem.l_quantity >= 10.00) 
AND (lineitem.l_quantity <= 20.00))) AND (part.p_size <= 10)))  [...]
 ------------PhysicalProject
---------------filter(((((lineitem.l_quantity >= 1.00) AND (lineitem.l_quantity 
<= 11.00)) OR ((lineitem.l_quantity >= 10.00) AND (lineitem.l_quantity <= 
20.00))) OR ((lineitem.l_quantity >= 20.00) AND (lineitem.l_quantity <= 
30.00))) and (lineitem.l_shipinstruct = 'DELIVER IN PERSON') and l_shipmode IN 
('AIR REG', 'AIR'))
+--------------filter((lineitem.l_quantity <= 30.00) and (lineitem.l_quantity 
>= 1.00) and (lineitem.l_shipinstruct = 'DELIVER IN PERSON') and l_shipmode IN 
('AIR REG', 'AIR'))
 ----------------PhysicalOlapScan[lineitem] apply RFs: RF0
 ------------PhysicalDistribute
 --------------PhysicalProject
diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q7.out 
b/regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q7.out
index 4bfde7a8ef5..bacb57df2d3 100644
--- a/regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q7.out
+++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/rf_prune/q7.out
@@ -20,7 +20,7 @@ PhysicalResultSink
 ----------------------------PhysicalOlapScan[supplier] apply RFs: RF2
 --------------------------PhysicalDistribute
 ----------------------------PhysicalProject
-------------------------------filter(((n1.n_name = 'FRANCE') OR (n1.n_name = 
'GERMANY')))
+------------------------------filter(n_name IN ('FRANCE', 'GERMANY'))
 --------------------------------PhysicalOlapScan[nation]
 ------------------PhysicalDistribute
 --------------------PhysicalProject
@@ -34,6 +34,6 @@ PhysicalResultSink
 ------------------------------PhysicalOlapScan[customer] apply RFs: RF0
 ----------------------------PhysicalDistribute
 ------------------------------PhysicalProject
---------------------------------filter(((n2.n_name = 'GERMANY') OR (n2.n_name 
= 'FRANCE')))
+--------------------------------filter(n_name IN ('FRANCE', 'GERMANY'))
 ----------------------------------PhysicalOlapScan[nation]
 
diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q19.out 
b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q19.out
index 4ad887fd529..bfb550af233 100644
--- a/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q19.out
+++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q19.out
@@ -7,7 +7,7 @@ PhysicalResultSink
 --------PhysicalProject
 ----------hashJoin[INNER_JOIN] hashCondition=((part.p_partkey = 
lineitem.l_partkey)) otherCondition=(((((((part.p_brand = 'Brand#12') AND 
p_container IN ('SM BOX', 'SM CASE', 'SM PACK', 'SM PKG')) AND 
((lineitem.l_quantity >= 1.00) AND (lineitem.l_quantity <= 11.00))) AND 
(part.p_size <= 5)) OR ((((part.p_brand = 'Brand#23') AND p_container IN ('MED 
BAG', 'MED BOX', 'MED PACK', 'MED PKG')) AND ((lineitem.l_quantity >= 10.00) 
AND (lineitem.l_quantity <= 20.00))) AND (part.p_size <= 10)))  [...]
 ------------PhysicalProject
---------------filter(((((lineitem.l_quantity >= 1.00) AND (lineitem.l_quantity 
<= 11.00)) OR ((lineitem.l_quantity >= 10.00) AND (lineitem.l_quantity <= 
20.00))) OR ((lineitem.l_quantity >= 20.00) AND (lineitem.l_quantity <= 
30.00))) and (lineitem.l_shipinstruct = 'DELIVER IN PERSON') and l_shipmode IN 
('AIR REG', 'AIR'))
+--------------filter((lineitem.l_quantity <= 30.00) and (lineitem.l_quantity 
>= 1.00) and (lineitem.l_shipinstruct = 'DELIVER IN PERSON') and l_shipmode IN 
('AIR REG', 'AIR'))
 ----------------PhysicalOlapScan[lineitem] apply RFs: RF0
 ------------PhysicalDistribute
 --------------PhysicalProject
diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q7.out 
b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q7.out
index 4bfde7a8ef5..bacb57df2d3 100644
--- a/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q7.out
+++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q7.out
@@ -20,7 +20,7 @@ PhysicalResultSink
 ----------------------------PhysicalOlapScan[supplier] apply RFs: RF2
 --------------------------PhysicalDistribute
 ----------------------------PhysicalProject
-------------------------------filter(((n1.n_name = 'FRANCE') OR (n1.n_name = 
'GERMANY')))
+------------------------------filter(n_name IN ('FRANCE', 'GERMANY'))
 --------------------------------PhysicalOlapScan[nation]
 ------------------PhysicalDistribute
 --------------------PhysicalProject
@@ -34,6 +34,6 @@ PhysicalResultSink
 ------------------------------PhysicalOlapScan[customer] apply RFs: RF0
 ----------------------------PhysicalDistribute
 ------------------------------PhysicalProject
---------------------------------filter(((n2.n_name = 'GERMANY') OR (n2.n_name 
= 'FRANCE')))
+--------------------------------filter(n_name IN ('FRANCE', 'GERMANY'))
 ----------------------------------PhysicalOlapScan[nation]
 
diff --git 
a/regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q19.out 
b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q19.out
index 14765ad432d..05b2551171d 100644
--- a/regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q19.out
+++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q19.out
@@ -8,7 +8,7 @@ PhysicalResultSink
 ----------hashJoin[INNER_JOIN] hashCondition=((part.p_partkey = 
lineitem.l_partkey)) otherCondition=(((((((part.p_brand = 'Brand#12') AND 
p_container IN ('SM BOX', 'SM CASE', 'SM PACK', 'SM PKG')) AND 
((lineitem.l_quantity >= 1.00) AND (lineitem.l_quantity <= 11.00))) AND 
(part.p_size <= 5)) OR ((((part.p_brand = 'Brand#23') AND p_container IN ('MED 
BAG', 'MED BOX', 'MED PACK', 'MED PKG')) AND ((lineitem.l_quantity >= 10.00) 
AND (lineitem.l_quantity <= 20.00))) AND (part.p_size <= 10)))  [...]
 ------------PhysicalDistribute
 --------------PhysicalProject
-----------------filter(((((lineitem.l_quantity >= 1.00) AND 
(lineitem.l_quantity <= 11.00)) OR ((lineitem.l_quantity >= 10.00) AND 
(lineitem.l_quantity <= 20.00))) OR ((lineitem.l_quantity >= 20.00) AND 
(lineitem.l_quantity <= 30.00))) and (lineitem.l_shipinstruct = 'DELIVER IN 
PERSON') and l_shipmode IN ('AIR REG', 'AIR'))
+----------------filter((lineitem.l_quantity <= 30.00) and (lineitem.l_quantity 
>= 1.00) and (lineitem.l_shipinstruct = 'DELIVER IN PERSON') and l_shipmode IN 
('AIR REG', 'AIR'))
 ------------------PhysicalOlapScan[lineitem] apply RFs: RF0
 ------------PhysicalDistribute
 --------------PhysicalProject
diff --git 
a/regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q7.out 
b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q7.out
index 0a7754c55f6..e4183539e32 100644
--- a/regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q7.out
+++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape_no_stats/q7.out
@@ -31,10 +31,10 @@ PhysicalResultSink
 ------------------------------PhysicalOlapScan[customer] apply RFs: RF4
 ----------------------PhysicalDistribute
 ------------------------PhysicalProject
---------------------------filter(((n1.n_name = 'FRANCE') OR (n1.n_name = 
'GERMANY')))
+--------------------------filter(n_name IN ('FRANCE', 'GERMANY'))
 ----------------------------PhysicalOlapScan[nation]
 ------------------PhysicalDistribute
 --------------------PhysicalProject
-----------------------filter(((n2.n_name = 'GERMANY') OR (n2.n_name = 
'FRANCE')))
+----------------------filter(n_name IN ('FRANCE', 'GERMANY'))
 ------------------------PhysicalOlapScan[nation]
 


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


Reply via email to