This is an automated email from the ASF dual-hosted git repository.
morrysnow 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 bf197ee8d2 [opt](nereids) adjust cost model for BroadCastJoin and
PartitionJoin (#20713)
bf197ee8d2 is described below
commit bf197ee8d2d9e6ccf88184663e4614068bc3edde
Author: minghong <[email protected]>
AuthorDate: Fri Jun 16 22:49:04 2023 +0800
[opt](nereids) adjust cost model for BroadCastJoin and PartitionJoin
(#20713)
we add penalty for broadcast join (bc for brief in the following).
the intuition of penalty is as follow:
1. if the build side is very small (< 1M), we prefer bc, and set
`penalty=1`, which means no penalty
2. if build side is more than 1M, we consider the ratio of the probe row
count to the build row count. the less the ratio is, the higher penalty is.
this pr has positive impact on tpch queries. Only q3 is changed. in out
test (tpch 1T, 3BE) q3 improved from 5.1sec to 2.5 sec.
this pr has positive impact on tpcds queries. test on tpcds sf100 (3BE),
cold run improve from 163 sec to 156 sec, hot run improves from 155 sec to 149
sec
---
.../org/apache/doris/nereids/cost/CostModelV1.java | 44 +++-
.../apache/doris/statistics/ColumnStatistic.java | 4 +
.../org/apache/doris/statistics/Statistics.java | 25 ++-
.../nereids_tpcds_shape_sf100_p0/shape/query1.out | 5 +-
.../nereids_tpcds_shape_sf100_p0/shape/query11.out | 15 +-
.../nereids_tpcds_shape_sf100_p0/shape/query12.out | 20 +-
.../nereids_tpcds_shape_sf100_p0/shape/query15.out | 13 +-
.../nereids_tpcds_shape_sf100_p0/shape/query18.out | 15 +-
.../nereids_tpcds_shape_sf100_p0/shape/query27.out | 30 +--
.../nereids_tpcds_shape_sf100_p0/shape/query28.out | 133 ++++++------
.../nereids_tpcds_shape_sf100_p0/shape/query30.out | 3 +-
.../nereids_tpcds_shape_sf100_p0/shape/query31.out | 18 +-
.../nereids_tpcds_shape_sf100_p0/shape/query33.out | 61 +++---
.../nereids_tpcds_shape_sf100_p0/shape/query38.out | 28 ++-
.../nereids_tpcds_shape_sf100_p0/shape/query39.out | 74 +++----
.../nereids_tpcds_shape_sf100_p0/shape/query45.out | 18 +-
.../nereids_tpcds_shape_sf100_p0/shape/query46.out | 42 ++--
.../nereids_tpcds_shape_sf100_p0/shape/query56.out | 76 +++----
.../nereids_tpcds_shape_sf100_p0/shape/query59.out | 10 +-
.../nereids_tpcds_shape_sf100_p0/shape/query6.out | 36 +--
.../nereids_tpcds_shape_sf100_p0/shape/query60.out | 72 +++---
.../nereids_tpcds_shape_sf100_p0/shape/query64.out | 241 +++++++--------------
.../nereids_tpcds_shape_sf100_p0/shape/query68.out | 5 +-
.../nereids_tpcds_shape_sf100_p0/shape/query7.out | 28 +--
.../nereids_tpcds_shape_sf100_p0/shape/query74.out | 15 +-
.../nereids_tpcds_shape_sf100_p0/shape/query79.out | 37 ++--
.../nereids_tpcds_shape_sf100_p0/shape/query87.out | 28 ++-
.../nereids_tpcds_shape_sf100_p0/shape/query88.out | 93 ++++----
.../nereids_tpcds_shape_sf100_p0/shape/query91.out | 5 +-
.../data/nereids_tpch_shape_sf1000_p0/shape/q3.out | 13 +-
.../data/nereids_tpch_shape_sf500_p0/shape/q3.out | 13 +-
31 files changed, 594 insertions(+), 626 deletions(-)
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/cost/CostModelV1.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/cost/CostModelV1.java
index f7f6a94d93..c59b32175c 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/nereids/cost/CostModelV1.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/cost/CostModelV1.java
@@ -59,6 +59,13 @@ class CostModelV1 extends PlanVisitor<Cost, PlanContext> {
*/
static final double HEAVY_OPERATOR_PUNISH_FACTOR = 0.0;
+ // for a join, skew = leftRowCount/rightRowCount
+ // the higher skew is, the more we prefer broadcast join than shuffle join
+ // if skew < BROADCAST_JOIN_SKEW_RATIO, broadcast join will be punished,
+ // the penalty factor is no more than BROADCAST_JOIN_SKEW_PENALTY_LIMIT
+ static final double BROADCAST_JOIN_SKEW_RATIO = 30.0;
+ static final double BROADCAST_JOIN_SKEW_PENALTY_LIMIT = 2.0;
+
public static Cost addChildCost(Plan plan, Cost planCost, Cost childCost,
int index) {
Preconditions.checkArgument(childCost instanceof CostV1 && planCost
instanceof CostV1);
CostV1 childCostV1 = (CostV1) childCost;
@@ -161,27 +168,28 @@ class CostModelV1 extends PlanVisitor<Cost, PlanContext> {
@Override
public Cost visitPhysicalDistribute(
PhysicalDistribute<? extends Plan> distribute, PlanContext
context) {
- int kBytes = 1024;
Statistics childStatistics = context.getChildStatistics(0);
+ double intputRowCount = childStatistics.getRowCount();
DistributionSpec spec = distribute.getDistributionSpec();
int beNumber =
ConnectContext.get().getEnv().getClusterInfo().getBackendsNumber(true);
beNumber = Math.max(1, beNumber);
- double dataSize = childStatistics.computeSize() / kBytes; // in K bytes
+
// shuffle
if (spec instanceof DistributionSpecHash) {
return CostV1.of(
0,
0,
- dataSize / beNumber);
+ intputRowCount * childStatistics.dataSizeFactor() /
beNumber);
}
// replicate
if (spec instanceof DistributionSpecReplicated) {
+ double dataSize = childStatistics.computeSize();
double memLimit =
ConnectContext.get().getSessionVariable().getMaxExecMemByte();
//if build side is big, avoid use broadcast join
double rowsLimit =
ConnectContext.get().getSessionVariable().getBroadcastRowCountLimit();
double brMemlimit =
ConnectContext.get().getSessionVariable().getBroadcastHashtableMemLimitPercentage();
- if (dataSize > memLimit * brMemlimit / kBytes
+ if (dataSize > memLimit * brMemlimit
|| childStatistics.getRowCount() > rowsLimit) {
return CostV1.of(Double.MAX_VALUE, Double.MAX_VALUE,
Double.MAX_VALUE);
}
@@ -191,7 +199,7 @@ class CostModelV1 extends PlanVisitor<Cost, PlanContext> {
return CostV1.of(
0,
0,
- dataSize, 0.0);
+ intputRowCount * childStatistics.dataSizeFactor());
}
@@ -200,12 +208,12 @@ class CostModelV1 extends PlanVisitor<Cost, PlanContext> {
return CostV1.of(
0,
0,
- dataSize / beNumber);
+ intputRowCount * childStatistics.dataSizeFactor() /
beNumber);
}
// any
return CostV1.of(
- childStatistics.getRowCount(),
+ intputRowCount,
0,
0);
}
@@ -220,6 +228,17 @@ class CostModelV1 extends PlanVisitor<Cost, PlanContext> {
return CostV1.of(inputStatistics.getRowCount(),
statistics.getRowCount(), 0);
}
+ private double broadCastJoinBalancePenalty(Statistics probeStats,
Statistics buildStats) {
+ // if build side is small enough (<1M), broadcast is also good, no
penalty
+ if (buildStats.computeSize() < 1024 * 1024) {
+ return 1;
+ }
+ double broadcastJoinPenalty = (BROADCAST_JOIN_SKEW_RATIO *
buildStats.getRowCount()) / probeStats.getRowCount();
+ broadcastJoinPenalty = Math.max(1, broadcastJoinPenalty);
+ broadcastJoinPenalty = Math.min(BROADCAST_JOIN_SKEW_PENALTY_LIMIT,
broadcastJoinPenalty);
+ return broadcastJoinPenalty;
+ }
+
@Override
public Cost visitPhysicalHashJoin(
PhysicalHashJoin<? extends Plan, ? extends Plan> physicalHashJoin,
PlanContext context) {
@@ -252,10 +271,19 @@ class CostModelV1 extends PlanVisitor<Cost, PlanContext> {
leftRowCount + rightRowCount,
penalty);
}
+
+ if (context.isBroadcastJoin()) {
+ double broadcastJoinPenalty =
broadCastJoinBalancePenalty(probeStats, buildStats);
+ return CostV1.of(leftRowCount * broadcastJoinPenalty +
rightRowCount + outputRowCount,
+ rightRowCount,
+ 0,
+ 0
+ );
+ }
return CostV1.of(leftRowCount + rightRowCount + outputRowCount,
rightRowCount,
0,
- penalty
+ 0
);
}
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/statistics/ColumnStatistic.java
b/fe/fe-core/src/main/java/org/apache/doris/statistics/ColumnStatistic.java
index ddfec87c13..47ab57437c 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/statistics/ColumnStatistic.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/statistics/ColumnStatistic.java
@@ -381,4 +381,8 @@ public class ColumnStatistic {
public boolean rangeChanged() {
return original != null && (minValue != original.minValue || maxValue
!= original.maxValue);
}
+
+ public boolean isUnKnown() {
+ return isUnKnown;
+ }
}
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/statistics/Statistics.java
b/fe/fe-core/src/main/java/org/apache/doris/statistics/Statistics.java
index 9ec904d418..dd8d470e24 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/statistics/Statistics.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/statistics/Statistics.java
@@ -27,11 +27,14 @@ import java.util.Map;
import java.util.Map.Entry;
public class Statistics {
+ private static int K_BYTES = 1024;
+
private final double rowCount;
private final Map<Expression, ColumnStatistic> expressionToColumnStats;
- private double computeSize;
+ // the byte size of one tuple
+ private double tupleSize;
@Deprecated
private double width;
@@ -146,13 +149,21 @@ public class Statistics {
return this;
}
- public double computeSize() {
- if (computeSize <= 0) {
- computeSize = Math.max(1, expressionToColumnStats.values().stream()
- .map(s -> s.avgSizeByte).reduce(0D, Double::sum)
- ) * rowCount;
+ private double computeTupleSize() {
+ if (tupleSize <= 0) {
+ tupleSize = expressionToColumnStats.values().stream()
+ .map(s -> s.avgSizeByte).reduce(0D, Double::sum);
+ tupleSize = Math.max(1, tupleSize);
}
- return computeSize;
+ return tupleSize;
+ }
+
+ public double computeSize() {
+ return computeTupleSize() * rowCount;
+ }
+
+ public double dataSizeFactor() {
+ return computeTupleSize() / K_BYTES;
}
@Override
diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query1.out
b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query1.out
index 55315945e9..16ab4a00e2 100644
--- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query1.out
+++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query1.out
@@ -18,8 +18,9 @@ CteAnchor[cteId= ( CTEId#2=] )
------PhysicalTopN
--------PhysicalProject
----------hashJoin[INNER_JOIN](ctr1.ctr_customer_sk = customer.c_customer_sk)
-------------PhysicalProject
---------------PhysicalOlapScan[customer]
+------------PhysicalDistribute
+--------------PhysicalProject
+----------------PhysicalOlapScan[customer]
------------PhysicalDistribute
--------------PhysicalProject
----------------hashJoin[LEFT_SEMI_JOIN](ctr1.ctr_store_sk =
ctr2.ctr_store_sk)(cast(ctr_total_return as DOUBLE) >
cast((avg(ctr_total_return) * 1.2) as DOUBLE))
diff --git
a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query11.out
b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query11.out
index 5175a326ee..f1fd504809 100644
--- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query11.out
+++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query11.out
@@ -28,14 +28,15 @@ CteAnchor[cteId= ( CTEId#4=] )
--------------hashAgg[LOCAL]
----------------PhysicalProject
------------------hashJoin[INNER_JOIN](customer.c_customer_sk =
web_sales.ws_bill_customer_sk)
---------------------hashJoin[INNER_JOIN](web_sales.ws_sold_date_sk =
date_dim.d_date_sk)
-----------------------PhysicalProject
-------------------------filter((('w' = 'w') OR ('w' = 's')))
---------------------------PhysicalOlapScan[web_sales]
-----------------------PhysicalDistribute
+--------------------PhysicalDistribute
+----------------------hashJoin[INNER_JOIN](web_sales.ws_sold_date_sk =
date_dim.d_date_sk)
------------------------PhysicalProject
---------------------------filter(((date_dim.d_year = 2001) OR (date_dim.d_year
= 2002))(('w' = 'w') OR ('w' = 's')))
-----------------------------PhysicalOlapScan[date_dim]
+--------------------------filter((('w' = 'w') OR ('w' = 's')))
+----------------------------PhysicalOlapScan[web_sales]
+------------------------PhysicalDistribute
+--------------------------PhysicalProject
+----------------------------filter(((date_dim.d_year = 2001) OR
(date_dim.d_year = 2002))(('w' = 'w') OR ('w' = 's')))
+------------------------------PhysicalOlapScan[date_dim]
--------------------PhysicalDistribute
----------------------PhysicalProject
------------------------filter((('w' = 'w') OR ('w' = 's')))
diff --git
a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query12.out
b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query12.out
index f2846541d3..eb27fab212 100644
--- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query12.out
+++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query12.out
@@ -12,15 +12,15 @@ PhysicalTopN
------------------hashAgg[LOCAL]
--------------------PhysicalProject
----------------------hashJoin[INNER_JOIN](web_sales.ws_item_sk =
item.i_item_sk)
-------------------------hashJoin[INNER_JOIN](web_sales.ws_sold_date_sk =
date_dim.d_date_sk)
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[web_sales]
---------------------------PhysicalDistribute
-----------------------------PhysicalProject
-------------------------------filter((date_dim.d_date <=
1998-05-06)(date_dim.d_date >= 1998-04-06))
---------------------------------PhysicalOlapScan[date_dim]
------------------------PhysicalDistribute
---------------------------PhysicalProject
-----------------------------filter(i_category IN ('Books', 'Sports', 'Men'))
-------------------------------PhysicalOlapScan[item]
+--------------------------hashJoin[INNER_JOIN](web_sales.ws_sold_date_sk =
date_dim.d_date_sk)
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[web_sales]
+----------------------------PhysicalDistribute
+------------------------------PhysicalProject
+--------------------------------filter((date_dim.d_date <=
1998-05-06)(date_dim.d_date >= 1998-04-06))
+----------------------------------PhysicalOlapScan[date_dim]
+------------------------PhysicalProject
+--------------------------filter(i_category IN ('Books', 'Sports', 'Men'))
+----------------------------PhysicalOlapScan[item]
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 5e4c68f0b5..9d365f0d82 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,13 +8,14 @@ PhysicalTopN
----------hashAgg[LOCAL]
------------PhysicalProject
--------------hashJoin[INNER_JOIN](catalog_sales.cs_bill_customer_sk =
customer.c_customer_sk)((substring(ca_zip, 1, 5) IN ('85669', '86197', '88274',
'83405', '86475', '85392', '85460', '80348', '81792') OR ca_state IN ('CA',
'WA', 'GA')) OR (catalog_sales.cs_sales_price > 500.00))
-----------------hashJoin[INNER_JOIN](catalog_sales.cs_sold_date_sk =
date_dim.d_date_sk)
-------------------PhysicalProject
---------------------PhysicalOlapScan[catalog_sales]
-------------------PhysicalDistribute
+----------------PhysicalDistribute
+------------------hashJoin[INNER_JOIN](catalog_sales.cs_sold_date_sk =
date_dim.d_date_sk)
--------------------PhysicalProject
-----------------------filter((date_dim.d_qoy = 1)(date_dim.d_year = 2001))
-------------------------PhysicalOlapScan[date_dim]
+----------------------PhysicalOlapScan[catalog_sales]
+--------------------PhysicalDistribute
+----------------------PhysicalProject
+------------------------filter((date_dim.d_qoy = 1)(date_dim.d_year = 2001))
+--------------------------PhysicalOlapScan[date_dim]
----------------PhysicalDistribute
------------------PhysicalProject
--------------------hashJoin[INNER_JOIN](customer.c_current_addr_sk =
customer_address.ca_address_sk)
diff --git
a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query18.out
b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query18.out
index 0a04c4c0cf..62483c4de0 100644
--- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query18.out
+++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query18.out
@@ -15,8 +15,9 @@ PhysicalTopN
--------------------PhysicalDistribute
----------------------PhysicalProject
------------------------hashJoin[INNER_JOIN](customer.c_current_cdemo_sk =
cd2.cd_demo_sk)
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[customer_demographics]
+--------------------------PhysicalDistribute
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[customer_demographics]
--------------------------PhysicalDistribute
----------------------------PhysicalProject
------------------------------hashJoin[INNER_JOIN](catalog_sales.cs_sold_date_sk
= date_dim.d_date_sk)
@@ -28,13 +29,13 @@ PhysicalTopN
------------------------------------------PhysicalOlapScan[catalog_sales]
----------------------------------------PhysicalDistribute
------------------------------------------hashJoin[INNER_JOIN](customer.c_current_addr_sk
= customer_address.ca_address_sk)
---------------------------------------------PhysicalProject
-----------------------------------------------filter(c_birth_month IN (1, 2,
4, 7, 8, 10))
-------------------------------------------------PhysicalOlapScan[customer]
--------------------------------------------PhysicalDistribute
----------------------------------------------PhysicalProject
-------------------------------------------------filter(ca_state IN ('WA',
'GA', 'NC', 'ME', 'WY', 'OK', 'IN'))
---------------------------------------------------PhysicalOlapScan[customer_address]
+------------------------------------------------filter(c_birth_month IN (1, 2,
4, 7, 8, 10))
+--------------------------------------------------PhysicalOlapScan[customer]
+--------------------------------------------PhysicalProject
+----------------------------------------------filter(ca_state IN ('WA', 'GA',
'NC', 'ME', 'WY', 'OK', 'IN'))
+------------------------------------------------PhysicalOlapScan[customer_address]
------------------------------------PhysicalDistribute
--------------------------------------PhysicalProject
----------------------------------------filter((cast(cd_gender as VARCHAR(*))
= 'F')(cast(cd_education_status as VARCHAR(*)) = 'Advanced Degree'))
diff --git
a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query27.out
b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query27.out
index 6ba9188d01..f1fec2b391 100644
--- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query27.out
+++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query27.out
@@ -11,23 +11,23 @@ PhysicalTopN
----------------PhysicalRepeat
------------------PhysicalProject
--------------------hashJoin[INNER_JOIN](store_sales.ss_store_sk =
store.s_store_sk)
-----------------------PhysicalProject
-------------------------hashJoin[INNER_JOIN](store_sales.ss_item_sk =
item.i_item_sk)
---------------------------hashJoin[INNER_JOIN](store_sales.ss_sold_date_sk =
date_dim.d_date_sk)
-----------------------------hashJoin[INNER_JOIN](store_sales.ss_cdemo_sk =
customer_demographics.cd_demo_sk)
-------------------------------PhysicalProject
---------------------------------PhysicalOlapScan[store_sales]
+----------------------hashJoin[INNER_JOIN](store_sales.ss_item_sk =
item.i_item_sk)
+------------------------PhysicalDistribute
+--------------------------PhysicalProject
+----------------------------hashJoin[INNER_JOIN](store_sales.ss_sold_date_sk =
date_dim.d_date_sk)
+------------------------------hashJoin[INNER_JOIN](store_sales.ss_cdemo_sk =
customer_demographics.cd_demo_sk)
+--------------------------------PhysicalProject
+----------------------------------PhysicalOlapScan[store_sales]
+--------------------------------PhysicalDistribute
+----------------------------------PhysicalProject
+------------------------------------filter((cast(cd_gender as VARCHAR(*)) =
'F')(cast(cd_education_status as VARCHAR(*)) =
'Secondary')(cast(cd_marital_status as VARCHAR(*)) = 'D'))
+--------------------------------------PhysicalOlapScan[customer_demographics]
------------------------------PhysicalDistribute
--------------------------------PhysicalProject
-----------------------------------filter((cast(cd_gender as VARCHAR(*)) =
'F')(cast(cd_education_status as VARCHAR(*)) =
'Secondary')(cast(cd_marital_status as VARCHAR(*)) = 'D'))
-------------------------------------PhysicalOlapScan[customer_demographics]
-----------------------------PhysicalDistribute
-------------------------------PhysicalProject
---------------------------------filter((date_dim.d_year = 1999))
-----------------------------------PhysicalOlapScan[date_dim]
---------------------------PhysicalDistribute
-----------------------------PhysicalProject
-------------------------------PhysicalOlapScan[item]
+----------------------------------filter((date_dim.d_year = 1999))
+------------------------------------PhysicalOlapScan[date_dim]
+------------------------PhysicalProject
+--------------------------PhysicalOlapScan[item]
----------------------PhysicalDistribute
------------------------PhysicalProject
--------------------------filter(s_state IN ('MO', 'AL', 'MI', 'TN', 'LA',
'SC'))
diff --git
a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query28.out
b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query28.out
index 37ce5c5f4a..7a07c8ac87 100644
--- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query28.out
+++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query28.out
@@ -2,31 +2,20 @@
-- !ds_shape_28 --
PhysicalLimit
--PhysicalLimit
-----NestedLoopJoin[CROSS_JOIN]
-------PhysicalLimit
+----PhysicalProject
+------NestedLoopJoin[CROSS_JOIN]
--------PhysicalLimit
-----------NestedLoopJoin[CROSS_JOIN]
-------------PhysicalLimit
+----------PhysicalLimit
+------------NestedLoopJoin[CROSS_JOIN]
--------------PhysicalLimit
-----------------NestedLoopJoin[CROSS_JOIN]
-------------------PhysicalLimit
+----------------PhysicalLimit
+------------------NestedLoopJoin[CROSS_JOIN]
--------------------PhysicalLimit
-----------------------NestedLoopJoin[CROSS_JOIN]
-------------------------PhysicalLimit
+----------------------PhysicalLimit
+------------------------NestedLoopJoin[CROSS_JOIN]
--------------------------PhysicalLimit
-----------------------------NestedLoopJoin[CROSS_JOIN]
-------------------------------PhysicalLimit
---------------------------------PhysicalLimit
-----------------------------------hashAgg[DISTINCT_GLOBAL]
-------------------------------------PhysicalDistribute
---------------------------------------hashAgg[DISTINCT_LOCAL]
-----------------------------------------hashAgg[GLOBAL]
-------------------------------------------PhysicalDistribute
---------------------------------------------hashAgg[LOCAL]
-----------------------------------------------PhysicalProject
-------------------------------------------------filter((store_sales.ss_quantity
<= 5)((((store_sales.ss_list_price >= 131.00) AND (store_sales.ss_list_price
<= 141.00)) OR ((store_sales.ss_coupon_amt >= 16798.00) AND
(store_sales.ss_coupon_amt <= 17798.00))) OR ((store_sales.ss_wholesale_cost >=
25.00) AND (store_sales.ss_wholesale_cost <= 45.00)))(store_sales.ss_quantity
>= 0))
---------------------------------------------------PhysicalOlapScan[store_sales]
-------------------------------PhysicalDistribute
+----------------------------PhysicalLimit
+------------------------------NestedLoopJoin[CROSS_JOIN]
--------------------------------PhysicalLimit
----------------------------------PhysicalLimit
------------------------------------hashAgg[DISTINCT_GLOBAL]
@@ -36,54 +25,66 @@ PhysicalLimit
--------------------------------------------PhysicalDistribute
----------------------------------------------hashAgg[LOCAL]
------------------------------------------------PhysicalProject
---------------------------------------------------filter((store_sales.ss_quantity
<= 10)((((store_sales.ss_list_price >= 145.00) AND (store_sales.ss_list_price
<= 155.00)) OR ((store_sales.ss_coupon_amt >= 14792.00) AND
(store_sales.ss_coupon_amt <= 15792.00))) OR ((store_sales.ss_wholesale_cost >=
46.00) AND (store_sales.ss_wholesale_cost <= 66.00)))(store_sales.ss_quantity
>= 6))
+--------------------------------------------------filter((store_sales.ss_quantity
<= 5)((((store_sales.ss_list_price >= 131.00) AND (store_sales.ss_list_price
<= 141.00)) OR ((store_sales.ss_coupon_amt >= 16798.00) AND
(store_sales.ss_coupon_amt <= 17798.00))) OR ((store_sales.ss_wholesale_cost >=
25.00) AND (store_sales.ss_wholesale_cost <= 45.00)))(store_sales.ss_quantity
>= 0))
----------------------------------------------------PhysicalOlapScan[store_sales]
-------------------------PhysicalDistribute
---------------------------PhysicalLimit
-----------------------------PhysicalLimit
-------------------------------hashAgg[DISTINCT_GLOBAL]
--------------------------------PhysicalDistribute
-----------------------------------hashAgg[DISTINCT_LOCAL]
-------------------------------------hashAgg[GLOBAL]
---------------------------------------PhysicalDistribute
-----------------------------------------hashAgg[LOCAL]
-------------------------------------------PhysicalProject
---------------------------------------------filter(((((store_sales.ss_list_price
>= 1.5E+2) AND (store_sales.ss_list_price <= 1.6E+2)) OR
((store_sales.ss_coupon_amt >= 6.6E+3) AND (store_sales.ss_coupon_amt <=
7.6E+3))) OR ((store_sales.ss_wholesale_cost >= 9.00) AND
(store_sales.ss_wholesale_cost <= 29.00)))(store_sales.ss_quantity >=
11)(store_sales.ss_quantity <= 15))
-----------------------------------------------PhysicalOlapScan[store_sales]
-------------------PhysicalDistribute
---------------------PhysicalLimit
-----------------------PhysicalLimit
-------------------------hashAgg[DISTINCT_GLOBAL]
+----------------------------------PhysicalLimit
+------------------------------------PhysicalLimit
+--------------------------------------hashAgg[DISTINCT_GLOBAL]
+----------------------------------------PhysicalDistribute
+------------------------------------------hashAgg[DISTINCT_LOCAL]
+--------------------------------------------hashAgg[GLOBAL]
+----------------------------------------------PhysicalDistribute
+------------------------------------------------hashAgg[LOCAL]
+--------------------------------------------------PhysicalProject
+----------------------------------------------------filter((store_sales.ss_quantity
<= 10)((((store_sales.ss_list_price >= 145.00) AND (store_sales.ss_list_price
<= 155.00)) OR ((store_sales.ss_coupon_amt >= 14792.00) AND
(store_sales.ss_coupon_amt <= 15792.00))) OR ((store_sales.ss_wholesale_cost >=
46.00) AND (store_sales.ss_wholesale_cost <= 66.00)))(store_sales.ss_quantity
>= 6))
+------------------------------------------------------PhysicalOlapScan[store_sales]
--------------------------PhysicalDistribute
-----------------------------hashAgg[DISTINCT_LOCAL]
-------------------------------hashAgg[GLOBAL]
---------------------------------PhysicalDistribute
-----------------------------------hashAgg[LOCAL]
-------------------------------------PhysicalProject
---------------------------------------filter((store_sales.ss_quantity <=
20)((((store_sales.ss_list_price >= 91.00) AND (store_sales.ss_list_price <=
101.00)) OR ((store_sales.ss_coupon_amt >= 13493.00) AND
(store_sales.ss_coupon_amt <= 14493.00))) OR ((store_sales.ss_wholesale_cost >=
36.00) AND (store_sales.ss_wholesale_cost <= 56.00)))(store_sales.ss_quantity
>= 16))
-----------------------------------------PhysicalOlapScan[store_sales]
-------------PhysicalDistribute
---------------PhysicalLimit
-----------------PhysicalLimit
-------------------hashAgg[DISTINCT_GLOBAL]
+----------------------------PhysicalLimit
+------------------------------PhysicalLimit
+--------------------------------hashAgg[DISTINCT_GLOBAL]
+----------------------------------PhysicalDistribute
+------------------------------------hashAgg[DISTINCT_LOCAL]
+--------------------------------------hashAgg[GLOBAL]
+----------------------------------------PhysicalDistribute
+------------------------------------------hashAgg[LOCAL]
+--------------------------------------------PhysicalProject
+----------------------------------------------filter(((((store_sales.ss_list_price
>= 1.5E+2) AND (store_sales.ss_list_price <= 1.6E+2)) OR
((store_sales.ss_coupon_amt >= 6.6E+3) AND (store_sales.ss_coupon_amt <=
7.6E+3))) OR ((store_sales.ss_wholesale_cost >= 9.00) AND
(store_sales.ss_wholesale_cost <= 29.00)))(store_sales.ss_quantity >=
11)(store_sales.ss_quantity <= 15))
+------------------------------------------------PhysicalOlapScan[store_sales]
--------------------PhysicalDistribute
-----------------------hashAgg[DISTINCT_LOCAL]
-------------------------hashAgg[GLOBAL]
---------------------------PhysicalDistribute
-----------------------------hashAgg[LOCAL]
-------------------------------PhysicalProject
---------------------------------filter(((((store_sales.ss_list_price >= 0.00)
AND (store_sales.ss_list_price <= 10.00)) OR ((store_sales.ss_coupon_amt >=
7629.00) AND (store_sales.ss_coupon_amt <= 8629.00))) OR
((store_sales.ss_wholesale_cost >= 6.00) AND (store_sales.ss_wholesale_cost <=
26.00)))(store_sales.ss_quantity <= 25)(store_sales.ss_quantity >= 21))
-----------------------------------PhysicalOlapScan[store_sales]
-------PhysicalDistribute
---------PhysicalLimit
-----------PhysicalLimit
-------------hashAgg[DISTINCT_GLOBAL]
+----------------------PhysicalLimit
+------------------------PhysicalLimit
+--------------------------hashAgg[DISTINCT_GLOBAL]
+----------------------------PhysicalDistribute
+------------------------------hashAgg[DISTINCT_LOCAL]
+--------------------------------hashAgg[GLOBAL]
+----------------------------------PhysicalDistribute
+------------------------------------hashAgg[LOCAL]
+--------------------------------------PhysicalProject
+----------------------------------------filter((store_sales.ss_quantity <=
20)((((store_sales.ss_list_price >= 91.00) AND (store_sales.ss_list_price <=
101.00)) OR ((store_sales.ss_coupon_amt >= 13493.00) AND
(store_sales.ss_coupon_amt <= 14493.00))) OR ((store_sales.ss_wholesale_cost >=
36.00) AND (store_sales.ss_wholesale_cost <= 56.00)))(store_sales.ss_quantity
>= 16))
+------------------------------------------PhysicalOlapScan[store_sales]
--------------PhysicalDistribute
-----------------hashAgg[DISTINCT_LOCAL]
-------------------hashAgg[GLOBAL]
---------------------PhysicalDistribute
-----------------------hashAgg[LOCAL]
-------------------------PhysicalProject
---------------------------filter((store_sales.ss_quantity >=
26)((((store_sales.ss_list_price >= 89.00) AND (store_sales.ss_list_price <=
99.00)) OR ((store_sales.ss_coupon_amt >= 15257.00) AND
(store_sales.ss_coupon_amt <= 16257.00))) OR ((store_sales.ss_wholesale_cost >=
31.00) AND (store_sales.ss_wholesale_cost <= 51.00)))(store_sales.ss_quantity
<= 30))
-----------------------------PhysicalOlapScan[store_sales]
+----------------PhysicalLimit
+------------------PhysicalLimit
+--------------------hashAgg[DISTINCT_GLOBAL]
+----------------------PhysicalDistribute
+------------------------hashAgg[DISTINCT_LOCAL]
+--------------------------hashAgg[GLOBAL]
+----------------------------PhysicalDistribute
+------------------------------hashAgg[LOCAL]
+--------------------------------PhysicalProject
+----------------------------------filter(((((store_sales.ss_list_price >=
0.00) AND (store_sales.ss_list_price <= 10.00)) OR ((store_sales.ss_coupon_amt
>= 7629.00) AND (store_sales.ss_coupon_amt <= 8629.00))) OR
((store_sales.ss_wholesale_cost >= 6.00) AND (store_sales.ss_wholesale_cost <=
26.00)))(store_sales.ss_quantity <= 25)(store_sales.ss_quantity >= 21))
+------------------------------------PhysicalOlapScan[store_sales]
+--------PhysicalDistribute
+----------PhysicalLimit
+------------PhysicalLimit
+--------------hashAgg[DISTINCT_GLOBAL]
+----------------PhysicalDistribute
+------------------hashAgg[DISTINCT_LOCAL]
+--------------------hashAgg[GLOBAL]
+----------------------PhysicalDistribute
+------------------------hashAgg[LOCAL]
+--------------------------PhysicalProject
+----------------------------filter((store_sales.ss_quantity >=
26)((((store_sales.ss_list_price >= 89.00) AND (store_sales.ss_list_price <=
99.00)) OR ((store_sales.ss_coupon_amt >= 15257.00) AND
(store_sales.ss_coupon_amt <= 16257.00))) OR ((store_sales.ss_wholesale_cost >=
31.00) AND (store_sales.ss_wholesale_cost <= 51.00)))(store_sales.ss_quantity
<= 30))
+------------------------------PhysicalOlapScan[store_sales]
diff --git
a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query30.out
b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query30.out
index 36b017f791..f6803d5601 100644
--- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query30.out
+++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query30.out
@@ -24,7 +24,8 @@ CteAnchor[cteId= ( CTEId#2=] )
--------PhysicalProject
----------hashJoin[LEFT_SEMI_JOIN](ctr1.ctr_state =
ctr2.ctr_state)(cast(ctr_total_return as DOUBLE) > cast((avg(ctr_total_return)
* 1.2) as DOUBLE))
------------hashJoin[INNER_JOIN](ctr1.ctr_customer_sk = customer.c_customer_sk)
---------------CteConsumer[cteId= ( CTEId#2=] )
+--------------PhysicalDistribute
+----------------CteConsumer[cteId= ( CTEId#2=] )
--------------PhysicalDistribute
----------------hashJoin[INNER_JOIN](customer_address.ca_address_sk =
customer.c_current_addr_sk)
------------------PhysicalProject
diff --git
a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query31.out
b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query31.out
index f17d2ca533..912280a2e8 100644
--- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query31.out
+++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query31.out
@@ -27,17 +27,17 @@ CteAnchor[cteId= ( CTEId#6=] )
------------hashAgg[LOCAL]
--------------PhysicalProject
----------------hashJoin[INNER_JOIN](web_sales.ws_bill_addr_sk =
customer_address.ca_address_sk)
-------------------PhysicalProject
---------------------hashJoin[INNER_JOIN](web_sales.ws_sold_date_sk =
date_dim.d_date_sk)
-----------------------PhysicalProject
-------------------------PhysicalOlapScan[web_sales]
-----------------------PhysicalDistribute
-------------------------PhysicalProject
---------------------------filter((ws.d_year = 2000)d_qoy IN (1, 2, 3))
-----------------------------PhysicalOlapScan[date_dim]
------------------PhysicalDistribute
--------------------PhysicalProject
-----------------------PhysicalOlapScan[customer_address]
+----------------------hashJoin[INNER_JOIN](web_sales.ws_sold_date_sk =
date_dim.d_date_sk)
+------------------------PhysicalProject
+--------------------------PhysicalOlapScan[web_sales]
+------------------------PhysicalDistribute
+--------------------------PhysicalProject
+----------------------------filter((ws.d_year = 2000)d_qoy IN (1, 2, 3))
+------------------------------PhysicalOlapScan[date_dim]
+------------------PhysicalProject
+--------------------PhysicalOlapScan[customer_address]
----PhysicalQuickSort
------PhysicalDistribute
--------PhysicalQuickSort
diff --git
a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query33.out
b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query33.out
index cd5d41e1cd..3bee39ba9a 100644
--- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query33.out
+++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query33.out
@@ -14,22 +14,23 @@ PhysicalTopN
----------------------hashAgg[LOCAL]
------------------------PhysicalProject
--------------------------hashJoin[INNER_JOIN](store_sales.ss_item_sk =
item.i_item_sk)
-----------------------------PhysicalProject
-------------------------------hashJoin[INNER_JOIN](store_sales.ss_addr_sk =
customer_address.ca_address_sk)
---------------------------------hashJoin[INNER_JOIN](store_sales.ss_sold_date_sk
= date_dim.d_date_sk)
-----------------------------------PhysicalProject
-------------------------------------PhysicalOlapScan[store_sales]
+----------------------------PhysicalDistribute
+------------------------------PhysicalProject
+--------------------------------hashJoin[INNER_JOIN](store_sales.ss_addr_sk =
customer_address.ca_address_sk)
----------------------------------PhysicalDistribute
------------------------------------PhysicalProject
---------------------------------------filter((date_dim.d_moy =
1)(date_dim.d_year = 2002))
-----------------------------------------PhysicalOlapScan[date_dim]
---------------------------------PhysicalDistribute
+--------------------------------------hashJoin[INNER_JOIN](store_sales.ss_sold_date_sk
= date_dim.d_date_sk)
+----------------------------------------PhysicalProject
+------------------------------------------PhysicalOlapScan[store_sales]
+----------------------------------------PhysicalDistribute
+------------------------------------------PhysicalProject
+--------------------------------------------filter((date_dim.d_moy =
1)(date_dim.d_year = 2002))
+----------------------------------------------PhysicalOlapScan[date_dim]
----------------------------------PhysicalProject
------------------------------------filter((customer_address.ca_gmt_offset =
-5.00))
--------------------------------------PhysicalOlapScan[customer_address]
-----------------------------PhysicalDistribute
-------------------------------PhysicalProject
---------------------------------PhysicalOlapScan[item]
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[item]
------------------PhysicalDistribute
--------------------PhysicalProject
----------------------filter((item.i_category = 'Home'))
@@ -44,17 +45,18 @@ PhysicalTopN
----------------------------PhysicalDistribute
------------------------------PhysicalProject
--------------------------------hashJoin[INNER_JOIN](catalog_sales.cs_bill_addr_sk
= customer_address.ca_address_sk)
-----------------------------------hashJoin[INNER_JOIN](catalog_sales.cs_sold_date_sk
= date_dim.d_date_sk)
-------------------------------------PhysicalProject
---------------------------------------PhysicalOlapScan[catalog_sales]
-------------------------------------PhysicalDistribute
---------------------------------------PhysicalProject
-----------------------------------------filter((date_dim.d_moy =
1)(date_dim.d_year = 2002))
-------------------------------------------PhysicalOlapScan[date_dim]
----------------------------------PhysicalDistribute
------------------------------------PhysicalProject
---------------------------------------filter((customer_address.ca_gmt_offset =
-5.00))
-----------------------------------------PhysicalOlapScan[customer_address]
+--------------------------------------hashJoin[INNER_JOIN](catalog_sales.cs_sold_date_sk
= date_dim.d_date_sk)
+----------------------------------------PhysicalProject
+------------------------------------------PhysicalOlapScan[catalog_sales]
+----------------------------------------PhysicalDistribute
+------------------------------------------PhysicalProject
+--------------------------------------------filter((date_dim.d_moy =
1)(date_dim.d_year = 2002))
+----------------------------------------------PhysicalOlapScan[date_dim]
+----------------------------------PhysicalProject
+------------------------------------filter((customer_address.ca_gmt_offset =
-5.00))
+--------------------------------------PhysicalOlapScan[customer_address]
----------------------------PhysicalProject
------------------------------PhysicalOlapScan[item]
------------------PhysicalDistribute
@@ -73,17 +75,18 @@ PhysicalTopN
----------------------------PhysicalDistribute
------------------------------PhysicalProject
--------------------------------hashJoin[INNER_JOIN](web_sales.ws_bill_addr_sk
= customer_address.ca_address_sk)
-----------------------------------hashJoin[INNER_JOIN](web_sales.ws_sold_date_sk
= date_dim.d_date_sk)
-------------------------------------PhysicalProject
---------------------------------------PhysicalOlapScan[web_sales]
-------------------------------------PhysicalDistribute
---------------------------------------PhysicalProject
-----------------------------------------filter((date_dim.d_moy =
1)(date_dim.d_year = 2002))
-------------------------------------------PhysicalOlapScan[date_dim]
----------------------------------PhysicalDistribute
------------------------------------PhysicalProject
---------------------------------------filter((customer_address.ca_gmt_offset =
-5.00))
-----------------------------------------PhysicalOlapScan[customer_address]
+--------------------------------------hashJoin[INNER_JOIN](web_sales.ws_sold_date_sk
= date_dim.d_date_sk)
+----------------------------------------PhysicalProject
+------------------------------------------PhysicalOlapScan[web_sales]
+----------------------------------------PhysicalDistribute
+------------------------------------------PhysicalProject
+--------------------------------------------filter((date_dim.d_moy =
1)(date_dim.d_year = 2002))
+----------------------------------------------PhysicalOlapScan[date_dim]
+----------------------------------PhysicalProject
+------------------------------------filter((customer_address.ca_gmt_offset =
-5.00))
+--------------------------------------PhysicalOlapScan[customer_address]
------------------PhysicalDistribute
--------------------PhysicalProject
----------------------filter((item.i_category = 'Home'))
diff --git
a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query38.out
b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query38.out
index 3a47397ed8..02fcd034ce 100644
--- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query38.out
+++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query38.out
@@ -13,13 +13,15 @@ PhysicalLimit
--------------------hashAgg[LOCAL]
----------------------PhysicalProject
------------------------hashJoin[INNER_JOIN](store_sales.ss_customer_sk =
customer.c_customer_sk)
---------------------------hashJoin[INNER_JOIN](store_sales.ss_sold_date_sk =
date_dim.d_date_sk)
+--------------------------PhysicalDistribute
----------------------------PhysicalProject
-------------------------------PhysicalOlapScan[store_sales]
-----------------------------PhysicalDistribute
-------------------------------PhysicalProject
---------------------------------filter((date_dim.d_month_seq <=
1194)(date_dim.d_month_seq >= 1183))
-----------------------------------PhysicalOlapScan[date_dim]
+------------------------------hashJoin[INNER_JOIN](store_sales.ss_sold_date_sk
= date_dim.d_date_sk)
+--------------------------------PhysicalProject
+----------------------------------PhysicalOlapScan[store_sales]
+--------------------------------PhysicalDistribute
+----------------------------------PhysicalProject
+------------------------------------filter((date_dim.d_month_seq <=
1194)(date_dim.d_month_seq >= 1183))
+--------------------------------------PhysicalOlapScan[date_dim]
--------------------------PhysicalDistribute
----------------------------PhysicalProject
------------------------------PhysicalOlapScan[customer]
@@ -29,13 +31,15 @@ PhysicalLimit
--------------------hashAgg[LOCAL]
----------------------PhysicalProject
------------------------hashJoin[INNER_JOIN](catalog_sales.cs_bill_customer_sk
= customer.c_customer_sk)
---------------------------hashJoin[INNER_JOIN](catalog_sales.cs_sold_date_sk =
date_dim.d_date_sk)
+--------------------------PhysicalDistribute
----------------------------PhysicalProject
-------------------------------PhysicalOlapScan[catalog_sales]
-----------------------------PhysicalDistribute
-------------------------------PhysicalProject
---------------------------------filter((date_dim.d_month_seq <=
1194)(date_dim.d_month_seq >= 1183))
-----------------------------------PhysicalOlapScan[date_dim]
+------------------------------hashJoin[INNER_JOIN](catalog_sales.cs_sold_date_sk
= date_dim.d_date_sk)
+--------------------------------PhysicalProject
+----------------------------------PhysicalOlapScan[catalog_sales]
+--------------------------------PhysicalDistribute
+----------------------------------PhysicalProject
+------------------------------------filter((date_dim.d_month_seq <=
1194)(date_dim.d_month_seq >= 1183))
+--------------------------------------PhysicalOlapScan[date_dim]
--------------------------PhysicalDistribute
----------------------------PhysicalProject
------------------------------PhysicalOlapScan[customer]
diff --git
a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query39.out
b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query39.out
index daa0cff8b2..7465afe902 100644
--- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query39.out
+++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query39.out
@@ -1,48 +1,38 @@
-- This file is automatically generated. You should know what you did if you
want to edit this
-- !ds_shape_39 --
-PhysicalQuickSort
---PhysicalDistribute
-----PhysicalQuickSort
-------hashJoin[INNER_JOIN](inv1.i_item_sk =
inv2.i_item_sk)(inv1.w_warehouse_sk = inv2.w_warehouse_sk)
---------PhysicalProject
-----------filter((CASE WHEN (mean = 0.0) THEN 0.0 ELSE (stdev / mean) END >
1.0))
-------------hashAgg[GLOBAL]
---------------PhysicalDistribute
-----------------hashAgg[LOCAL]
-------------------PhysicalProject
---------------------hashJoin[INNER_JOIN](inventory.inv_warehouse_sk =
warehouse.w_warehouse_sk)
-----------------------hashJoin[INNER_JOIN](inventory.inv_item_sk =
item.i_item_sk)
-------------------------hashJoin[INNER_JOIN](inventory.inv_date_sk =
date_dim.d_date_sk)
---------------------------PhysicalOlapScan[inventory]
---------------------------PhysicalDistribute
-----------------------------PhysicalProject
-------------------------------filter((inv1.d_moy = 1)(date_dim.d_year = 1998))
---------------------------------PhysicalOlapScan[date_dim]
-------------------------PhysicalDistribute
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[item]
+CteAnchor[cteId= ( CTEId#3=] )
+--CteProducer[cteId= ( CTEId#3=] )
+----PhysicalProject
+------filter((CASE WHEN (mean = 0.0) THEN 0.0 ELSE (stdev / mean) END > 1.0))
+--------hashAgg[GLOBAL]
+----------PhysicalDistribute
+------------hashAgg[LOCAL]
+--------------PhysicalProject
+----------------hashJoin[INNER_JOIN](inventory.inv_warehouse_sk =
warehouse.w_warehouse_sk)
+------------------hashJoin[INNER_JOIN](inventory.inv_item_sk = item.i_item_sk)
+--------------------hashJoin[INNER_JOIN](inventory.inv_date_sk =
date_dim.d_date_sk)
+----------------------PhysicalOlapScan[inventory]
----------------------PhysicalDistribute
------------------------PhysicalProject
---------------------------PhysicalOlapScan[warehouse]
---------PhysicalDistribute
-----------PhysicalProject
-------------filter((CASE WHEN (mean = 0.0) THEN 0.0 ELSE (stdev / mean) END >
1.0))
---------------hashAgg[GLOBAL]
-----------------PhysicalDistribute
-------------------hashAgg[LOCAL]
+--------------------------filter(((inv.d_moy = 1) OR (inv.d_moy =
2))(date_dim.d_year = 1998))
+----------------------------PhysicalOlapScan[date_dim]
+--------------------PhysicalDistribute
+----------------------PhysicalProject
+------------------------PhysicalOlapScan[item]
+------------------PhysicalDistribute
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN](inventory.inv_warehouse_sk =
warehouse.w_warehouse_sk)
-------------------------hashJoin[INNER_JOIN](inventory.inv_item_sk =
item.i_item_sk)
---------------------------hashJoin[INNER_JOIN](inventory.inv_date_sk =
date_dim.d_date_sk)
-----------------------------PhysicalOlapScan[inventory]
-----------------------------PhysicalDistribute
-------------------------------PhysicalProject
---------------------------------filter((date_dim.d_year = 1998)(inv2.d_moy =
2))
-----------------------------------PhysicalOlapScan[date_dim]
---------------------------PhysicalDistribute
-----------------------------PhysicalProject
-------------------------------PhysicalOlapScan[item]
-------------------------PhysicalDistribute
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[warehouse]
+----------------------PhysicalOlapScan[warehouse]
+--PhysicalQuickSort
+----PhysicalDistribute
+------PhysicalQuickSort
+--------PhysicalProject
+----------hashJoin[INNER_JOIN](inv1.w_warehouse_sk =
inv2.w_warehouse_sk)(inv1.i_item_sk = inv2.i_item_sk)
+------------PhysicalDistribute
+--------------PhysicalProject
+----------------filter((inv1.d_moy = 1))
+------------------CteConsumer[cteId= ( CTEId#3=] )
+------------PhysicalDistribute
+--------------PhysicalProject
+----------------filter((inv2.d_moy = 2))
+------------------CteConsumer[cteId= ( CTEId#3=] )
diff --git
a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query45.out
b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query45.out
index c450c9f2de..4a3c96c502 100644
--- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query45.out
+++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query45.out
@@ -14,16 +14,16 @@ PhysicalTopN
----------------------PhysicalDistribute
------------------------PhysicalProject
--------------------------hashJoin[INNER_JOIN](web_sales.ws_item_sk =
item.i_item_sk)
-----------------------------hashJoin[INNER_JOIN](web_sales.ws_sold_date_sk =
date_dim.d_date_sk)
-------------------------------PhysicalProject
---------------------------------PhysicalOlapScan[web_sales]
-------------------------------PhysicalDistribute
---------------------------------PhysicalProject
-----------------------------------filter((date_dim.d_qoy = 2)(date_dim.d_year
= 2000))
-------------------------------------PhysicalOlapScan[date_dim]
----------------------------PhysicalDistribute
-------------------------------PhysicalProject
---------------------------------PhysicalOlapScan[item]
+------------------------------hashJoin[INNER_JOIN](web_sales.ws_sold_date_sk =
date_dim.d_date_sk)
+--------------------------------PhysicalProject
+----------------------------------PhysicalOlapScan[web_sales]
+--------------------------------PhysicalDistribute
+----------------------------------PhysicalProject
+------------------------------------filter((date_dim.d_qoy =
2)(date_dim.d_year = 2000))
+--------------------------------------PhysicalOlapScan[date_dim]
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[item]
----------------------PhysicalDistribute
------------------------PhysicalProject
--------------------------hashJoin[INNER_JOIN](customer.c_current_addr_sk =
customer_address.ca_address_sk)
diff --git
a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query46.out
b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query46.out
index f0d7f6e7ba..c11c6f2c00 100644
--- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query46.out
+++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query46.out
@@ -14,30 +14,28 @@ PhysicalTopN
------------------PhysicalOlapScan[customer]
----------PhysicalDistribute
------------PhysicalProject
---------------hashAgg[GLOBAL]
-----------------PhysicalDistribute
-------------------hashAgg[LOCAL]
---------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN](store_sales.ss_addr_sk =
customer_address.ca_address_sk)
-------------------------PhysicalProject
---------------------------hashJoin[INNER_JOIN](store_sales.ss_store_sk =
store.s_store_sk)
-----------------------------hashJoin[INNER_JOIN](store_sales.ss_hdemo_sk =
household_demographics.hd_demo_sk)
-------------------------------hashJoin[INNER_JOIN](store_sales.ss_sold_date_sk
= date_dim.d_date_sk)
---------------------------------PhysicalProject
-----------------------------------PhysicalOlapScan[store_sales]
---------------------------------PhysicalDistribute
-----------------------------------PhysicalProject
-------------------------------------filter(((date_dim.d_dow = 0) OR
(date_dim.d_dow = 6))d_year IN (1999, 2000, 2001))
---------------------------------------PhysicalOlapScan[date_dim]
+--------------hashAgg[LOCAL]
+----------------PhysicalProject
+------------------hashJoin[INNER_JOIN](store_sales.ss_addr_sk =
customer_address.ca_address_sk)
+--------------------PhysicalDistribute
+----------------------PhysicalProject
+------------------------hashJoin[INNER_JOIN](store_sales.ss_store_sk =
store.s_store_sk)
+--------------------------hashJoin[INNER_JOIN](store_sales.ss_hdemo_sk =
household_demographics.hd_demo_sk)
+----------------------------hashJoin[INNER_JOIN](store_sales.ss_sold_date_sk =
date_dim.d_date_sk)
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[store_sales]
------------------------------PhysicalDistribute
--------------------------------PhysicalProject
-----------------------------------filter(((household_demographics.hd_dep_count
= 6) OR (household_demographics.hd_vehicle_count = 0)))
-------------------------------------PhysicalOlapScan[household_demographics]
+----------------------------------filter(((date_dim.d_dow = 0) OR
(date_dim.d_dow = 6))d_year IN (1999, 2000, 2001))
+------------------------------------PhysicalOlapScan[date_dim]
----------------------------PhysicalDistribute
------------------------------PhysicalProject
---------------------------------filter(s_city IN ('Five Points',
'Centerville', 'Oak Grove', 'Fairview', 'Liberty'))
-----------------------------------PhysicalOlapScan[store]
-------------------------PhysicalDistribute
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[customer_address]
+--------------------------------filter(((household_demographics.hd_dep_count =
6) OR (household_demographics.hd_vehicle_count = 0)))
+----------------------------------PhysicalOlapScan[household_demographics]
+--------------------------PhysicalDistribute
+----------------------------PhysicalProject
+------------------------------filter(s_city IN ('Five Points', 'Centerville',
'Oak Grove', 'Fairview', 'Liberty'))
+--------------------------------PhysicalOlapScan[store]
+--------------------PhysicalProject
+----------------------PhysicalOlapScan[customer_address]
diff --git
a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query56.out
b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query56.out
index 6b961cbc9f..410d72ab3a 100644
--- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query56.out
+++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query56.out
@@ -13,54 +13,54 @@ PhysicalTopN
--------------------hashAgg[LOCAL]
----------------------PhysicalProject
------------------------hashJoin[INNER_JOIN](store_sales.ss_addr_sk =
customer_address.ca_address_sk)
---------------------------hashJoin[INNER_JOIN](store_sales.ss_item_sk =
item.i_item_sk)
-----------------------------PhysicalProject
-------------------------------hashJoin[INNER_JOIN](store_sales.ss_sold_date_sk
= date_dim.d_date_sk)
---------------------------------PhysicalProject
-----------------------------------PhysicalOlapScan[store_sales]
---------------------------------PhysicalDistribute
+--------------------------PhysicalDistribute
+----------------------------hashJoin[INNER_JOIN](store_sales.ss_item_sk =
item.i_item_sk)
+------------------------------PhysicalProject
+--------------------------------hashJoin[INNER_JOIN](store_sales.ss_sold_date_sk
= date_dim.d_date_sk)
----------------------------------PhysicalProject
-------------------------------------filter((date_dim.d_year =
2000)(date_dim.d_moy = 2))
---------------------------------------PhysicalOlapScan[date_dim]
-----------------------------PhysicalDistribute
-------------------------------hashJoin[LEFT_SEMI_JOIN](item.i_item_id =
item.i_item_id)
---------------------------------PhysicalProject
-----------------------------------PhysicalOlapScan[item]
---------------------------------PhysicalDistribute
+------------------------------------PhysicalOlapScan[store_sales]
+----------------------------------PhysicalDistribute
+------------------------------------PhysicalProject
+--------------------------------------filter((date_dim.d_year =
2000)(date_dim.d_moy = 2))
+----------------------------------------PhysicalOlapScan[date_dim]
+------------------------------PhysicalDistribute
+--------------------------------hashJoin[LEFT_SEMI_JOIN](item.i_item_id =
item.i_item_id)
----------------------------------PhysicalProject
-------------------------------------filter(i_color IN ('powder', 'green',
'cyan'))
---------------------------------------PhysicalOlapScan[item]
---------------------------PhysicalDistribute
-----------------------------PhysicalProject
-------------------------------filter((customer_address.ca_gmt_offset = -6.00))
---------------------------------PhysicalOlapScan[customer_address]
+------------------------------------PhysicalOlapScan[item]
+----------------------------------PhysicalDistribute
+------------------------------------PhysicalProject
+--------------------------------------filter(i_color IN ('powder', 'green',
'cyan'))
+----------------------------------------PhysicalOlapScan[item]
+--------------------------PhysicalProject
+----------------------------filter((customer_address.ca_gmt_offset = -6.00))
+------------------------------PhysicalOlapScan[customer_address]
--------------PhysicalProject
----------------hashAgg[GLOBAL]
------------------PhysicalDistribute
--------------------hashAgg[LOCAL]
----------------------PhysicalProject
------------------------hashJoin[INNER_JOIN](catalog_sales.cs_bill_addr_sk =
customer_address.ca_address_sk)
---------------------------hashJoin[INNER_JOIN](catalog_sales.cs_item_sk =
item.i_item_sk)
-----------------------------PhysicalProject
-------------------------------hashJoin[INNER_JOIN](catalog_sales.cs_sold_date_sk
= date_dim.d_date_sk)
---------------------------------PhysicalProject
-----------------------------------PhysicalOlapScan[catalog_sales]
---------------------------------PhysicalDistribute
+--------------------------PhysicalDistribute
+----------------------------hashJoin[INNER_JOIN](catalog_sales.cs_item_sk =
item.i_item_sk)
+------------------------------PhysicalProject
+--------------------------------hashJoin[INNER_JOIN](catalog_sales.cs_sold_date_sk
= date_dim.d_date_sk)
----------------------------------PhysicalProject
-------------------------------------filter((date_dim.d_year =
2000)(date_dim.d_moy = 2))
---------------------------------------PhysicalOlapScan[date_dim]
-----------------------------PhysicalDistribute
-------------------------------hashJoin[LEFT_SEMI_JOIN](item.i_item_id =
item.i_item_id)
---------------------------------PhysicalProject
-----------------------------------PhysicalOlapScan[item]
---------------------------------PhysicalDistribute
+------------------------------------PhysicalOlapScan[catalog_sales]
+----------------------------------PhysicalDistribute
+------------------------------------PhysicalProject
+--------------------------------------filter((date_dim.d_year =
2000)(date_dim.d_moy = 2))
+----------------------------------------PhysicalOlapScan[date_dim]
+------------------------------PhysicalDistribute
+--------------------------------hashJoin[LEFT_SEMI_JOIN](item.i_item_id =
item.i_item_id)
----------------------------------PhysicalProject
-------------------------------------filter(i_color IN ('powder', 'green',
'cyan'))
---------------------------------------PhysicalOlapScan[item]
---------------------------PhysicalDistribute
-----------------------------PhysicalProject
-------------------------------filter((customer_address.ca_gmt_offset = -6.00))
---------------------------------PhysicalOlapScan[customer_address]
+------------------------------------PhysicalOlapScan[item]
+----------------------------------PhysicalDistribute
+------------------------------------PhysicalProject
+--------------------------------------filter(i_color IN ('powder', 'green',
'cyan'))
+----------------------------------------PhysicalOlapScan[item]
+--------------------------PhysicalProject
+----------------------------filter((customer_address.ca_gmt_offset = -6.00))
+------------------------------PhysicalOlapScan[customer_address]
--------------PhysicalProject
----------------hashAgg[GLOBAL]
------------------PhysicalDistribute
diff --git
a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query59.out
b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query59.out
index 071e2fbc05..9af8591c8f 100644
--- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query59.out
+++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query59.out
@@ -24,8 +24,9 @@ CteAnchor[cteId= ( CTEId#4=] )
------------------PhysicalOlapScan[date_dim]
------------PhysicalDistribute
--------------hashJoin[INNER_JOIN](y.s_store_id1 =
x.s_store_id2)(wss.ss_store_sk = store.s_store_sk)
-----------------PhysicalProject
-------------------PhysicalOlapScan[store]
+----------------PhysicalDistribute
+------------------PhysicalProject
+--------------------PhysicalOlapScan[store]
----------------PhysicalDistribute
------------------hashJoin[INNER_JOIN](expr_cast(d_week_seq1 as BIGINT) =
expr_(d_week_seq2 - 52))
--------------------PhysicalProject
@@ -33,8 +34,9 @@ CteAnchor[cteId= ( CTEId#4=] )
--------------------PhysicalDistribute
----------------------PhysicalProject
------------------------hashJoin[INNER_JOIN](wss.ss_store_sk =
store.s_store_sk)
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[store]
+--------------------------PhysicalDistribute
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[store]
--------------------------PhysicalDistribute
----------------------------hashJoin[INNER_JOIN](d.d_week_seq = d_week_seq1)
------------------------------PhysicalProject
diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query6.out
b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query6.out
index f9346065c2..d5751c034c 100644
--- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query6.out
+++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query6.out
@@ -11,26 +11,28 @@ PhysicalTopN
----------------hashJoin[LEFT_SEMI_JOIN](j.i_category =
i.i_category)(cast(i_current_price as DECIMALV3(38, 5)) > (1.2 *
avg(i_current_price)))
------------------PhysicalProject
--------------------hashJoin[INNER_JOIN](c.c_customer_sk = s.ss_customer_sk)
-----------------------hashJoin[INNER_JOIN](s.ss_item_sk = i.i_item_sk)
+----------------------PhysicalDistribute
------------------------PhysicalProject
---------------------------hashJoin[INNER_JOIN](s.ss_sold_date_sk = d.d_date_sk)
-----------------------------PhysicalProject
-------------------------------PhysicalOlapScan[store_sales]
+--------------------------hashJoin[INNER_JOIN](s.ss_item_sk = i.i_item_sk)
----------------------------PhysicalDistribute
-------------------------------hashJoin[INNER_JOIN](d.d_month_seq =
date_dim.d_month_seq)
---------------------------------PhysicalProject
-----------------------------------PhysicalOlapScan[date_dim]
---------------------------------PhysicalDistribute
-----------------------------------PhysicalAssertNumRows
-------------------------------------hashAgg[GLOBAL]
+------------------------------PhysicalProject
+--------------------------------hashJoin[INNER_JOIN](s.ss_sold_date_sk =
d.d_date_sk)
+----------------------------------PhysicalProject
+------------------------------------PhysicalOlapScan[store_sales]
+----------------------------------PhysicalDistribute
+------------------------------------hashJoin[INNER_JOIN](d.d_month_seq =
date_dim.d_month_seq)
+--------------------------------------PhysicalProject
+----------------------------------------PhysicalOlapScan[date_dim]
--------------------------------------PhysicalDistribute
-----------------------------------------hashAgg[LOCAL]
-------------------------------------------PhysicalProject
---------------------------------------------filter((date_dim.d_year =
2002)(date_dim.d_moy = 3))
-----------------------------------------------PhysicalOlapScan[date_dim]
-------------------------PhysicalDistribute
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[item]
+----------------------------------------PhysicalAssertNumRows
+------------------------------------------hashAgg[GLOBAL]
+--------------------------------------------PhysicalDistribute
+----------------------------------------------hashAgg[LOCAL]
+------------------------------------------------PhysicalProject
+--------------------------------------------------filter((date_dim.d_year =
2002)(date_dim.d_moy = 3))
+----------------------------------------------------PhysicalOlapScan[date_dim]
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[item]
----------------------PhysicalDistribute
------------------------PhysicalProject
--------------------------hashJoin[INNER_JOIN](a.ca_address_sk =
c.c_current_addr_sk)
diff --git
a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query60.out
b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query60.out
index b7bbdb5594..57ee76f897 100644
--- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query60.out
+++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query60.out
@@ -13,19 +13,19 @@ PhysicalTopN
--------------------hashAgg[LOCAL]
----------------------PhysicalProject
------------------------hashJoin[INNER_JOIN](store_sales.ss_item_sk =
item.i_item_sk)
---------------------------PhysicalProject
-----------------------------hashJoin[INNER_JOIN](store_sales.ss_addr_sk =
customer_address.ca_address_sk)
-------------------------------hashJoin[INNER_JOIN](store_sales.ss_sold_date_sk
= date_dim.d_date_sk)
---------------------------------PhysicalProject
-----------------------------------PhysicalOlapScan[store_sales]
---------------------------------PhysicalDistribute
+--------------------------hashJoin[INNER_JOIN](store_sales.ss_addr_sk =
customer_address.ca_address_sk)
+----------------------------PhysicalDistribute
+------------------------------PhysicalProject
+--------------------------------hashJoin[INNER_JOIN](store_sales.ss_sold_date_sk
= date_dim.d_date_sk)
----------------------------------PhysicalProject
-------------------------------------filter((date_dim.d_year =
2000)(date_dim.d_moy = 8))
---------------------------------------PhysicalOlapScan[date_dim]
-------------------------------PhysicalDistribute
---------------------------------PhysicalProject
-----------------------------------filter((customer_address.ca_gmt_offset =
-7.00))
-------------------------------------PhysicalOlapScan[customer_address]
+------------------------------------PhysicalOlapScan[store_sales]
+----------------------------------PhysicalDistribute
+------------------------------------PhysicalProject
+--------------------------------------filter((date_dim.d_year =
2000)(date_dim.d_moy = 8))
+----------------------------------------PhysicalOlapScan[date_dim]
+----------------------------PhysicalProject
+------------------------------filter((customer_address.ca_gmt_offset = -7.00))
+--------------------------------PhysicalOlapScan[customer_address]
--------------------------PhysicalDistribute
----------------------------hashJoin[LEFT_SEMI_JOIN](item.i_item_id =
item.i_item_id)
------------------------------PhysicalProject
@@ -40,19 +40,19 @@ PhysicalTopN
--------------------hashAgg[LOCAL]
----------------------PhysicalProject
------------------------hashJoin[INNER_JOIN](catalog_sales.cs_item_sk =
item.i_item_sk)
---------------------------PhysicalProject
-----------------------------hashJoin[INNER_JOIN](catalog_sales.cs_bill_addr_sk
= customer_address.ca_address_sk)
-------------------------------hashJoin[INNER_JOIN](catalog_sales.cs_sold_date_sk
= date_dim.d_date_sk)
---------------------------------PhysicalProject
-----------------------------------PhysicalOlapScan[catalog_sales]
---------------------------------PhysicalDistribute
+--------------------------hashJoin[INNER_JOIN](catalog_sales.cs_bill_addr_sk =
customer_address.ca_address_sk)
+----------------------------PhysicalDistribute
+------------------------------PhysicalProject
+--------------------------------hashJoin[INNER_JOIN](catalog_sales.cs_sold_date_sk
= date_dim.d_date_sk)
----------------------------------PhysicalProject
-------------------------------------filter((date_dim.d_moy =
8)(date_dim.d_year = 2000))
---------------------------------------PhysicalOlapScan[date_dim]
-------------------------------PhysicalDistribute
---------------------------------PhysicalProject
-----------------------------------filter((customer_address.ca_gmt_offset =
-7.00))
-------------------------------------PhysicalOlapScan[customer_address]
+------------------------------------PhysicalOlapScan[catalog_sales]
+----------------------------------PhysicalDistribute
+------------------------------------PhysicalProject
+--------------------------------------filter((date_dim.d_moy =
8)(date_dim.d_year = 2000))
+----------------------------------------PhysicalOlapScan[date_dim]
+----------------------------PhysicalProject
+------------------------------filter((customer_address.ca_gmt_offset = -7.00))
+--------------------------------PhysicalOlapScan[customer_address]
--------------------------PhysicalDistribute
----------------------------hashJoin[LEFT_SEMI_JOIN](item.i_item_id =
item.i_item_id)
------------------------------PhysicalProject
@@ -67,19 +67,19 @@ PhysicalTopN
--------------------hashAgg[LOCAL]
----------------------PhysicalProject
------------------------hashJoin[INNER_JOIN](web_sales.ws_item_sk =
item.i_item_sk)
---------------------------PhysicalProject
-----------------------------hashJoin[INNER_JOIN](web_sales.ws_bill_addr_sk =
customer_address.ca_address_sk)
-------------------------------hashJoin[INNER_JOIN](web_sales.ws_sold_date_sk =
date_dim.d_date_sk)
---------------------------------PhysicalProject
-----------------------------------PhysicalOlapScan[web_sales]
---------------------------------PhysicalDistribute
+--------------------------hashJoin[INNER_JOIN](web_sales.ws_bill_addr_sk =
customer_address.ca_address_sk)
+----------------------------PhysicalDistribute
+------------------------------PhysicalProject
+--------------------------------hashJoin[INNER_JOIN](web_sales.ws_sold_date_sk
= date_dim.d_date_sk)
----------------------------------PhysicalProject
-------------------------------------filter((date_dim.d_year =
2000)(date_dim.d_moy = 8))
---------------------------------------PhysicalOlapScan[date_dim]
-------------------------------PhysicalDistribute
---------------------------------PhysicalProject
-----------------------------------filter((customer_address.ca_gmt_offset =
-7.00))
-------------------------------------PhysicalOlapScan[customer_address]
+------------------------------------PhysicalOlapScan[web_sales]
+----------------------------------PhysicalDistribute
+------------------------------------PhysicalProject
+--------------------------------------filter((date_dim.d_year =
2000)(date_dim.d_moy = 8))
+----------------------------------------PhysicalOlapScan[date_dim]
+----------------------------PhysicalProject
+------------------------------filter((customer_address.ca_gmt_offset = -7.00))
+--------------------------------PhysicalOlapScan[customer_address]
--------------------------PhysicalDistribute
----------------------------hashJoin[LEFT_SEMI_JOIN](item.i_item_id =
item.i_item_id)
------------------------------PhysicalProject
diff --git
a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query64.out
b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query64.out
index 25f6adfcf3..0a8fe40145 100644
--- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query64.out
+++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query64.out
@@ -1,209 +1,118 @@
-- This file is automatically generated. You should know what you did if you
want to edit this
-- !ds_shape_64 --
-PhysicalQuickSort
---PhysicalDistribute
-----PhysicalQuickSort
-------PhysicalProject
---------hashJoin[INNER_JOIN](cs1.item_sk = cs2.item_sk)(cs1.store_name =
cs2.store_name)(cs1.store_zip = cs2.store_zip)(cs2.cnt <= cs1.cnt)
-----------PhysicalProject
-------------hashAgg[GLOBAL]
---------------PhysicalDistribute
-----------------hashAgg[LOCAL]
+CteAnchor[cteId= ( CTEId#14=] )
+--CteProducer[cteId= ( CTEId#14=] )
+----PhysicalProject
+------hashAgg[GLOBAL]
+--------PhysicalDistribute
+----------hashAgg[LOCAL]
+------------PhysicalProject
+--------------hashJoin[INNER_JOIN](customer.c_current_addr_sk =
ad2.ca_address_sk)
+----------------PhysicalProject
+------------------PhysicalOlapScan[customer_address]
+----------------PhysicalDistribute
------------------PhysicalProject
---------------------hashJoin[INNER_JOIN](customer.c_first_shipto_date_sk =
d3.d_date_sk)
+--------------------hashJoin[INNER_JOIN](store_sales.ss_item_sk =
cs_ui.cs_item_sk)
----------------------PhysicalProject
-------------------------PhysicalOlapScan[date_dim]
+------------------------filter((sale > (2 * refund)))
+--------------------------hashAgg[GLOBAL]
+----------------------------PhysicalDistribute
+------------------------------hashAgg[LOCAL]
+--------------------------------PhysicalProject
+----------------------------------hashJoin[INNER_JOIN](catalog_sales.cs_item_sk
= catalog_returns.cr_item_sk)(catalog_sales.cs_order_number =
catalog_returns.cr_order_number)
+------------------------------------PhysicalProject
+--------------------------------------PhysicalOlapScan[catalog_sales]
+------------------------------------PhysicalProject
+--------------------------------------PhysicalOlapScan[catalog_returns]
----------------------PhysicalDistribute
------------------------PhysicalProject
---------------------------hashJoin[INNER_JOIN](hd1.hd_income_band_sk =
ib1.ib_income_band_sk)
+--------------------------hashJoin[INNER_JOIN](store_sales.ss_sold_date_sk =
d1.d_date_sk)
----------------------------PhysicalProject
-------------------------------PhysicalOlapScan[income_band]
+------------------------------filter(((d1.d_year = 2001) OR (d1.d_year =
2002)))
+--------------------------------PhysicalOlapScan[date_dim]
----------------------------PhysicalDistribute
------------------------------PhysicalProject
---------------------------------hashJoin[INNER_JOIN](hd2.hd_income_band_sk =
ib2.ib_income_band_sk)
+--------------------------------hashJoin[INNER_JOIN](store_sales.ss_hdemo_sk =
hd1.hd_demo_sk)
----------------------------------PhysicalProject
-------------------------------------PhysicalOlapScan[income_band]
+------------------------------------hashJoin[INNER_JOIN](hd1.hd_income_band_sk
= ib1.ib_income_band_sk)
+--------------------------------------PhysicalProject
+----------------------------------------PhysicalOlapScan[household_demographics]
+--------------------------------------PhysicalDistribute
+----------------------------------------PhysicalProject
+------------------------------------------PhysicalOlapScan[income_band]
----------------------------------PhysicalDistribute
------------------------------------PhysicalProject
---------------------------------------hashJoin[INNER_JOIN](customer.c_current_addr_sk
= ad2.ca_address_sk)
+--------------------------------------hashJoin[INNER_JOIN](store_sales.ss_promo_sk
= promotion.p_promo_sk)
----------------------------------------PhysicalProject
-------------------------------------------PhysicalOlapScan[customer_address]
+------------------------------------------PhysicalOlapScan[promotion]
----------------------------------------PhysicalDistribute
------------------------------------------PhysicalProject
---------------------------------------------hashJoin[INNER_JOIN](customer.c_first_sales_date_sk
= d2.d_date_sk)
+--------------------------------------------hashJoin[INNER_JOIN](customer.c_first_shipto_date_sk
= d3.d_date_sk)
----------------------------------------------PhysicalProject
------------------------------------------------PhysicalOlapScan[date_dim]
----------------------------------------------PhysicalDistribute
------------------------------------------------PhysicalProject
---------------------------------------------------hashJoin[INNER_JOIN](customer.c_current_hdemo_sk
= hd2.hd_demo_sk)
-----------------------------------------------------PhysicalProject
-------------------------------------------------------PhysicalOlapScan[household_demographics]
+--------------------------------------------------hashJoin[INNER_JOIN](hd2.hd_income_band_sk
= ib2.ib_income_band_sk)
+----------------------------------------------------PhysicalDistribute
+------------------------------------------------------PhysicalProject
+--------------------------------------------------------PhysicalOlapScan[income_band]
----------------------------------------------------PhysicalDistribute
------------------------------------------------------PhysicalProject
---------------------------------------------------------hashJoin[INNER_JOIN](customer.c_current_cdemo_sk
= cd2.cd_demo_sk)( not (cd_marital_status = cd_marital_status))
+--------------------------------------------------------hashJoin[INNER_JOIN](customer.c_first_sales_date_sk
= d2.d_date_sk)
----------------------------------------------------------PhysicalProject
-------------------------------------------------------------PhysicalOlapScan[customer_demographics]
+------------------------------------------------------------PhysicalOlapScan[date_dim]
----------------------------------------------------------PhysicalDistribute
------------------------------------------------------------PhysicalProject
---------------------------------------------------------------hashJoin[INNER_JOIN](store_sales.ss_customer_sk
= customer.c_customer_sk)
+--------------------------------------------------------------hashJoin[INNER_JOIN](customer.c_current_hdemo_sk
= hd2.hd_demo_sk)
----------------------------------------------------------------PhysicalProject
-------------------------------------------------------------------PhysicalOlapScan[customer]
+------------------------------------------------------------------PhysicalOlapScan[household_demographics]
----------------------------------------------------------------PhysicalDistribute
------------------------------------------------------------------PhysicalProject
---------------------------------------------------------------------hashJoin[INNER_JOIN](store_sales.ss_cdemo_sk
= cd1.cd_demo_sk)
+--------------------------------------------------------------------hashJoin[INNER_JOIN](customer.c_current_cdemo_sk
= cd2.cd_demo_sk)( not (cd_marital_status = cd_marital_status))
----------------------------------------------------------------------PhysicalProject
------------------------------------------------------------------------PhysicalOlapScan[customer_demographics]
----------------------------------------------------------------------PhysicalDistribute
------------------------------------------------------------------------PhysicalProject
---------------------------------------------------------------------------hashJoin[INNER_JOIN](store_sales.ss_item_sk
= cs_ui.cs_item_sk)
+--------------------------------------------------------------------------hashJoin[INNER_JOIN](store_sales.ss_customer_sk
= customer.c_customer_sk)
----------------------------------------------------------------------------PhysicalProject
-------------------------------------------------------------------------------filter((sale
> (2 * refund)))
---------------------------------------------------------------------------------hashAgg[GLOBAL]
-----------------------------------------------------------------------------------PhysicalDistribute
-------------------------------------------------------------------------------------hashAgg[LOCAL]
---------------------------------------------------------------------------------------PhysicalProject
-----------------------------------------------------------------------------------------hashJoin[INNER_JOIN](catalog_sales.cs_item_sk
= catalog_returns.cr_item_sk)(catalog_sales.cs_order_number =
catalog_returns.cr_order_number)
-------------------------------------------------------------------------------------------PhysicalProject
---------------------------------------------------------------------------------------------PhysicalOlapScan[catalog_sales]
-------------------------------------------------------------------------------------------PhysicalProject
---------------------------------------------------------------------------------------------PhysicalOlapScan[catalog_returns]
+------------------------------------------------------------------------------PhysicalOlapScan[customer]
----------------------------------------------------------------------------PhysicalDistribute
------------------------------------------------------------------------------PhysicalProject
---------------------------------------------------------------------------------hashJoin[INNER_JOIN](store_sales.ss_sold_date_sk
= d1.d_date_sk)
+--------------------------------------------------------------------------------hashJoin[INNER_JOIN](store_sales.ss_cdemo_sk
= cd1.cd_demo_sk)
----------------------------------------------------------------------------------PhysicalProject
-------------------------------------------------------------------------------------hashJoin[INNER_JOIN](store_sales.ss_hdemo_sk
= hd1.hd_demo_sk)
---------------------------------------------------------------------------------------PhysicalProject
-----------------------------------------------------------------------------------------PhysicalOlapScan[household_demographics]
---------------------------------------------------------------------------------------PhysicalDistribute
-----------------------------------------------------------------------------------------PhysicalProject
-------------------------------------------------------------------------------------------hashJoin[INNER_JOIN](store_sales.ss_promo_sk
= promotion.p_promo_sk)
---------------------------------------------------------------------------------------------PhysicalProject
-----------------------------------------------------------------------------------------------hashJoin[INNER_JOIN](store_sales.ss_store_sk
= store.s_store_sk)
-------------------------------------------------------------------------------------------------PhysicalProject
---------------------------------------------------------------------------------------------------hashJoin[INNER_JOIN](store_sales.ss_addr_sk
= ad1.ca_address_sk)
-----------------------------------------------------------------------------------------------------PhysicalProject
-------------------------------------------------------------------------------------------------------PhysicalOlapScan[customer_address]
-----------------------------------------------------------------------------------------------------PhysicalDistribute
-------------------------------------------------------------------------------------------------------PhysicalProject
---------------------------------------------------------------------------------------------------------hashJoin[INNER_JOIN](store_sales.ss_item_sk
= store_returns.sr_item_sk)(store_sales.ss_ticket_number =
store_returns.sr_ticket_number)
-----------------------------------------------------------------------------------------------------------PhysicalProject
-------------------------------------------------------------------------------------------------------------PhysicalOlapScan[store_returns]
-----------------------------------------------------------------------------------------------------------hashJoin[INNER_JOIN](store_sales.ss_item_sk
= item_sk)
-------------------------------------------------------------------------------------------------------------PhysicalProject
---------------------------------------------------------------------------------------------------------------PhysicalOlapScan[store_sales]
-------------------------------------------------------------------------------------------------------------PhysicalDistribute
---------------------------------------------------------------------------------------------------------------PhysicalProject
-----------------------------------------------------------------------------------------------------------------filter((item.i_current_price
>= 24.00)(item.i_current_price <= 33.00)i_color IN ('blanched', 'medium',
'brown', 'chocolate', 'burlywood', 'drab'))
-------------------------------------------------------------------------------------------------------------------PhysicalOlapScan[item]
-------------------------------------------------------------------------------------------------PhysicalDistribute
---------------------------------------------------------------------------------------------------PhysicalProject
-----------------------------------------------------------------------------------------------------PhysicalOlapScan[store]
---------------------------------------------------------------------------------------------PhysicalDistribute
-----------------------------------------------------------------------------------------------PhysicalProject
-------------------------------------------------------------------------------------------------PhysicalOlapScan[promotion]
+------------------------------------------------------------------------------------PhysicalOlapScan[customer_demographics]
----------------------------------------------------------------------------------PhysicalDistribute
------------------------------------------------------------------------------------PhysicalProject
---------------------------------------------------------------------------------------filter((d1.d_year
= 2001))
-----------------------------------------------------------------------------------------PhysicalOlapScan[date_dim]
-----------PhysicalDistribute
-------------PhysicalProject
---------------hashAgg[GLOBAL]
-----------------PhysicalDistribute
-------------------hashAgg[LOCAL]
---------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN](customer.c_first_shipto_date_sk =
d3.d_date_sk)
-------------------------PhysicalProject
---------------------------PhysicalOlapScan[date_dim]
-------------------------PhysicalDistribute
---------------------------PhysicalProject
-----------------------------hashJoin[INNER_JOIN](hd1.hd_income_band_sk =
ib1.ib_income_band_sk)
-------------------------------PhysicalProject
---------------------------------PhysicalOlapScan[income_band]
-------------------------------PhysicalDistribute
---------------------------------PhysicalProject
-----------------------------------hashJoin[INNER_JOIN](hd2.hd_income_band_sk =
ib2.ib_income_band_sk)
-------------------------------------PhysicalProject
---------------------------------------PhysicalOlapScan[income_band]
-------------------------------------PhysicalDistribute
---------------------------------------PhysicalProject
-----------------------------------------hashJoin[INNER_JOIN](customer.c_current_addr_sk
= ad2.ca_address_sk)
-------------------------------------------PhysicalProject
---------------------------------------------PhysicalOlapScan[customer_address]
-------------------------------------------PhysicalDistribute
---------------------------------------------PhysicalProject
-----------------------------------------------hashJoin[INNER_JOIN](customer.c_first_sales_date_sk
= d2.d_date_sk)
-------------------------------------------------PhysicalProject
---------------------------------------------------PhysicalOlapScan[date_dim]
-------------------------------------------------PhysicalDistribute
---------------------------------------------------PhysicalProject
-----------------------------------------------------hashJoin[INNER_JOIN](customer.c_current_hdemo_sk
= hd2.hd_demo_sk)
-------------------------------------------------------PhysicalProject
---------------------------------------------------------PhysicalOlapScan[household_demographics]
-------------------------------------------------------PhysicalDistribute
---------------------------------------------------------PhysicalProject
-----------------------------------------------------------hashJoin[INNER_JOIN](customer.c_current_cdemo_sk
= cd2.cd_demo_sk)( not (cd_marital_status = cd_marital_status))
-------------------------------------------------------------PhysicalProject
---------------------------------------------------------------PhysicalOlapScan[customer_demographics]
-------------------------------------------------------------PhysicalDistribute
---------------------------------------------------------------PhysicalProject
-----------------------------------------------------------------hashJoin[INNER_JOIN](store_sales.ss_customer_sk
= customer.c_customer_sk)
-------------------------------------------------------------------PhysicalProject
---------------------------------------------------------------------PhysicalOlapScan[customer]
-------------------------------------------------------------------PhysicalDistribute
---------------------------------------------------------------------PhysicalProject
-----------------------------------------------------------------------hashJoin[INNER_JOIN](store_sales.ss_cdemo_sk
= cd1.cd_demo_sk)
-------------------------------------------------------------------------PhysicalProject
---------------------------------------------------------------------------PhysicalOlapScan[customer_demographics]
-------------------------------------------------------------------------PhysicalDistribute
---------------------------------------------------------------------------PhysicalProject
-----------------------------------------------------------------------------hashJoin[INNER_JOIN](store_sales.ss_item_sk
= cs_ui.cs_item_sk)
-------------------------------------------------------------------------------PhysicalProject
---------------------------------------------------------------------------------filter((sale
> (2 * refund)))
-----------------------------------------------------------------------------------hashAgg[GLOBAL]
-------------------------------------------------------------------------------------PhysicalDistribute
---------------------------------------------------------------------------------------hashAgg[LOCAL]
+--------------------------------------------------------------------------------------hashJoin[INNER_JOIN](store_sales.ss_store_sk
= store.s_store_sk)
----------------------------------------------------------------------------------------PhysicalProject
-------------------------------------------------------------------------------------------hashJoin[INNER_JOIN](catalog_sales.cs_item_sk
= catalog_returns.cr_item_sk)(catalog_sales.cs_order_number =
catalog_returns.cr_order_number)
---------------------------------------------------------------------------------------------PhysicalProject
-----------------------------------------------------------------------------------------------PhysicalOlapScan[catalog_sales]
+------------------------------------------------------------------------------------------hashJoin[INNER_JOIN](store_sales.ss_addr_sk
= ad1.ca_address_sk)
--------------------------------------------------------------------------------------------PhysicalProject
-----------------------------------------------------------------------------------------------PhysicalOlapScan[catalog_returns]
-------------------------------------------------------------------------------PhysicalDistribute
---------------------------------------------------------------------------------PhysicalProject
-----------------------------------------------------------------------------------hashJoin[INNER_JOIN](store_sales.ss_sold_date_sk
= d1.d_date_sk)
-------------------------------------------------------------------------------------PhysicalProject
---------------------------------------------------------------------------------------hashJoin[INNER_JOIN](store_sales.ss_hdemo_sk
= hd1.hd_demo_sk)
-----------------------------------------------------------------------------------------PhysicalProject
-------------------------------------------------------------------------------------------PhysicalOlapScan[household_demographics]
-----------------------------------------------------------------------------------------PhysicalDistribute
-------------------------------------------------------------------------------------------PhysicalProject
---------------------------------------------------------------------------------------------hashJoin[INNER_JOIN](store_sales.ss_promo_sk
= promotion.p_promo_sk)
+----------------------------------------------------------------------------------------------PhysicalOlapScan[customer_address]
+--------------------------------------------------------------------------------------------PhysicalDistribute
----------------------------------------------------------------------------------------------PhysicalProject
-------------------------------------------------------------------------------------------------hashJoin[INNER_JOIN](store_sales.ss_store_sk
= store.s_store_sk)
+------------------------------------------------------------------------------------------------hashJoin[INNER_JOIN](store_sales.ss_item_sk
= store_returns.sr_item_sk)(store_sales.ss_ticket_number =
store_returns.sr_ticket_number)
--------------------------------------------------------------------------------------------------PhysicalProject
-----------------------------------------------------------------------------------------------------hashJoin[INNER_JOIN](store_sales.ss_addr_sk
= ad1.ca_address_sk)
-------------------------------------------------------------------------------------------------------PhysicalProject
---------------------------------------------------------------------------------------------------------PhysicalOlapScan[customer_address]
-------------------------------------------------------------------------------------------------------PhysicalDistribute
---------------------------------------------------------------------------------------------------------PhysicalProject
-----------------------------------------------------------------------------------------------------------hashJoin[INNER_JOIN](store_sales.ss_item_sk
= store_returns.sr_item_sk)(store_sales.ss_ticket_number =
store_returns.sr_ticket_number)
-------------------------------------------------------------------------------------------------------------PhysicalProject
---------------------------------------------------------------------------------------------------------------PhysicalOlapScan[store_returns]
-------------------------------------------------------------------------------------------------------------hashJoin[INNER_JOIN](store_sales.ss_item_sk
= item_sk)
---------------------------------------------------------------------------------------------------------------PhysicalProject
-----------------------------------------------------------------------------------------------------------------PhysicalOlapScan[store_sales]
---------------------------------------------------------------------------------------------------------------PhysicalDistribute
-----------------------------------------------------------------------------------------------------------------PhysicalProject
-------------------------------------------------------------------------------------------------------------------filter((item.i_current_price
>= 24.00)(item.i_current_price <= 33.00)i_color IN ('blanched', 'medium',
'brown', 'chocolate', 'burlywood', 'drab'))
---------------------------------------------------------------------------------------------------------------------PhysicalOlapScan[item]
---------------------------------------------------------------------------------------------------PhysicalDistribute
+----------------------------------------------------------------------------------------------------PhysicalOlapScan[store_returns]
+--------------------------------------------------------------------------------------------------hashJoin[INNER_JOIN](store_sales.ss_item_sk
= item_sk)
----------------------------------------------------------------------------------------------------PhysicalProject
-------------------------------------------------------------------------------------------------------PhysicalOlapScan[store]
-----------------------------------------------------------------------------------------------PhysicalDistribute
-------------------------------------------------------------------------------------------------PhysicalProject
---------------------------------------------------------------------------------------------------PhysicalOlapScan[promotion]
-------------------------------------------------------------------------------------PhysicalDistribute
---------------------------------------------------------------------------------------PhysicalProject
-----------------------------------------------------------------------------------------filter((d1.d_year
= 2002))
-------------------------------------------------------------------------------------------PhysicalOlapScan[date_dim]
+------------------------------------------------------------------------------------------------------PhysicalOlapScan[store_sales]
+----------------------------------------------------------------------------------------------------PhysicalDistribute
+------------------------------------------------------------------------------------------------------PhysicalProject
+--------------------------------------------------------------------------------------------------------filter((item.i_current_price
>= 24.00)(item.i_current_price <= 33.00)i_color IN ('blanched', 'medium',
'brown', 'chocolate', 'burlywood', 'drab'))
+----------------------------------------------------------------------------------------------------------PhysicalOlapScan[item]
+----------------------------------------------------------------------------------------PhysicalDistribute
+------------------------------------------------------------------------------------------PhysicalProject
+--------------------------------------------------------------------------------------------PhysicalOlapScan[store]
+--PhysicalQuickSort
+----PhysicalDistribute
+------PhysicalQuickSort
+--------PhysicalProject
+----------hashJoin[INNER_JOIN](cs1.item_sk = cs2.item_sk)(cs1.store_name =
cs2.store_name)(cs1.store_zip = cs2.store_zip)(cs2.cnt <= cs1.cnt)
+------------PhysicalProject
+--------------filter((cs1.syear = 2001))
+----------------CteConsumer[cteId= ( CTEId#14=] )
+------------PhysicalDistribute
+--------------PhysicalProject
+----------------filter((cs2.syear = 2002))
+------------------CteConsumer[cteId= ( CTEId#14=] )
diff --git
a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query68.out
b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query68.out
index 7bc504cd33..b8d7713b30 100644
--- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query68.out
+++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query68.out
@@ -10,8 +10,9 @@ PhysicalTopN
----------PhysicalDistribute
------------PhysicalProject
--------------hashJoin[INNER_JOIN](dn.ss_customer_sk = customer.c_customer_sk)
-----------------PhysicalProject
-------------------PhysicalOlapScan[customer]
+----------------PhysicalDistribute
+------------------PhysicalProject
+--------------------PhysicalOlapScan[customer]
----------------PhysicalDistribute
------------------PhysicalProject
--------------------hashAgg[LOCAL]
diff --git a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query7.out
b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query7.out
index b4d2c60d9f..1d979be9e1 100644
--- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query7.out
+++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query7.out
@@ -8,25 +8,25 @@ PhysicalTopN
----------hashAgg[LOCAL]
------------PhysicalProject
--------------hashJoin[INNER_JOIN](store_sales.ss_item_sk = item.i_item_sk)
-----------------PhysicalProject
+----------------PhysicalDistribute
------------------hashJoin[INNER_JOIN](store_sales.ss_promo_sk =
promotion.p_promo_sk)
---------------------hashJoin[INNER_JOIN](store_sales.ss_sold_date_sk =
date_dim.d_date_sk)
-----------------------hashJoin[INNER_JOIN](store_sales.ss_cdemo_sk =
customer_demographics.cd_demo_sk)
-------------------------PhysicalProject
---------------------------PhysicalOlapScan[store_sales]
+--------------------PhysicalProject
+----------------------hashJoin[INNER_JOIN](store_sales.ss_sold_date_sk =
date_dim.d_date_sk)
+------------------------hashJoin[INNER_JOIN](store_sales.ss_cdemo_sk =
customer_demographics.cd_demo_sk)
+--------------------------PhysicalProject
+----------------------------PhysicalOlapScan[store_sales]
+--------------------------PhysicalDistribute
+----------------------------PhysicalProject
+------------------------------filter((cast(cd_marital_status as VARCHAR(*)) =
'W')(cast(cd_education_status as VARCHAR(*)) = 'College')(cast(cd_gender as
VARCHAR(*)) = 'F'))
+--------------------------------PhysicalOlapScan[customer_demographics]
------------------------PhysicalDistribute
--------------------------PhysicalProject
-----------------------------filter((cast(cd_marital_status as VARCHAR(*)) =
'W')(cast(cd_education_status as VARCHAR(*)) = 'College')(cast(cd_gender as
VARCHAR(*)) = 'F'))
-------------------------------PhysicalOlapScan[customer_demographics]
-----------------------PhysicalDistribute
-------------------------PhysicalProject
---------------------------filter((date_dim.d_year = 2001))
-----------------------------PhysicalOlapScan[date_dim]
+----------------------------filter((date_dim.d_year = 2001))
+------------------------------PhysicalOlapScan[date_dim]
--------------------PhysicalDistribute
----------------------PhysicalProject
------------------------filter(((cast(p_channel_email as VARCHAR(*)) = 'N') OR
(cast(p_channel_event as VARCHAR(*)) = 'N')))
--------------------------PhysicalOlapScan[promotion]
-----------------PhysicalDistribute
-------------------PhysicalProject
---------------------PhysicalOlapScan[item]
+----------------PhysicalProject
+------------------PhysicalOlapScan[item]
diff --git
a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query74.out
b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query74.out
index 03f34b4e4d..5c704a265b 100644
--- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query74.out
+++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query74.out
@@ -27,14 +27,15 @@ CteAnchor[cteId= ( CTEId#4=] )
------------hashAgg[LOCAL]
--------------PhysicalProject
----------------hashJoin[INNER_JOIN](customer.c_customer_sk =
web_sales.ws_bill_customer_sk)
-------------------hashJoin[INNER_JOIN](web_sales.ws_sold_date_sk =
date_dim.d_date_sk)
---------------------PhysicalProject
-----------------------filter((('w' = 's') OR ('w' = 'w')))
-------------------------PhysicalOlapScan[web_sales]
---------------------PhysicalDistribute
+------------------PhysicalDistribute
+--------------------hashJoin[INNER_JOIN](web_sales.ws_sold_date_sk =
date_dim.d_date_sk)
----------------------PhysicalProject
-------------------------filter(((date_dim.d_year = 1999) OR (date_dim.d_year =
2000))(('w' = 's') OR ('w' = 'w')))
---------------------------PhysicalOlapScan[date_dim]
+------------------------filter((('w' = 's') OR ('w' = 'w')))
+--------------------------PhysicalOlapScan[web_sales]
+----------------------PhysicalDistribute
+------------------------PhysicalProject
+--------------------------filter(((date_dim.d_year = 1999) OR (date_dim.d_year
= 2000))(('w' = 's') OR ('w' = 'w')))
+----------------------------PhysicalOlapScan[date_dim]
------------------PhysicalDistribute
--------------------PhysicalProject
----------------------filter((('w' = 's') OR ('w' = 'w')))
diff --git
a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query79.out
b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query79.out
index 11ef1cf172..d51a2de969 100644
--- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query79.out
+++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query79.out
@@ -5,28 +5,29 @@ PhysicalTopN
----PhysicalTopN
------PhysicalProject
--------hashJoin[INNER_JOIN](ms.ss_customer_sk = customer.c_customer_sk)
-----------PhysicalProject
-------------hashAgg[GLOBAL]
---------------PhysicalDistribute
-----------------hashAgg[LOCAL]
-------------------PhysicalProject
---------------------hashJoin[INNER_JOIN](store_sales.ss_store_sk =
store.s_store_sk)
-----------------------hashJoin[INNER_JOIN](store_sales.ss_hdemo_sk =
household_demographics.hd_demo_sk)
-------------------------hashJoin[INNER_JOIN](store_sales.ss_sold_date_sk =
date_dim.d_date_sk)
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[store_sales]
+----------PhysicalDistribute
+------------PhysicalProject
+--------------hashAgg[GLOBAL]
+----------------PhysicalDistribute
+------------------hashAgg[LOCAL]
+--------------------PhysicalProject
+----------------------hashJoin[INNER_JOIN](store_sales.ss_store_sk =
store.s_store_sk)
+------------------------hashJoin[INNER_JOIN](store_sales.ss_hdemo_sk =
household_demographics.hd_demo_sk)
+--------------------------hashJoin[INNER_JOIN](store_sales.ss_sold_date_sk =
date_dim.d_date_sk)
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[store_sales]
+----------------------------PhysicalDistribute
+------------------------------PhysicalProject
+--------------------------------filter(d_year IN (1998, 1999,
2000)(date_dim.d_dow = 1))
+----------------------------------PhysicalOlapScan[date_dim]
--------------------------PhysicalDistribute
----------------------------PhysicalProject
-------------------------------filter(d_year IN (1998, 1999,
2000)(date_dim.d_dow = 1))
---------------------------------PhysicalOlapScan[date_dim]
+------------------------------filter(((household_demographics.hd_dep_count =
5) OR (household_demographics.hd_vehicle_count > 4)))
+--------------------------------PhysicalOlapScan[household_demographics]
------------------------PhysicalDistribute
--------------------------PhysicalProject
-----------------------------filter(((household_demographics.hd_dep_count = 5)
OR (household_demographics.hd_vehicle_count > 4)))
-------------------------------PhysicalOlapScan[household_demographics]
-----------------------PhysicalDistribute
-------------------------PhysicalProject
---------------------------filter((store.s_number_employees >=
200)(store.s_number_employees <= 295))
-----------------------------PhysicalOlapScan[store]
+----------------------------filter((store.s_number_employees >=
200)(store.s_number_employees <= 295))
+------------------------------PhysicalOlapScan[store]
----------PhysicalDistribute
------------PhysicalProject
--------------PhysicalOlapScan[customer]
diff --git
a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query87.out
b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query87.out
index 1219c58974..4b5af9e2a8 100644
--- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query87.out
+++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query87.out
@@ -11,13 +11,15 @@ hashAgg[GLOBAL]
----------------hashAgg[LOCAL]
------------------PhysicalProject
--------------------hashJoin[INNER_JOIN](store_sales.ss_customer_sk =
customer.c_customer_sk)
-----------------------hashJoin[INNER_JOIN](store_sales.ss_sold_date_sk =
date_dim.d_date_sk)
+----------------------PhysicalDistribute
------------------------PhysicalProject
---------------------------PhysicalOlapScan[store_sales]
-------------------------PhysicalDistribute
---------------------------PhysicalProject
-----------------------------filter((date_dim.d_month_seq >=
1184)(date_dim.d_month_seq <= 1195))
-------------------------------PhysicalOlapScan[date_dim]
+--------------------------hashJoin[INNER_JOIN](store_sales.ss_sold_date_sk =
date_dim.d_date_sk)
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[store_sales]
+----------------------------PhysicalDistribute
+------------------------------PhysicalProject
+--------------------------------filter((date_dim.d_month_seq >=
1184)(date_dim.d_month_seq <= 1195))
+----------------------------------PhysicalOlapScan[date_dim]
----------------------PhysicalDistribute
------------------------PhysicalProject
--------------------------PhysicalOlapScan[customer]
@@ -27,13 +29,15 @@ hashAgg[GLOBAL]
----------------hashAgg[LOCAL]
------------------PhysicalProject
--------------------hashJoin[INNER_JOIN](catalog_sales.cs_bill_customer_sk =
customer.c_customer_sk)
-----------------------hashJoin[INNER_JOIN](catalog_sales.cs_sold_date_sk =
date_dim.d_date_sk)
+----------------------PhysicalDistribute
------------------------PhysicalProject
---------------------------PhysicalOlapScan[catalog_sales]
-------------------------PhysicalDistribute
---------------------------PhysicalProject
-----------------------------filter((date_dim.d_month_seq >=
1184)(date_dim.d_month_seq <= 1195))
-------------------------------PhysicalOlapScan[date_dim]
+--------------------------hashJoin[INNER_JOIN](catalog_sales.cs_sold_date_sk =
date_dim.d_date_sk)
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[catalog_sales]
+----------------------------PhysicalDistribute
+------------------------------PhysicalProject
+--------------------------------filter((date_dim.d_month_seq >=
1184)(date_dim.d_month_seq <= 1195))
+----------------------------------PhysicalOlapScan[date_dim]
----------------------PhysicalDistribute
------------------------PhysicalProject
--------------------------PhysicalOlapScan[customer]
diff --git
a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query88.out
b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query88.out
index b3db8f84a7..5242db935c 100644
--- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query88.out
+++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query88.out
@@ -1,33 +1,56 @@
-- This file is automatically generated. You should know what you did if you
want to edit this
-- !ds_shape_88 --
-NestedLoopJoin[CROSS_JOIN]
+PhysicalProject
--NestedLoopJoin[CROSS_JOIN]
----NestedLoopJoin[CROSS_JOIN]
------NestedLoopJoin[CROSS_JOIN]
--------NestedLoopJoin[CROSS_JOIN]
----------NestedLoopJoin[CROSS_JOIN]
------------NestedLoopJoin[CROSS_JOIN]
---------------hashAgg[GLOBAL]
-----------------PhysicalDistribute
-------------------hashAgg[LOCAL]
---------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN](store_sales.ss_hdemo_sk =
household_demographics.hd_demo_sk)
-------------------------hashJoin[INNER_JOIN](store_sales.ss_store_sk =
store.s_store_sk)
---------------------------hashJoin[INNER_JOIN](store_sales.ss_sold_time_sk =
time_dim.t_time_sk)
-----------------------------PhysicalProject
-------------------------------PhysicalOlapScan[store_sales]
+--------------NestedLoopJoin[CROSS_JOIN]
+----------------hashAgg[GLOBAL]
+------------------PhysicalDistribute
+--------------------hashAgg[LOCAL]
+----------------------PhysicalProject
+------------------------hashJoin[INNER_JOIN](store_sales.ss_hdemo_sk =
household_demographics.hd_demo_sk)
+--------------------------hashJoin[INNER_JOIN](store_sales.ss_store_sk =
store.s_store_sk)
+----------------------------hashJoin[INNER_JOIN](store_sales.ss_sold_time_sk =
time_dim.t_time_sk)
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[store_sales]
+------------------------------PhysicalDistribute
+--------------------------------PhysicalProject
+----------------------------------filter((time_dim.t_minute >=
30)(time_dim.t_hour = 8))
+------------------------------------PhysicalOlapScan[time_dim]
----------------------------PhysicalDistribute
------------------------------PhysicalProject
---------------------------------filter((time_dim.t_minute >=
30)(time_dim.t_hour = 8))
-----------------------------------PhysicalOlapScan[time_dim]
+--------------------------------filter((store.s_store_name = 'ese'))
+----------------------------------PhysicalOlapScan[store]
--------------------------PhysicalDistribute
----------------------------PhysicalProject
-------------------------------filter((store.s_store_name = 'ese'))
---------------------------------PhysicalOlapScan[store]
-------------------------PhysicalDistribute
---------------------------PhysicalProject
-----------------------------filter(((((household_demographics.hd_dep_count =
-1) AND (household_demographics.hd_vehicle_count <= 1)) OR
((household_demographics.hd_dep_count = 4) AND
(household_demographics.hd_vehicle_count <= 6))) OR
((household_demographics.hd_dep_count = 3) AND
(household_demographics.hd_vehicle_count <= 5))))
-------------------------------PhysicalOlapScan[household_demographics]
+------------------------------filter(((((household_demographics.hd_dep_count =
-1) AND (household_demographics.hd_vehicle_count <= 1)) OR
((household_demographics.hd_dep_count = 4) AND
(household_demographics.hd_vehicle_count <= 6))) OR
((household_demographics.hd_dep_count = 3) AND
(household_demographics.hd_vehicle_count <= 5))))
+--------------------------------PhysicalOlapScan[household_demographics]
+----------------PhysicalDistribute
+------------------hashAgg[GLOBAL]
+--------------------PhysicalDistribute
+----------------------hashAgg[LOCAL]
+------------------------PhysicalProject
+--------------------------hashJoin[INNER_JOIN](store_sales.ss_hdemo_sk =
household_demographics.hd_demo_sk)
+----------------------------hashJoin[INNER_JOIN](store_sales.ss_store_sk =
store.s_store_sk)
+------------------------------hashJoin[INNER_JOIN](store_sales.ss_sold_time_sk
= time_dim.t_time_sk)
+--------------------------------PhysicalProject
+----------------------------------PhysicalOlapScan[store_sales]
+--------------------------------PhysicalDistribute
+----------------------------------PhysicalProject
+------------------------------------filter((time_dim.t_hour =
9)(time_dim.t_minute < 30))
+--------------------------------------PhysicalOlapScan[time_dim]
+------------------------------PhysicalDistribute
+--------------------------------PhysicalProject
+----------------------------------filter((store.s_store_name = 'ese'))
+------------------------------------PhysicalOlapScan[store]
+----------------------------PhysicalDistribute
+------------------------------PhysicalProject
+--------------------------------filter(((((household_demographics.hd_dep_count
= -1) AND (household_demographics.hd_vehicle_count <= 1)) OR
((household_demographics.hd_dep_count = 4) AND
(household_demographics.hd_vehicle_count <= 6))) OR
((household_demographics.hd_dep_count = 3) AND
(household_demographics.hd_vehicle_count <= 5))))
+----------------------------------PhysicalOlapScan[household_demographics]
--------------PhysicalDistribute
----------------hashAgg[GLOBAL]
------------------PhysicalDistribute
@@ -40,7 +63,7 @@ NestedLoopJoin[CROSS_JOIN]
--------------------------------PhysicalOlapScan[store_sales]
------------------------------PhysicalDistribute
--------------------------------PhysicalProject
-----------------------------------filter((time_dim.t_hour =
9)(time_dim.t_minute < 30))
+----------------------------------filter((time_dim.t_minute >=
30)(time_dim.t_hour = 9))
------------------------------------PhysicalOlapScan[time_dim]
----------------------------PhysicalDistribute
------------------------------PhysicalProject
@@ -62,7 +85,7 @@ NestedLoopJoin[CROSS_JOIN]
------------------------------PhysicalOlapScan[store_sales]
----------------------------PhysicalDistribute
------------------------------PhysicalProject
---------------------------------filter((time_dim.t_minute >=
30)(time_dim.t_hour = 9))
+--------------------------------filter((time_dim.t_hour =
10)(time_dim.t_minute < 30))
----------------------------------PhysicalOlapScan[time_dim]
--------------------------PhysicalDistribute
----------------------------PhysicalProject
@@ -84,7 +107,7 @@ NestedLoopJoin[CROSS_JOIN]
----------------------------PhysicalOlapScan[store_sales]
--------------------------PhysicalDistribute
----------------------------PhysicalProject
-------------------------------filter((time_dim.t_hour = 10)(time_dim.t_minute
< 30))
+------------------------------filter((time_dim.t_minute >= 30)(time_dim.t_hour
= 10))
--------------------------------PhysicalOlapScan[time_dim]
------------------------PhysicalDistribute
--------------------------PhysicalProject
@@ -106,7 +129,7 @@ NestedLoopJoin[CROSS_JOIN]
--------------------------PhysicalOlapScan[store_sales]
------------------------PhysicalDistribute
--------------------------PhysicalProject
-----------------------------filter((time_dim.t_minute >= 30)(time_dim.t_hour =
10))
+----------------------------filter((time_dim.t_minute < 30)(time_dim.t_hour =
11))
------------------------------PhysicalOlapScan[time_dim]
----------------------PhysicalDistribute
------------------------PhysicalProject
@@ -128,7 +151,7 @@ NestedLoopJoin[CROSS_JOIN]
------------------------PhysicalOlapScan[store_sales]
----------------------PhysicalDistribute
------------------------PhysicalProject
---------------------------filter((time_dim.t_minute < 30)(time_dim.t_hour =
11))
+--------------------------filter((time_dim.t_hour = 11)(time_dim.t_minute >=
30))
----------------------------PhysicalOlapScan[time_dim]
--------------------PhysicalDistribute
----------------------PhysicalProject
@@ -150,7 +173,7 @@ NestedLoopJoin[CROSS_JOIN]
----------------------PhysicalOlapScan[store_sales]
--------------------PhysicalDistribute
----------------------PhysicalProject
-------------------------filter((time_dim.t_hour = 11)(time_dim.t_minute >= 30))
+------------------------filter((time_dim.t_hour = 12)(time_dim.t_minute < 30))
--------------------------PhysicalOlapScan[time_dim]
------------------PhysicalDistribute
--------------------PhysicalProject
@@ -160,26 +183,4 @@ NestedLoopJoin[CROSS_JOIN]
------------------PhysicalProject
--------------------filter(((((household_demographics.hd_dep_count = -1) AND
(household_demographics.hd_vehicle_count <= 1)) OR
((household_demographics.hd_dep_count = 4) AND
(household_demographics.hd_vehicle_count <= 6))) OR
((household_demographics.hd_dep_count = 3) AND
(household_demographics.hd_vehicle_count <= 5))))
----------------------PhysicalOlapScan[household_demographics]
---PhysicalDistribute
-----hashAgg[GLOBAL]
-------PhysicalDistribute
---------hashAgg[LOCAL]
-----------PhysicalProject
-------------hashJoin[INNER_JOIN](store_sales.ss_hdemo_sk =
household_demographics.hd_demo_sk)
---------------hashJoin[INNER_JOIN](store_sales.ss_store_sk = store.s_store_sk)
-----------------hashJoin[INNER_JOIN](store_sales.ss_sold_time_sk =
time_dim.t_time_sk)
-------------------PhysicalProject
---------------------PhysicalOlapScan[store_sales]
-------------------PhysicalDistribute
---------------------PhysicalProject
-----------------------filter((time_dim.t_hour = 12)(time_dim.t_minute < 30))
-------------------------PhysicalOlapScan[time_dim]
-----------------PhysicalDistribute
-------------------PhysicalProject
---------------------filter((store.s_store_name = 'ese'))
-----------------------PhysicalOlapScan[store]
---------------PhysicalDistribute
-----------------PhysicalProject
-------------------filter(((((household_demographics.hd_dep_count = -1) AND
(household_demographics.hd_vehicle_count <= 1)) OR
((household_demographics.hd_dep_count = 4) AND
(household_demographics.hd_vehicle_count <= 6))) OR
((household_demographics.hd_dep_count = 3) AND
(household_demographics.hd_vehicle_count <= 5))))
---------------------PhysicalOlapScan[household_demographics]
diff --git
a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query91.out
b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query91.out
index ab9f2157a4..f856ec0748 100644
--- a/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query91.out
+++ b/regression-test/data/nereids_tpcds_shape_sf100_p0/shape/query91.out
@@ -23,8 +23,9 @@ PhysicalQuickSort
--------------------------hashJoin[INNER_JOIN](household_demographics.hd_demo_sk
= customer.c_current_hdemo_sk)
----------------------------PhysicalProject
------------------------------hashJoin[INNER_JOIN](catalog_returns.cr_returning_customer_sk
= customer.c_customer_sk)
---------------------------------PhysicalProject
-----------------------------------PhysicalOlapScan[customer]
+--------------------------------PhysicalDistribute
+----------------------------------PhysicalProject
+------------------------------------PhysicalOlapScan[customer]
--------------------------------PhysicalDistribute
----------------------------------PhysicalProject
------------------------------------hashJoin[INNER_JOIN](catalog_returns.cr_returned_date_sk
= date_dim.d_date_sk)
diff --git a/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q3.out
b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q3.out
index aff6e8dcd1..643f478927 100644
--- a/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q3.out
+++ b/regression-test/data/nereids_tpch_shape_sf1000_p0/shape/q3.out
@@ -10,12 +10,13 @@ PhysicalTopN
--------------PhysicalProject
----------------filter((lineitem.l_shipdate > 1995-03-15))
------------------PhysicalOlapScan[lineitem]
---------------PhysicalProject
-----------------hashJoin[INNER_JOIN](customer.c_custkey = orders.o_custkey)
-------------------PhysicalProject
---------------------filter((orders.o_orderdate < 1995-03-15))
-----------------------PhysicalOlapScan[orders]
-------------------PhysicalDistribute
+--------------PhysicalDistribute
+----------------PhysicalProject
+------------------hashJoin[INNER_JOIN](customer.c_custkey = orders.o_custkey)
+--------------------PhysicalDistribute
+----------------------PhysicalProject
+------------------------filter((orders.o_orderdate < 1995-03-15))
+--------------------------PhysicalOlapScan[orders]
--------------------PhysicalProject
----------------------filter((customer.c_mktsegment = 'BUILDING'))
------------------------PhysicalOlapScan[customer]
diff --git a/regression-test/data/nereids_tpch_shape_sf500_p0/shape/q3.out
b/regression-test/data/nereids_tpch_shape_sf500_p0/shape/q3.out
index aff6e8dcd1..643f478927 100644
--- a/regression-test/data/nereids_tpch_shape_sf500_p0/shape/q3.out
+++ b/regression-test/data/nereids_tpch_shape_sf500_p0/shape/q3.out
@@ -10,12 +10,13 @@ PhysicalTopN
--------------PhysicalProject
----------------filter((lineitem.l_shipdate > 1995-03-15))
------------------PhysicalOlapScan[lineitem]
---------------PhysicalProject
-----------------hashJoin[INNER_JOIN](customer.c_custkey = orders.o_custkey)
-------------------PhysicalProject
---------------------filter((orders.o_orderdate < 1995-03-15))
-----------------------PhysicalOlapScan[orders]
-------------------PhysicalDistribute
+--------------PhysicalDistribute
+----------------PhysicalProject
+------------------hashJoin[INNER_JOIN](customer.c_custkey = orders.o_custkey)
+--------------------PhysicalDistribute
+----------------------PhysicalProject
+------------------------filter((orders.o_orderdate < 1995-03-15))
+--------------------------PhysicalOlapScan[orders]
--------------------PhysicalProject
----------------------filter((customer.c_mktsegment = 'BUILDING'))
------------------------PhysicalOlapScan[customer]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]