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 acbd78c56b6 [opt](Nereids)make orToIn rule appliable to in-pred 
(#29990)
acbd78c56b6 is described below

commit acbd78c56b68b0c007d79cf765647136d31a5273
Author: minghong <engle...@gmail.com>
AuthorDate: Fri Jan 19 15:09:33 2024 +0800

    [opt](Nereids)make orToIn rule appliable to in-pred (#29990)
    
    make orToIn rule appliable to in-pred
---
 .../nereids/rules/expression/rules/OrToIn.java     | 51 +++++++++--------
 .../doris/nereids/rules/rewrite/OrToInTest.java    | 15 +++++
 .../shape/query13.out                              | 54 +++++++++---------
 .../shape/query15.out                              |  2 +-
 .../shape/query48.out                              |  2 +-
 .../shape/query85.out                              | 65 +++++++++++-----------
 .../noStatsRfPrune/query13.out                     |  2 +-
 .../noStatsRfPrune/query15.out                     |  2 +-
 .../noStatsRfPrune/query48.out                     |  2 +-
 .../noStatsRfPrune/query85.out                     |  2 +-
 .../no_stats_shape/query13.out                     |  2 +-
 .../no_stats_shape/query15.out                     |  2 +-
 .../no_stats_shape/query48.out                     |  2 +-
 .../no_stats_shape/query85.out                     |  2 +-
 .../rf_prune/query13.out                           |  2 +-
 .../rf_prune/query15.out                           |  2 +-
 .../rf_prune/query48.out                           |  2 +-
 .../rf_prune/query85.out                           | 58 +++++++++----------
 .../nereids_tpcds_shape_sf100_p0/shape/query13.out |  2 +-
 .../nereids_tpcds_shape_sf100_p0/shape/query15.out |  2 +-
 .../nereids_tpcds_shape_sf100_p0/shape/query48.out |  2 +-
 .../nereids_tpcds_shape_sf100_p0/shape/query85.out | 58 +++++++++----------
 22 files changed, 175 insertions(+), 158 deletions(-)

diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/expression/rules/OrToIn.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/expression/rules/OrToIn.java
index aaa077d1994..6df68e47a04 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/expression/rules/OrToIn.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/expression/rules/OrToIn.java
@@ -29,9 +29,9 @@ import 
org.apache.doris.nereids.trees.expressions.visitor.DefaultExpressionRewri
 import org.apache.doris.nereids.util.ExpressionUtils;
 
 import com.google.common.collect.ImmutableList;
+import com.google.common.collect.Maps;
 
 import java.util.ArrayList;
-import java.util.Collections;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
@@ -71,9 +71,12 @@ public class OrToIn extends 
DefaultExpressionRewriter<ExpressionRewriteContext>
     public Expression visitOr(Or or, ExpressionRewriteContext ctx) {
         Map<NamedExpression, Set<Literal>> slotNameToLiteral = new HashMap<>();
         List<Expression> expressions = ExpressionUtils.extractDisjunction(or);
+        Map<Expression, NamedExpression> disConjunctToSlot = Maps.newHashMap();
         for (Expression expression : expressions) {
             if (expression instanceof EqualTo) {
-                addSlotToLiteralMap((EqualTo) expression, slotNameToLiteral);
+                handleEqualTo((EqualTo) expression, slotNameToLiteral, 
disConjunctToSlot);
+            } else if (expression instanceof InPredicate) {
+                handleInPredicate((InPredicate) expression, slotNameToLiteral, 
disConjunctToSlot);
             }
         }
         List<Expression> rewrittenOr = new ArrayList<>();
@@ -85,42 +88,42 @@ public class OrToIn extends 
DefaultExpressionRewriter<ExpressionRewriteContext>
             }
         }
         for (Expression expression : expressions) {
-            if (!ableToConvertToIn(expression, slotNameToLiteral)) {
+            if (disConjunctToSlot.get(expression) == null) {
                 rewrittenOr.add(expression.accept(this, null));
+            } else {
+                Set<Literal> literals = 
slotNameToLiteral.get(disConjunctToSlot.get(expression));
+                if (literals.size() < REWRITE_OR_TO_IN_PREDICATE_THRESHOLD) {
+                    rewrittenOr.add(expression);
+                }
             }
         }
 
         return ExpressionUtils.or(rewrittenOr);
     }
 
-    private void addSlotToLiteralMap(EqualTo equal, Map<NamedExpression, 
Set<Literal>> slotNameToLiteral) {
+    private void handleEqualTo(EqualTo equal, Map<NamedExpression, 
Set<Literal>> slotNameToLiteral,
+                               Map<Expression, NamedExpression> 
disConjunctToSlot) {
         Expression left = equal.left();
         Expression right = equal.right();
         if (left instanceof NamedExpression && right instanceof Literal) {
             addSlotToLiteral((NamedExpression) left, (Literal) right, 
slotNameToLiteral);
-        }
-        if (right instanceof NamedExpression && left instanceof Literal) {
+            disConjunctToSlot.put(equal, (NamedExpression) left);
+        } else if (right instanceof NamedExpression && left instanceof 
Literal) {
             addSlotToLiteral((NamedExpression) right, (Literal) left, 
slotNameToLiteral);
+            disConjunctToSlot.put(equal, (NamedExpression) right);
         }
     }
 
-    private boolean ableToConvertToIn(Expression expression, 
Map<NamedExpression, Set<Literal>> slotNameToLiteral) {
-        if (!(expression instanceof EqualTo)) {
-            return false;
-        }
-        EqualTo equalTo = (EqualTo) expression;
-        Expression left = equalTo.left();
-        Expression right = equalTo.right();
-        NamedExpression namedExpression = null;
-        if (left instanceof NamedExpression && right instanceof Literal) {
-            namedExpression = (NamedExpression) left;
-        }
-        if (right instanceof NamedExpression && left instanceof Literal) {
-            namedExpression = (NamedExpression) right;
+    private void handleInPredicate(InPredicate inPredicate, 
Map<NamedExpression, Set<Literal>> slotNameToLiteral,
+                                   Map<Expression, NamedExpression> 
disConjunctToSlot) {
+        // TODO a+b in (1,2,3...) is not supported now
+        if (inPredicate.getCompareExpr() instanceof NamedExpression
+                && inPredicate.getOptions().stream().allMatch(opt -> opt 
instanceof Literal)) {
+            for (Expression opt : inPredicate.getOptions()) {
+                addSlotToLiteral((NamedExpression) 
inPredicate.getCompareExpr(), (Literal) opt, slotNameToLiteral);
+            }
+            disConjunctToSlot.put(inPredicate, (NamedExpression) 
inPredicate.getCompareExpr());
         }
-        return namedExpression != null
-                && findSizeOfLiteralThatEqualToSameSlotInOr(namedExpression, 
slotNameToLiteral)
-                >= REWRITE_OR_TO_IN_PREDICATE_THRESHOLD;
     }
 
     public void addSlotToLiteral(NamedExpression namedExpression, Literal 
literal,
@@ -129,8 +132,4 @@ public class OrToIn extends 
DefaultExpressionRewriter<ExpressionRewriteContext>
         literals.add(literal);
     }
 
-    public int findSizeOfLiteralThatEqualToSameSlotInOr(NamedExpression 
namedExpression,
-            Map<NamedExpression, Set<Literal>> slotNameToLiteral) {
-        return slotNameToLiteral.getOrDefault(namedExpression, 
Collections.emptySet()).size();
-    }
 }
diff --git 
a/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/rewrite/OrToInTest.java
 
b/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/rewrite/OrToInTest.java
index f77a66dd886..b4cf4451cbe 100644
--- 
a/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/rewrite/OrToInTest.java
+++ 
b/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/rewrite/OrToInTest.java
@@ -109,4 +109,19 @@ class OrToInTest extends ExpressionRewriteTestHelper {
                 rewritten.toSql());
     }
 
+    @Test
+    void test6() {
+        String expr = "col = 1 or col = 2 or col in (1, 2, 3)";
+        Expression expression = PARSER.parseExpression(expr);
+        Expression rewritten = new OrToIn().rewrite(expression, new 
ExpressionRewriteContext(null));
+        Assertions.assertEquals("col IN (1, 2, 3)", rewritten.toSql());
+    }
+
+    @Test
+    void test7() {
+        String expr = "A = 1 or A = 2 or abs(A)=5 or A in (1, 2, 3) or B = 1 
or B = 2 or B in (1, 2, 3) or B+1 in (4, 5, 7)";
+        Expression expression = PARSER.parseExpression(expr);
+        Expression rewritten = new OrToIn().rewrite(expression, new 
ExpressionRewriteContext(null));
+        Assertions.assertEquals("(((A IN (1, 2, 3) OR B IN (1, 2, 3)) OR 
(abs(A) = 5)) OR (B + 1) IN (4, 5, 7))", rewritten.toSql());
+    }
 }
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 07764ae74a0..92c09059cd5 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
@@ -5,35 +5,35 @@ PhysicalResultSink
 ----PhysicalDistribute[DistributionSpecGather]
 ------hashAgg[LOCAL]
 --------PhysicalProject
