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]