-----------hashJoin[INNER_JOIN] hashCondition=((store.s_store_sk = 
store_sales.ss_store_sk)) otherCondition=() build RFs:RF4 
s_store_sk->[ss_store_sk]
+----------hashJoin[INNER_JOIN] hashCondition=((store.s_store_sk = 
store_sales.ss_store_sk)) otherCondition=() build RFs:RF4 
ss_store_sk->[s_store_sk]
 ------------PhysicalProject
---------------hashJoin[INNER_JOIN] 
hashCondition=((customer_demographics.cd_demo_sk = store_sales.ss_cdemo_sk)) 
otherCondition=(((((((customer_demographics.cd_marital_status = 'M') AND 
(customer_demographics.cd_education_status = 'College')) AND 
((store_sales.ss_sales_price >= 100.00) AND (store_sales.ss_sales_price <= 
150.00))) AND (household_demographics.hd_dep_count = 3)) OR 
((((customer_demographics.cd_marital_status = 'D') AND 
(customer_demographics.cd_education_status = 'Primary')) [...]
-----------------PhysicalDistribute[DistributionSpecHash]
-------------------PhysicalProject
---------------------filter(((((customer_demographics.cd_marital_status = 'M') 
AND (customer_demographics.cd_education_status = 'College')) OR 
((customer_demographics.cd_marital_status = 'D') AND 
(customer_demographics.cd_education_status = 'Primary'))) OR 
((customer_demographics.cd_marital_status = 'W') AND 
(customer_demographics.cd_education_status = '2 yr Degree'))))
-----------------------PhysicalOlapScan[customer_demographics] apply RFs: RF3
-----------------PhysicalDistribute[DistributionSpecHash]
-------------------PhysicalProject
---------------------hashJoin[INNER_JOIN] 
hashCondition=((store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk)) 
otherCondition=() build RFs:RF2 hd_demo_sk->[ss_hdemo_sk]
-----------------------hashJoin[INNER_JOIN] 
hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk)) 
otherCondition=() build RFs:RF1 d_date_sk->[ss_sold_date_sk]
-------------------------hashJoin[INNER_JOIN] 
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[DistributionSpecHash]
-----------------------------PhysicalProject
-------------------------------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[DistributionSpecHash]
+--------------PhysicalOlapScan[store] apply RFs: RF4
+------------PhysicalDistribute[DistributionSpecHash]
+--------------PhysicalProject
+----------------hashJoin[INNER_JOIN] 
hashCondition=((customer_demographics.cd_demo_sk = store_sales.ss_cdemo_sk)) 
otherCondition=(((((((customer_demographics.cd_marital_status = 'M') AND 
(customer_demographics.cd_education_status = 'College')) AND 
((store_sales.ss_sales_price >= 100.00) AND (store_sales.ss_sales_price <= 
150.00))) AND (household_demographics.hd_dep_count = 3)) OR 
((((customer_demographics.cd_marital_status = 'D') AND 
(customer_demographics.cd_education_status = 'Primary' [...]
+------------------PhysicalDistribute[DistributionSpecHash]
+--------------------PhysicalProject
+----------------------filter(((((customer_demographics.cd_marital_status = 
'M') AND (customer_demographics.cd_education_status = 'College')) OR 
((customer_demographics.cd_marital_status = 'D') AND 
(customer_demographics.cd_education_status = 'Primary'))) OR 
((customer_demographics.cd_marital_status = 'W') AND 
(customer_demographics.cd_education_status = '2 yr Degree'))))
+------------------------PhysicalOlapScan[customer_demographics] apply RFs: RF3
+------------------PhysicalDistribute[DistributionSpecHash]
+--------------------PhysicalProject
+----------------------hashJoin[INNER_JOIN] 
hashCondition=((store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk)) 
otherCondition=() build RFs:RF2 hd_demo_sk->[ss_hdemo_sk]
+------------------------hashJoin[INNER_JOIN] 
hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk)) 
otherCondition=() build RFs:RF1 d_date_sk->[ss_sold_date_sk]
+--------------------------hashJoin[INNER_JOIN] 
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 <=  [...]
+----------------------------PhysicalDistribute[DistributionSpecHash]
+------------------------------PhysicalProject
+--------------------------------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[DistributionSpecHash]
+------------------------------PhysicalProject
+--------------------------------filter((customer_address.ca_country = 'United 
States') and ca_state IN ('IA', 'ID', 'IL', 'MS', 'OH', 'SC', 'TN', 'TX', 'WY'))
+----------------------------------PhysicalOlapScan[customer_address]
+--------------------------PhysicalDistribute[DistributionSpecReplicated]
 ----------------------------PhysicalProject
-------------------------------filter(((ca_state IN ('IL', 'TN', 'TX') OR 
ca_state IN ('ID', 'OH', 'WY')) OR ca_state IN ('IA', 'MS', 'SC')) and 
(customer_address.ca_country = 'United States'))
---------------------------------PhysicalOlapScan[customer_address]
+------------------------------filter((date_dim.d_year = 2001))
+--------------------------------PhysicalOlapScan[date_dim]
 ------------------------PhysicalDistribute[DistributionSpecReplicated]
 --------------------------PhysicalProject
-----------------------------filter((date_dim.d_year = 2001))
-------------------------------PhysicalOlapScan[date_dim]
-----------------------PhysicalDistribute[DistributionSpecReplicated]
-------------------------PhysicalProject
---------------------------filter(hd_dep_count IN (1, 3))
-----------------------------PhysicalOlapScan[household_demographics]
-------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalProject
-----------------PhysicalOlapScan[store]
+----------------------------filter(hd_dep_count IN (1, 3))
+------------------------------PhysicalOlapScan[household_demographics]
 
diff --git 
a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query15.out 
b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query15.out
index 76dbaeb392c..6d388f54994 100644
--- a/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query15.out
+++ b/regression-test/data/nereids_tpcds_shape_sf1000_p0/shape/query15.out
@@ -8,7 +8,7 @@ PhysicalResultSink
 ----------PhysicalDistribute[DistributionSpecHash]
 ------------hashAgg[LOCAL]
 --------------PhysicalProject
-----------------hashJoin[INNER_JOIN] 
hashCondition=((catalog_sales.cs_bill_customer_sk = customer.c_customer_sk)) 
otherCondition=(((substring(ca_zip, 1, 5) IN ('80348', '81792', '83405', 
'85392', '85460', '85669', '86197', '86475', '88274') OR ca_state IN ('CA', 
'GA', 'WA')) OR (catalog_sales.cs_sales_price > 500.00))) build RFs:RF2 
c_customer_sk->[cs_bill_customer_sk]
+----------------hashJoin[INNER_JOIN] 
hashCondition=((catalog_sales.cs_bill_customer_sk = customer.c_customer_sk)) 
otherCondition=(((ca_state IN ('CA', 'GA', 'WA') OR substring(ca_zip, 1, 5) IN 
('80348', '81792', '83405', '85392', '85460', '85669', '86197', '86475', 
'88274')) OR (catalog_sales.cs_sales_price > 500.00))) build RFs:RF2 
c_customer_sk->[cs_bill_customer_sk]
 ------------------PhysicalDistribute[DistributionSpecHash]
 --------------------hashJoin[INNER_JOIN] 
hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk)) 
otherCondition=() build RFs:RF1 d_date_sk->[cs_sold_date_sk]
 ----------------------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 2fcf8104b44..4069222cacb 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
@@ -21,7 +21,7 @@ PhysicalResultSink
 ------------------------------PhysicalOlapScan[customer_demographics]
 --------------------PhysicalDistribute[DistributionSpecHash]
 ----------------------PhysicalProject
-------------------------filter(((ca_state IN ('ND', 'NY', 'SD') OR ca_state IN 
('GA', 'KS', 'MD')) OR ca_state IN ('CO', 'MN', 'NC')) and 
(customer_address.ca_country = 'United States'))
+------------------------filter((customer_address.ca_country = 'United States') 
and ca_state IN ('CO', 'GA', 'KS', 'MD', 'MN', 'NC', 'ND', 'NY', 'SD'))
 --------------------------PhysicalOlapScan[customer_address]
 ----------------PhysicalDistribute[DistributionSpecReplicated]
 ------------------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 b120d3ff5e0..547042a9a33 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
@@ -9,43 +9,42 @@ PhysicalResultSink
 ------------PhysicalDistribute[DistributionSpecHash]
 --------------hashAgg[LOCAL]
 ----------------PhysicalProject
-------------------hashJoin[INNER_JOIN] hashCondition=((reason.r_reason_sk = 
web_returns.wr_reason_sk)) otherCondition=() build RFs:RF9 
r_reason_sk->[wr_reason_sk]
+------------------hashJoin[INNER_JOIN] 
hashCondition=((web_sales.ws_web_page_sk = web_page.wp_web_page_sk)) 
otherCondition=() build RFs:RF9 ws_web_page_sk->[wp_web_page_sk]
 --------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] 
hashCondition=((customer_address.ca_address_sk = 
web_returns.wr_refunded_addr_sk)) otherCondition=((((ca_state IN ('IA', 'NC', 
'TX') AND ((web_sales.ws_net_profit >= 100.00) AND (web_sales.ws_net_profit <= 
200.00))) OR (ca_state IN ('GA', 'WI', 'WV') AND ((web_sales.ws_net_profit >= 
150.00) AND (web_sales.ws_net_profit <= 300.00)))) OR (ca_state IN ('KY', 'OK', 
'VA') AND ((web_sales.ws_net_profit >= 50.00) AND (web_sales.ws_net_profit <= 
250.00) [...]
-------------------------PhysicalProject
---------------------------filter(((ca_state IN ('IA', 'NC', 'TX') OR ca_state 
IN ('GA', 'WI', 'WV')) OR ca_state IN ('KY', 'OK', 'VA')) and 
(customer_address.ca_country = 'United States'))
-----------------------------PhysicalOlapScan[customer_address] apply RFs: RF8
-------------------------PhysicalDistribute[DistributionSpecHash]
+----------------------PhysicalOlapScan[web_page] apply RFs: RF9
+--------------------PhysicalDistribute[DistributionSpecHash]
+----------------------PhysicalProject
+------------------------hashJoin[INNER_JOIN] 
hashCondition=((reason.r_reason_sk = web_returns.wr_reason_sk)) 
otherCondition=() build RFs:RF8 r_reason_sk->[wr_reason_sk]
 --------------------------PhysicalProject
-----------------------------hashJoin[INNER_JOIN] 
hashCondition=((web_sales.ws_web_page_sk = web_page.wp_web_page_sk)) 
otherCondition=() build RFs:RF7 ws_web_page_sk->[wp_web_page_sk]
+----------------------------hashJoin[INNER_JOIN] 
hashCondition=((cd1.cd_education_status = cd2.cd_education_status) and 
(cd1.cd_marital_status = cd2.cd_marital_status) and (cd2.cd_demo_sk = 
web_returns.wr_returning_cdemo_sk)) otherCondition=() build RFs:RF5 
cd_marital_status->[cd_marital_status];RF6 
cd_education_status->[cd_education_status];RF7 
wr_returning_cdemo_sk->[cd_demo_sk]
 ------------------------------PhysicalProject
---------------------------------PhysicalOlapScan[web_page] apply RFs: RF7
-------------------------------PhysicalDistribute[DistributionSpecHash]
---------------------------------PhysicalProject
-----------------------------------hashJoin[INNER_JOIN] 
hashCondition=((cd1.cd_education_status = cd2.cd_education_status) and 
(cd1.cd_marital_status = cd2.cd_marital_status) and (cd2.cd_demo_sk = 
web_returns.wr_returning_cdemo_sk)) otherCondition=() build RFs:RF4 
cd_marital_status->[cd_marital_status];RF5 
cd_education_status->[cd_education_status];RF6 
wr_returning_cdemo_sk->[cd_demo_sk]
+--------------------------------PhysicalOlapScan[customer_demographics] apply 
RFs: RF5 RF6 RF7
+------------------------------PhysicalDistribute[DistributionSpecReplicated]
+--------------------------------hashJoin[INNER_JOIN] 
hashCondition=((customer_address.ca_address_sk = 
web_returns.wr_refunded_addr_sk)) otherCondition=((((ca_state IN ('IA', 'NC', 
'TX') AND ((web_sales.ws_net_profit >= 100.00) AND (web_sales.ws_net_profit <= 
200.00))) OR (ca_state IN ('GA', 'WI', 'WV') AND ((web_sales.ws_net_profit >= 
150.00) AND (web_sales.ws_net_profit <= 300.00)))) OR (ca_state IN ('KY', 'OK', 
'VA') AND ((web_sales.ws_net_profit >= 50.00) AND (web_sales.ws_net_profit  
[...]
+----------------------------------PhysicalProject
+------------------------------------filter((customer_address.ca_country = 
'United States') and ca_state IN ('GA', 'IA', 'KY', 'NC', 'OK', 'TX', 'VA', 
'WI', 'WV'))
+--------------------------------------PhysicalOlapScan[customer_address] apply 
RFs: RF4
+----------------------------------PhysicalDistribute[DistributionSpecHash]
 ------------------------------------PhysicalProject
---------------------------------------PhysicalOlapScan[customer_demographics] 
apply RFs: RF4 RF5 RF6
-------------------------------------PhysicalDistribute[DistributionSpecReplicated]
---------------------------------------PhysicalProject
-----------------------------------------hashJoin[INNER_JOIN] 
hashCondition=((cd1.cd_demo_sk = web_returns.wr_refunded_cdemo_sk)) 
otherCondition=((((((cd1.cd_marital_status = 'D') AND (cd1.cd_education_status 
= 'Primary')) 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 = 'College')) AND ((web_sales.ws_sales_price >= 50.00) 
AND (web_sales.ws_sales_price <= 100.00)))) OR (((cd1.cd_marital_s [...]
-------------------------------------------PhysicalDistribute[DistributionSpecHash]
---------------------------------------------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:RF1 ws_item_sk->[wr_item_sk];RF2 ws_order_number->[wr_order_number]
+--------------------------------------hashJoin[INNER_JOIN] 
hashCondition=((cd1.cd_demo_sk = web_returns.wr_refunded_cdemo_sk)) 
otherCondition=((((((cd1.cd_marital_status = 'D') AND (cd1.cd_education_status 
= 'Primary')) 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 = 'College')) AND ((web_sales.ws_sales_price >= 50.00) 
AND (web_sales.ws_sales_price <= 100.00)))) OR (((cd1.cd_marital_sta [...]
+----------------------------------------PhysicalDistribute[DistributionSpecHash]
+------------------------------------------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:RF1 ws_item_sk->[wr_item_sk];RF2 ws_order_number->[wr_order_number]
+----------------------------------------------PhysicalProject
+------------------------------------------------PhysicalOlapScan[web_returns] 
apply RFs: RF1 RF2 RF3 RF8
+----------------------------------------------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
---------------------------------------------------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]
+--------------------------------------------------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[DistributionSpecReplicated]
 --------------------------------------------------PhysicalProject
-----------------------------------------------------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[DistributionSpecReplicated]
-----------------------------------------------------PhysicalProject
-------------------------------------------------------filter((date_dim.d_year 
= 1998))
---------------------------------------------------------PhysicalOlapScan[date_dim]
-------------------------------------------PhysicalDistribute[DistributionSpecHash]
---------------------------------------------PhysicalProject
-----------------------------------------------filter(((((cd1.cd_marital_status 
= 'D') AND (cd1.cd_education_status = 'Primary')) OR ((cd1.cd_marital_status = 
'S') AND (cd1.cd_education_status = 'College'))) OR ((cd1.cd_marital_status = 
'U') AND (cd1.cd_education_status = 'Advanced Degree'))))
-------------------------------------------------PhysicalOlapScan[customer_demographics]
---------------------PhysicalDistribute[DistributionSpecReplicated]
-----------------------PhysicalProject
-------------------------PhysicalOlapScan[reason]
+----------------------------------------------------filter((date_dim.d_year = 
1998))
+------------------------------------------------------PhysicalOlapScan[date_dim]
+----------------------------------------PhysicalDistribute[DistributionSpecHash]
+------------------------------------------PhysicalProject
+--------------------------------------------filter(((((cd1.cd_marital_status = 
'D') AND (cd1.cd_education_status = 'Primary')) OR ((cd1.cd_marital_status = 
'S') AND (cd1.cd_education_status = 'College'))) OR ((cd1.cd_marital_status = 
'U') AND (cd1.cd_education_status = 'Advanced Degree'))))
+----------------------------------------------PhysicalOlapScan[customer_demographics]
+--------------------------PhysicalDistribute[DistributionSpecReplicated]
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[reason]
 
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 9689a105682..09eea0486ff 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
@@ -25,7 +25,7 @@ PhysicalResultSink
 --------------------------PhysicalOlapScan[store]
 ------------------PhysicalDistribute[DistributionSpecReplicated]
 --------------------PhysicalProject
-----------------------filter(((ca_state IN ('KS', 'MI', 'SD') OR ca_state IN 
('CO', 'MO', 'ND')) OR ca_state IN ('NH', 'OH', 'TX')) and 
(customer_address.ca_country = 'United States'))
+----------------------filter((customer_address.ca_country = 'United States') 
and ca_state IN ('CO', 'KS', 'MI', 'MO', 'ND', 'NH', 'OH', 'SD', 'TX'))
 ------------------------PhysicalOlapScan[customer_address]
 ----------------PhysicalDistribute[DistributionSpecReplicated]
 ------------------PhysicalProject
diff --git 
a/regression-test/data/nereids_tpcds_shape_sf100_p0/noStatsRfPrune/query15.out 
b/regression-test/data/nereids_tpcds_shape_sf100_p0/noStatsRfPrune/query15.out
index d1254304e05..7ab12ff23f2 100644
--- 
a/regression-test/data/nereids_tpcds_shape_sf100_p0/noStatsRfPrune/query15.out
+++ 
b/regression-test/data/nereids_tpcds_shape_sf100_p0/noStatsRfPrune/query15.out
@@ -10,7 +10,7 @@ PhysicalResultSink
 --------------PhysicalProject
 ----------------hashJoin[INNER_JOIN] 
hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk)) 
otherCondition=() build RFs:RF2 d_date_sk->[cs_sold_date_sk]
 ------------------PhysicalProject
---------------------hashJoin[INNER_JOIN] 
hashCondition=((customer.c_current_addr_sk = customer_address.ca_address_sk)) 
otherCondition=(((substring(ca_zip, 1, 5) IN ('80348', '81792', '83405', 
'85392', '85460', '85669', '86197', '86475', '88274') OR ca_state IN ('CA', 
'GA', 'WA')) OR (catalog_sales.cs_sales_price > 500.00)))
+--------------------hashJoin[INNER_JOIN] 
hashCondition=((customer.c_current_addr_sk = customer_address.ca_address_sk)) 
otherCondition=(((ca_state IN ('CA', 'GA', 'WA') OR substring(ca_zip, 1, 5) IN 
('80348', '81792', '83405', '85392', '85460', '85669', '86197', '86475', 
'88274')) OR (catalog_sales.cs_sales_price > 500.00)))
 ----------------------PhysicalDistribute[DistributionSpecHash]
 ------------------------PhysicalProject
 --------------------------hashJoin[INNER_JOIN] 
hashCondition=((catalog_sales.cs_bill_customer_sk = customer.c_customer_sk)) 
otherCondition=()
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 59167dad86d..25e8c3965aa 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
@@ -24,7 +24,7 @@ PhysicalResultSink
 ------------------------PhysicalOlapScan[store]
 ----------------PhysicalDistribute[DistributionSpecReplicated]
 ------------------PhysicalProject
---------------------filter(((ca_state IN ('IA', 'MD', 'MN') OR ca_state IN 
('IL', 'TX', 'VA')) OR ca_state IN ('IN', 'MI', 'WI')) and 
(customer_address.ca_country = 'United States'))
+--------------------filter((customer_address.ca_country = 'United States') and 
ca_state IN ('IA', 'IL', 'IN', 'MD', 'MI', 'MN', 'TX', 'VA', 'WI'))
 ----------------------PhysicalOlapScan[customer_address]
 ------------PhysicalDistribute[DistributionSpecReplicated]
 --------------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 251ba0bd5a5..a381fb5be44 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
@@ -40,7 +40,7 @@ PhysicalResultSink
 ------------------------------------PhysicalOlapScan[customer_demographics]
 ----------------------------PhysicalDistribute[DistributionSpecReplicated]
 ------------------------------PhysicalProject
---------------------------------filter(((ca_state IN ('DE', 'FL', 'TX') OR 
ca_state IN ('ID', 'IN', 'ND')) OR ca_state IN ('IL', 'MT', 'OH')) and 
(customer_address.ca_country = 'United States'))
+--------------------------------filter((customer_address.ca_country = 'United 
States') and ca_state IN ('DE', 'FL', 'ID', 'IL', 'IN', 'MT', 'ND', 'OH', 'TX'))
 ----------------------------------PhysicalOlapScan[customer_address]
 ------------------------PhysicalDistribute[DistributionSpecReplicated]
 --------------------------PhysicalProject
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 bb8d755b7de..55f47793097 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
@@ -25,7 +25,7 @@ PhysicalResultSink
 --------------------------PhysicalOlapScan[store]
 ------------------PhysicalDistribute[DistributionSpecReplicated]
 --------------------PhysicalProject
-----------------------filter(((ca_state IN ('KS', 'MI', 'SD') OR ca_state IN 
('CO', 'MO', 'ND')) OR ca_state IN ('NH', 'OH', 'TX')) and 
(customer_address.ca_country = 'United States'))
+----------------------filter((customer_address.ca_country = 'United States') 
and ca_state IN ('CO', 'KS', 'MI', 'MO', 'ND', 'NH', 'OH', 'SD', 'TX'))
 ------------------------PhysicalOlapScan[customer_address]
 ----------------PhysicalDistribute[DistributionSpecReplicated]
 ------------------PhysicalProject
diff --git 
a/regression-test/data/nereids_tpcds_shape_sf100_p0/no_stats_shape/query15.out 
b/regression-test/data/nereids_tpcds_shape_sf100_p0/no_stats_shape/query15.out
index 8e929d24b0c..3ab21912425 100644
--- 
a/regression-test/data/nereids_tpcds_shape_sf100_p0/no_stats_shape/query15.out
+++ 
b/regression-test/data/nereids_tpcds_shape_sf100_p0/no_stats_shape/query15.out
@@ -10,7 +10,7 @@ PhysicalResultSink
 --------------PhysicalProject
 ----------------hashJoin[INNER_JOIN] 
hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk)) 
otherCondition=() build RFs:RF2 d_date_sk->[cs_sold_date_sk]
 ------------------PhysicalProject
---------------------hashJoin[INNER_JOIN] 
hashCondition=((customer.c_current_addr_sk = customer_address.ca_address_sk)) 
otherCondition=(((substring(ca_zip, 1, 5) IN ('80348', '81792', '83405', 
'85392', '85460', '85669', '86197', '86475', '88274') OR ca_state IN ('CA', 
'GA', 'WA')) OR (catalog_sales.cs_sales_price > 500.00))) build RFs:RF1 
ca_address_sk->[c_current_addr_sk]
+--------------------hashJoin[INNER_JOIN] 
hashCondition=((customer.c_current_addr_sk = customer_address.ca_address_sk)) 
otherCondition=(((ca_state IN ('CA', 'GA', 'WA') OR substring(ca_zip, 1, 5) IN 
('80348', '81792', '83405', '85392', '85460', '85669', '86197', '86475', 
'88274')) OR (catalog_sales.cs_sales_price > 500.00))) build RFs:RF1 
ca_address_sk->[c_current_addr_sk]
 ----------------------PhysicalDistribute[DistributionSpecHash]
 ------------------------PhysicalProject
 --------------------------hashJoin[INNER_JOIN] 
hashCondition=((catalog_sales.cs_bill_customer_sk = customer.c_customer_sk)) 
otherCondition=() build RFs:RF0 c_customer_sk->[cs_bill_customer_sk]
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 496160afe53..463c25b9c7d 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
@@ -24,7 +24,7 @@ PhysicalResultSink
 ------------------------PhysicalOlapScan[store]
 ----------------PhysicalDistribute[DistributionSpecReplicated]
 ------------------PhysicalProject
---------------------filter(((ca_state IN ('IA', 'MD', 'MN') OR ca_state IN 
('IL', 'TX', 'VA')) OR ca_state IN ('IN', 'MI', 'WI')) and 
(customer_address.ca_country = 'United States'))
+--------------------filter((customer_address.ca_country = 'United States') and 
ca_state IN ('IA', 'IL', 'IN', 'MD', 'MI', 'MN', 'TX', 'VA', 'WI'))
 ----------------------PhysicalOlapScan[customer_address]
 ------------PhysicalDistribute[DistributionSpecReplicated]
 --------------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 29433f93b42..fdc9d754862 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
@@ -40,7 +40,7 @@ PhysicalResultSink
 ------------------------------------PhysicalOlapScan[customer_demographics]
 ----------------------------PhysicalDistribute[DistributionSpecReplicated]
 ------------------------------PhysicalProject
---------------------------------filter(((ca_state IN ('DE', 'FL', 'TX') OR 
ca_state IN ('ID', 'IN', 'ND')) OR ca_state IN ('IL', 'MT', 'OH')) and 
(customer_address.ca_country = 'United States'))
+--------------------------------filter((customer_address.ca_country = 'United 
States') and ca_state IN ('DE', 'FL', 'ID', 'IL', 'IN', 'MT', 'ND', 'OH', 'TX'))
 ----------------------------------PhysicalOlapScan[customer_address]
 ------------------------PhysicalDistribute[DistributionSpecReplicated]
 --------------------------PhysicalProject
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 5e8f8d4e9b2..441b3d76382 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
@@ -25,7 +25,7 @@ PhysicalResultSink
 ----------------------------------PhysicalOlapScan[store_sales] apply RFs: RF0 
RF1 RF2
 ----------------------------PhysicalDistribute[DistributionSpecHash]
 ------------------------------PhysicalProject
---------------------------------filter(((ca_state IN ('KS', 'MI', 'SD') OR 
ca_state IN ('CO', 'MO', 'ND')) OR ca_state IN ('NH', 'OH', 'TX')) and 
(customer_address.ca_country = 'United States'))
+--------------------------------filter((customer_address.ca_country = 'United 
States') and ca_state IN ('CO', 'KS', 'MI', 'MO', 'ND', 'NH', 'OH', 'SD', 'TX'))
 ----------------------------------PhysicalOlapScan[customer_address]
 --------------------------PhysicalDistribute[DistributionSpecReplicated]
 ----------------------------PhysicalProject
diff --git 
a/regression-test/data/nereids_tpcds_shape_sf100_p0/rf_prune/query15.out 
b/regression-test/data/nereids_tpcds_shape_sf100_p0/rf_prune/query15.out
index 7b670f886ae..f2d4abf7f78 100644
--- a/regression-test/data/nereids_tpcds_shape_sf100_p0/rf_prune/query15.out
+++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/rf_prune/query15.out
@@ -8,7 +8,7 @@ PhysicalResultSink
 ----------PhysicalDistribute[DistributionSpecHash]
 ------------hashAgg[LOCAL]
 --------------PhysicalProject
-----------------hashJoin[INNER_JOIN] 
hashCondition=((catalog_sales.cs_bill_customer_sk = customer.c_customer_sk)) 
otherCondition=(((substring(ca_zip, 1, 5) IN ('80348', '81792', '83405', 
'85392', '85460', '85669', '86197', '86475', '88274') OR ca_state IN ('CA', 
'GA', 'WA')) OR (catalog_sales.cs_sales_price > 500.00)))
+----------------hashJoin[INNER_JOIN] 
hashCondition=((catalog_sales.cs_bill_customer_sk = customer.c_customer_sk)) 
otherCondition=(((ca_state IN ('CA', 'GA', 'WA') OR substring(ca_zip, 1, 5) IN 
('80348', '81792', '83405', '85392', '85460', '85669', '86197', '86475', 
'88274')) OR (catalog_sales.cs_sales_price > 500.00)))
 ------------------PhysicalDistribute[DistributionSpecHash]
 --------------------hashJoin[INNER_JOIN] 
hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk)) 
otherCondition=() build RFs:RF1 d_date_sk->[cs_sold_date_sk]
 ----------------------PhysicalProject
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 a4f0b1a09f9..ad7e5318fda 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
@@ -21,7 +21,7 @@ PhysicalResultSink
 ------------------------------PhysicalOlapScan[customer_demographics]
 --------------------PhysicalDistribute[DistributionSpecHash]
 ----------------------PhysicalProject
-------------------------filter(((ca_state IN ('IA', 'MD', 'MN') OR ca_state IN 
('IL', 'TX', 'VA')) OR ca_state IN ('IN', 'MI', 'WI')) and 
(customer_address.ca_country = 'United States'))
+------------------------filter((customer_address.ca_country = 'United States') 
and ca_state IN ('IA', 'IL', 'IN', 'MD', 'MI', 'MN', 'TX', 'VA', 'WI'))
 --------------------------PhysicalOlapScan[customer_address]
 ----------------PhysicalDistribute[DistributionSpecReplicated]
 ------------------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 c6f76a0e6b4..2e35ec10486 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
@@ -11,38 +11,40 @@ PhysicalResultSink
 ----------------PhysicalProject
 ------------------hashJoin[INNER_JOIN] hashCondition=((reason.r_reason_sk = 
web_returns.wr_reason_sk)) otherCondition=()
 --------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] 
hashCondition=((web_sales.ws_web_page_sk = web_page.wp_web_page_sk)) 
otherCondition=()
+----------------------hashJoin[INNER_JOIN] 
hashCondition=((customer_address.ca_address_sk = 
web_returns.wr_refunded_addr_sk)) otherCondition=((((ca_state IN ('DE', 'FL', 
'TX') AND ((web_sales.ws_net_profit >= 100.00) AND (web_sales.ws_net_profit <= 
200.00))) OR (ca_state IN ('ID', 'IN', 'ND') AND ((web_sales.ws_net_profit >= 
150.00) AND (web_sales.ws_net_profit <= 300.00)))) OR (ca_state IN ('IL', 'MT', 
'OH') AND ((web_sales.ws_net_profit >= 50.00) AND (web_sales.ws_net_profit <= 
250.00) [...]
 ------------------------PhysicalProject
---------------------------hashJoin[INNER_JOIN] 
hashCondition=((cd1.cd_education_status = cd2.cd_education_status) and 
(cd1.cd_marital_status = cd2.cd_marital_status) and (cd2.cd_demo_sk = 
web_returns.wr_returning_cdemo_sk)) otherCondition=() build RFs:RF5 
cd_marital_status->[cd_marital_status];RF6 
cd_education_status->[cd_education_status];RF7 
wr_returning_cdemo_sk->[cd_demo_sk]
-----------------------------PhysicalProject
-------------------------------PhysicalOlapScan[customer_demographics] apply 
RFs: RF5 RF6 RF7
-----------------------------PhysicalDistribute[DistributionSpecReplicated]
+--------------------------filter((customer_address.ca_country = 'United 
States') and ca_state IN ('DE', 'FL', 'ID', 'IL', 'IN', 'MT', 'ND', 'OH', 'TX'))
+----------------------------PhysicalOlapScan[customer_address] apply RFs: RF8
+------------------------PhysicalDistribute[DistributionSpecHash]
+--------------------------PhysicalProject
+----------------------------hashJoin[INNER_JOIN] 
hashCondition=((web_sales.ws_web_page_sk = web_page.wp_web_page_sk)) 
otherCondition=() build RFs:RF7 ws_web_page_sk->[wp_web_page_sk]
 ------------------------------PhysicalProject
---------------------------------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_marital_sta 
[...]
-----------------------------------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'))))
---------------------------------------PhysicalOlapScan[customer_demographics] 
apply RFs: RF4
-----------------------------------PhysicalDistribute[DistributionSpecReplicated]
-------------------------------------hashJoin[INNER_JOIN] 
hashCondition=((customer_address.ca_address_sk = 
web_returns.wr_refunded_addr_sk)) otherCondition=((((ca_state IN ('DE', 'FL', 
'TX') AND ((web_sales.ws_net_profit >= 100.00) AND (web_sales.ws_net_profit <= 
200.00))) OR (ca_state IN ('ID', 'IN', 'ND') AND ((web_sales.ws_net_profit >= 
150.00) AND (web_sales.ws_net_profit <= 300.00)))) OR (ca_state IN ('IL', 'MT', 
'OH') AND ((web_sales.ws_net_profit >= 50.00) AND (web_sales.ws_net_pro [...]
+--------------------------------PhysicalOlapScan[web_page] apply RFs: RF7
+------------------------------PhysicalDistribute[DistributionSpecHash]
+--------------------------------PhysicalProject
+----------------------------------hashJoin[INNER_JOIN] 
hashCondition=((cd1.cd_education_status = cd2.cd_education_status) and 
(cd1.cd_marital_status = cd2.cd_marital_status) and (cd2.cd_demo_sk = 
web_returns.wr_returning_cdemo_sk)) otherCondition=() build RFs:RF4 
cd_marital_status->[cd_marital_status];RF5 
cd_education_status->[cd_education_status];RF6 
wr_returning_cdemo_sk->[cd_demo_sk]
+------------------------------------PhysicalProject
+--------------------------------------PhysicalOlapScan[customer_demographics] 
apply RFs: RF4 RF5 RF6
+------------------------------------PhysicalDistribute[DistributionSpecReplicated]
 --------------------------------------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:RF1 ws_item_sk->[wr_item_sk];RF2 ws_order_number->[wr_order_number]
-------------------------------------------PhysicalProject
---------------------------------------------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]
+----------------------------------------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_mar [...]
+------------------------------------------PhysicalDistribute[DistributionSpecHash]
 --------------------------------------------PhysicalProject
-----------------------------------------------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[DistributionSpecReplicated]
-----------------------------------------------PhysicalProject
-------------------------------------------------filter((date_dim.d_year = 
2000))
---------------------------------------------------PhysicalOlapScan[date_dim]
---------------------------------------PhysicalDistribute[DistributionSpecReplicated]
-----------------------------------------PhysicalProject
-------------------------------------------filter(((ca_state IN ('DE', 'FL', 
'TX') OR ca_state IN ('ID', 'IN', 'ND')) OR ca_state IN ('IL', 'MT', 'OH')) and 
(customer_address.ca_country = 'United States'))
---------------------------------------------PhysicalOlapScan[customer_address]
-------------------------PhysicalDistribute[DistributionSpecReplicated]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[web_page]
+----------------------------------------------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'))))
+------------------------------------------------PhysicalOlapScan[customer_demographics]
 apply RFs: RF3
+------------------------------------------PhysicalDistribute[DistributionSpecHash]
+--------------------------------------------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:RF1 ws_item_sk->[wr_item_sk];RF2 ws_order_number->[wr_order_number]
+------------------------------------------------PhysicalProject
+--------------------------------------------------PhysicalOlapScan[web_returns]
 apply RFs: RF1 RF2
+------------------------------------------------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
 <= 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[DistributionSpecReplicated]
+----------------------------------------------------PhysicalProject
+------------------------------------------------------filter((date_dim.d_year 
= 2000))
+--------------------------------------------------------PhysicalOlapScan[date_dim]
 --------------------PhysicalDistribute[DistributionSpecReplicated]
 ----------------------PhysicalProject
 ------------------------PhysicalOlapScan[reason]
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 5e8f8d4e9b2..441b3d76382 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
@@ -25,7 +25,7 @@ PhysicalResultSink
 ----------------------------------PhysicalOlapScan[store_sales] apply RFs: RF0 
RF1 RF2
 ----------------------------PhysicalDistribute[DistributionSpecHash]
 ------------------------------PhysicalProject
---------------------------------filter(((ca_state IN ('KS', 'MI', 'SD') OR 
ca_state IN ('CO', 'MO', 'ND')) OR ca_state IN ('NH', 'OH', 'TX')) and 
(customer_address.ca_country = 'United States'))
+--------------------------------filter((customer_address.ca_country = 'United 
States') and ca_state IN ('CO', 'KS', 'MI', 'MO', 'ND', 'NH', 'OH', 'SD', 'TX'))
 ----------------------------------PhysicalOlapScan[customer_address]
 --------------------------PhysicalDistribute[DistributionSpecReplicated]
 ----------------------------PhysicalProject
diff --git 
a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query15.out 
b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query15.out
index 763ac71df87..e89101870b8 100644
--- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query15.out
+++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query15.out
@@ -8,7 +8,7 @@ PhysicalResultSink
 ----------PhysicalDistribute[DistributionSpecHash]
 ------------hashAgg[LOCAL]
 --------------PhysicalProject
-----------------hashJoin[INNER_JOIN] 
hashCondition=((catalog_sales.cs_bill_customer_sk = customer.c_customer_sk)) 
otherCondition=(((substring(ca_zip, 1, 5) IN ('80348', '81792', '83405', 
'85392', '85460', '85669', '86197', '86475', '88274') OR ca_state IN ('CA', 
'GA', 'WA')) OR (catalog_sales.cs_sales_price > 500.00))) build RFs:RF2 
c_customer_sk->[cs_bill_customer_sk]
+----------------hashJoin[INNER_JOIN] 
hashCondition=((catalog_sales.cs_bill_customer_sk = customer.c_customer_sk)) 
otherCondition=(((ca_state IN ('CA', 'GA', 'WA') OR substring(ca_zip, 1, 5) IN 
('80348', '81792', '83405', '85392', '85460', '85669', '86197', '86475', 
'88274')) OR (catalog_sales.cs_sales_price > 500.00))) build RFs:RF2 
c_customer_sk->[cs_bill_customer_sk]
 ------------------PhysicalDistribute[DistributionSpecHash]
 --------------------hashJoin[INNER_JOIN] 
hashCondition=((catalog_sales.cs_sold_date_sk = date_dim.d_date_sk)) 
otherCondition=() build RFs:RF1 d_date_sk->[cs_sold_date_sk]
 ----------------------PhysicalProject
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 15f1054ab46..fc7edfee4de 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
@@ -21,7 +21,7 @@ PhysicalResultSink
 ------------------------------PhysicalOlapScan[customer_demographics]
 --------------------PhysicalDistribute[DistributionSpecHash]
 ----------------------PhysicalProject
-------------------------filter(((ca_state IN ('IA', 'MD', 'MN') OR ca_state IN 
('IL', 'TX', 'VA')) OR ca_state IN ('IN', 'MI', 'WI')) and 
(customer_address.ca_country = 'United States'))
+------------------------filter((customer_address.ca_country = 'United States') 
and ca_state IN ('IA', 'IL', 'IN', 'MD', 'MI', 'MN', 'TX', 'VA', 'WI'))
 --------------------------PhysicalOlapScan[customer_address]
 ----------------PhysicalDistribute[DistributionSpecReplicated]
 ------------------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 dc257985c6b..77aa3c3b857 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
@@ -11,38 +11,40 @@ PhysicalResultSink
 ----------------PhysicalProject
 ------------------hashJoin[INNER_JOIN] hashCondition=((reason.r_reason_sk = 
web_returns.wr_reason_sk)) otherCondition=() build RFs:RF9 
r_reason_sk->[wr_reason_sk]
 --------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] 
hashCondition=((web_sales.ws_web_page_sk = web_page.wp_web_page_sk)) 
otherCondition=() build RFs:RF8 wp_web_page_sk->[ws_web_page_sk]
+----------------------hashJoin[INNER_JOIN] 
hashCondition=((customer_address.ca_address_sk = 
web_returns.wr_refunded_addr_sk)) otherCondition=((((ca_state IN ('DE', 'FL', 
'TX') AND ((web_sales.ws_net_profit >= 100.00) AND (web_sales.ws_net_profit <= 
200.00))) OR (ca_state IN ('ID', 'IN', 'ND') AND ((web_sales.ws_net_profit >= 
150.00) AND (web_sales.ws_net_profit <= 300.00)))) OR (ca_state IN ('IL', 'MT', 
'OH') AND ((web_sales.ws_net_profit >= 50.00) AND (web_sales.ws_net_profit <= 
250.00) [...]
 ------------------------PhysicalProject
---------------------------hashJoin[INNER_JOIN] 
hashCondition=((cd1.cd_education_status = cd2.cd_education_status) and 
(cd1.cd_marital_status = cd2.cd_marital_status) and (cd2.cd_demo_sk = 
web_returns.wr_returning_cdemo_sk)) otherCondition=() build RFs:RF5 
cd_marital_status->[cd_marital_status];RF6 
cd_education_status->[cd_education_status];RF7 
wr_returning_cdemo_sk->[cd_demo_sk]
-----------------------------PhysicalProject
-------------------------------PhysicalOlapScan[customer_demographics] apply 
RFs: RF5 RF6 RF7
-----------------------------PhysicalDistribute[DistributionSpecReplicated]
+--------------------------filter((customer_address.ca_country = 'United 
States') and ca_state IN ('DE', 'FL', 'ID', 'IL', 'IN', 'MT', 'ND', 'OH', 'TX'))
+----------------------------PhysicalOlapScan[customer_address] apply RFs: RF8
+------------------------PhysicalDistribute[DistributionSpecHash]
+--------------------------PhysicalProject
+----------------------------hashJoin[INNER_JOIN] 
hashCondition=((web_sales.ws_web_page_sk = web_page.wp_web_page_sk)) 
otherCondition=() build RFs:RF7 ws_web_page_sk->[wp_web_page_sk]
 ------------------------------PhysicalProject
---------------------------------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_marital_sta 
[...]
-----------------------------------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'))))
---------------------------------------PhysicalOlapScan[customer_demographics] 
apply RFs: RF4
-----------------------------------PhysicalDistribute[DistributionSpecReplicated]
-------------------------------------hashJoin[INNER_JOIN] 
hashCondition=((customer_address.ca_address_sk = 
web_returns.wr_refunded_addr_sk)) otherCondition=((((ca_state IN ('DE', 'FL', 
'TX') AND ((web_sales.ws_net_profit >= 100.00) AND (web_sales.ws_net_profit <= 
200.00))) OR (ca_state IN ('ID', 'IN', 'ND') AND ((web_sales.ws_net_profit >= 
150.00) AND (web_sales.ws_net_profit <= 300.00)))) OR (ca_state IN ('IL', 'MT', 
'OH') AND ((web_sales.ws_net_profit >= 50.00) AND (web_sales.ws_net_pro [...]
+--------------------------------PhysicalOlapScan[web_page] apply RFs: RF7
+------------------------------PhysicalDistribute[DistributionSpecHash]
+--------------------------------PhysicalProject
+----------------------------------hashJoin[INNER_JOIN] 
hashCondition=((cd1.cd_education_status = cd2.cd_education_status) and 
(cd1.cd_marital_status = cd2.cd_marital_status) and (cd2.cd_demo_sk = 
web_returns.wr_returning_cdemo_sk)) otherCondition=() build RFs:RF4 
cd_marital_status->[cd_marital_status];RF5 
cd_education_status->[cd_education_status];RF6 
wr_returning_cdemo_sk->[cd_demo_sk]
+------------------------------------PhysicalProject
+--------------------------------------PhysicalOlapScan[customer_demographics] 
apply RFs: RF4 RF5 RF6
+------------------------------------PhysicalDistribute[DistributionSpecReplicated]
 --------------------------------------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:RF1 ws_item_sk->[wr_item_sk];RF2 ws_order_number->[wr_order_number]
-------------------------------------------PhysicalProject
---------------------------------------------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]
+----------------------------------------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_mar [...]
+------------------------------------------PhysicalDistribute[DistributionSpecHash]
 --------------------------------------------PhysicalProject
-----------------------------------------------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[DistributionSpecReplicated]
-----------------------------------------------PhysicalProject
-------------------------------------------------filter((date_dim.d_year = 
2000))
---------------------------------------------------PhysicalOlapScan[date_dim]
---------------------------------------PhysicalDistribute[DistributionSpecReplicated]
-----------------------------------------PhysicalProject
-------------------------------------------filter(((ca_state IN ('DE', 'FL', 
'TX') OR ca_state IN ('ID', 'IN', 'ND')) OR ca_state IN ('IL', 'MT', 'OH')) and 
(customer_address.ca_country = 'United States'))
---------------------------------------------PhysicalOlapScan[customer_address]
-------------------------PhysicalDistribute[DistributionSpecReplicated]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[web_page]
+----------------------------------------------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'))))
+------------------------------------------------PhysicalOlapScan[customer_demographics]
 apply RFs: RF3
+------------------------------------------PhysicalDistribute[DistributionSpecHash]
+--------------------------------------------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:RF1 ws_item_sk->[wr_item_sk];RF2 ws_order_number->[wr_order_number]
+------------------------------------------------PhysicalProject
+--------------------------------------------------PhysicalOlapScan[web_returns]
 apply RFs: RF1 RF2 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
 <= 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[DistributionSpecReplicated]
+----------------------------------------------------PhysicalProject
+------------------------------------------------------filter((date_dim.d_year 
= 2000))
+--------------------------------------------------------PhysicalOlapScan[date_dim]
 --------------------PhysicalDistribute[DistributionSpecReplicated]
 ----------------------PhysicalProject
 ------------------------PhysicalOlapScan[reason]


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

Reply via email to