This is an automated email from the ASF dual-hosted git repository.
yiguolei pushed a commit to branch branch-4.1
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-4.1 by this push:
new dfd31a91f14 branch-4.1: [opt](nereids) when we check if there is a
target for runtime filter, we should use ctx.probeSlot not ctx.probeExpr #57425
(#64280)
dfd31a91f14 is described below
commit dfd31a91f14681aa77c9ef59181bf6ba9743628e
Author: github-actions[bot]
<41898282+github-actions[bot]@users.noreply.github.com>
AuthorDate: Mon Jun 22 12:27:14 2026 +0800
branch-4.1: [opt](nereids) when we check if there is a target for runtime
filter, we should use ctx.probeSlot not ctx.probeExpr #57425 (#64280)
Cherry-picked from #57425
Co-authored-by: minghong <[email protected]>
---
.../post/RuntimeFilterPushDownVisitor.java | 2 +-
.../plans/physical/PhysicalNestedLoopJoin.java | 8 +++++-
.../tpcds_sf100/noStatsRfPrune/query2.out | 8 +++---
.../tpcds_sf100/no_stats_shape/query2.out | 8 +++---
.../shape_check/tpcds_sf100/rf_prune/query2.out | 4 +--
.../shape_check/tpcds_sf100/rf_prune/query59.out | 4 +--
.../data/shape_check/tpcds_sf100/shape/query2.out | 4 +--
.../data/shape_check/tpcds_sf100/shape/query59.out | 4 +--
.../data/shape_check/tpcds_sf1000/hint/query2.out | 4 +--
.../data/shape_check/tpcds_sf1000/hint/query59.out | 4 +--
.../data/shape_check/tpcds_sf1000/shape/query2.out | 4 +--
.../shape_check/tpcds_sf1000/shape/query54.out | 30 +++++++++++-----------
.../shape_check/tpcds_sf1000/shape/query59.out | 4 +--
.../shape_check/tpcds_sf10t_orc/shape/query2.out | 8 +++---
.../shape_check/tpcds_sf10t_orc/shape/query59.out | 6 ++---
.../shape_check/tpcds_sf1000/shape/query54.groovy | 2 +-
16 files changed, 55 insertions(+), 49 deletions(-)
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/processor/post/RuntimeFilterPushDownVisitor.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/processor/post/RuntimeFilterPushDownVisitor.java
index 9175058cfcf..9f66129f07a 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/processor/post/RuntimeFilterPushDownVisitor.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/processor/post/RuntimeFilterPushDownVisitor.java
@@ -273,7 +273,7 @@ public class RuntimeFilterPushDownVisitor extends
PlanVisitor<Boolean, PushDownC
probExprList.add(ctx.probeExpr);
Pair<PhysicalRelation, Slot> srcPair =
ctx.rfContext.getAliasTransferMap().get(ctx.srcExpr);
PhysicalRelation srcNode = (srcPair == null) ? null : srcPair.first;
- Pair<PhysicalRelation, Slot> targetPair =
ctx.rfContext.getAliasTransferMap().get(ctx.probeExpr);
+ Pair<PhysicalRelation, Slot> targetPair =
ctx.rfContext.getAliasTransferMap().get(ctx.probeSlot);
if (targetPair == null) {
/* cases for "targetPair is null"
when probeExpr is output slot of setOperator, targetPair is null
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalNestedLoopJoin.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalNestedLoopJoin.java
index 609ebefbeff..c3a24b5e446 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalNestedLoopJoin.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalNestedLoopJoin.java
@@ -230,7 +230,13 @@ public class PhysicalNestedLoopJoin<
} else {
otherJoinConjuncts.forEach(expr ->
builder.append(expr.shapeInfo()));
}
-
+ if (!runtimeFilters.isEmpty()) {
+ builder.append(" build RFs:").append(runtimeFilters.stream()
+ .map(rf ->
rf.shapeInfo()).collect(Collectors.joining(";")));
+ }
+ if (!runtimeFiltersV2.isEmpty()) {
+ builder.append(" RFV2: ").append(runtimeFiltersV2);
+ }
return builder.toString();
}
diff --git
a/regression-test/data/shape_check/tpcds_sf100/noStatsRfPrune/query2.out
b/regression-test/data/shape_check/tpcds_sf100/noStatsRfPrune/query2.out
index 5236760c47c..19e82920b92 100644
--- a/regression-test/data/shape_check/tpcds_sf100/noStatsRfPrune/query2.out
+++ b/regression-test/data/shape_check/tpcds_sf100/noStatsRfPrune/query2.out
@@ -21,18 +21,18 @@ PhysicalCteAnchor ( cteId=CTEId#1 )
------PhysicalDistribute[DistributionSpecGather]
--------PhysicalQuickSort[LOCAL_SORT]
----------PhysicalProject
-------------hashJoin[INNER_JOIN broadcast] hashCondition=((date_dim.d_week_seq
= d_week_seq1)) otherCondition=() build RFs:RF2 d_week_seq->[d_week_seq]
+------------hashJoin[INNER_JOIN broadcast] hashCondition=((date_dim.d_week_seq
= d_week_seq1)) otherCondition=() build RFs:RF3 d_week_seq->[d_week_seq]
--------------PhysicalProject
-----------------hashJoin[INNER_JOIN shuffle]
hashCondition=((expr_cast(d_week_seq1 as BIGINT) = expr_(cast(d_week_seq2 as
BIGINT) - 53))) otherCondition=()
+----------------hashJoin[INNER_JOIN shuffle]
hashCondition=((expr_cast(d_week_seq1 as BIGINT) = expr_(cast(d_week_seq2 as
BIGINT) - 53))) otherCondition=() build RFs:RF2 expr_cast(d_week_seq1 as
BIGINT)->[(cast(d_week_seq as BIGINT) - 53)]
------------------PhysicalProject
--------------------hashJoin[INNER_JOIN shuffle]
hashCondition=((date_dim.d_week_seq = d_week_seq2)) otherCondition=() build
RFs:RF1 d_week_seq->[d_week_seq]
----------------------PhysicalProject
-------------------------PhysicalCteConsumer ( cteId=CTEId#1 ) apply RFs: RF1
+------------------------PhysicalCteConsumer ( cteId=CTEId#1 ) apply RFs: RF1
RF2
----------------------PhysicalProject
------------------------filter((date_dim.d_year = 1999))
--------------------------PhysicalOlapScan[date_dim]
------------------PhysicalProject
---------------------PhysicalCteConsumer ( cteId=CTEId#1 ) apply RFs: RF2
+--------------------PhysicalCteConsumer ( cteId=CTEId#1 ) apply RFs: RF3
--------------PhysicalProject
----------------filter((date_dim.d_year = 1998))
------------------PhysicalOlapScan[date_dim]
diff --git
a/regression-test/data/shape_check/tpcds_sf100/no_stats_shape/query2.out
b/regression-test/data/shape_check/tpcds_sf100/no_stats_shape/query2.out
index b9499df831a..5ed4762bd44 100644
--- a/regression-test/data/shape_check/tpcds_sf100/no_stats_shape/query2.out
+++ b/regression-test/data/shape_check/tpcds_sf100/no_stats_shape/query2.out
@@ -21,18 +21,18 @@ PhysicalCteAnchor ( cteId=CTEId#1 )
------PhysicalDistribute[DistributionSpecGather]
--------PhysicalQuickSort[LOCAL_SORT]
----------PhysicalProject
-------------hashJoin[INNER_JOIN broadcast] hashCondition=((date_dim.d_week_seq
= d_week_seq1)) otherCondition=() build RFs:RF2 d_week_seq->[d_week_seq]
+------------hashJoin[INNER_JOIN broadcast] hashCondition=((date_dim.d_week_seq
= d_week_seq1)) otherCondition=() build RFs:RF3 d_week_seq->[d_week_seq]
--------------PhysicalProject
-----------------hashJoin[INNER_JOIN shuffle]
hashCondition=((expr_cast(d_week_seq1 as BIGINT) = expr_(cast(d_week_seq2 as
BIGINT) - 53))) otherCondition=()
+----------------hashJoin[INNER_JOIN shuffle]
hashCondition=((expr_cast(d_week_seq1 as BIGINT) = expr_(cast(d_week_seq2 as
BIGINT) - 53))) otherCondition=() build RFs:RF2 expr_cast(d_week_seq1 as
BIGINT)->[(cast(d_week_seq as BIGINT) - 53)]
------------------PhysicalProject
--------------------hashJoin[INNER_JOIN shuffle]
hashCondition=((date_dim.d_week_seq = d_week_seq2)) otherCondition=() build
RFs:RF1 d_week_seq->[d_week_seq]
----------------------PhysicalProject
-------------------------PhysicalCteConsumer ( cteId=CTEId#1 ) apply RFs: RF1
+------------------------PhysicalCteConsumer ( cteId=CTEId#1 ) apply RFs: RF1
RF2
----------------------PhysicalProject
------------------------filter((date_dim.d_year = 1999))
--------------------------PhysicalOlapScan[date_dim]
------------------PhysicalProject
---------------------PhysicalCteConsumer ( cteId=CTEId#1 ) apply RFs: RF2
+--------------------PhysicalCteConsumer ( cteId=CTEId#1 ) apply RFs: RF3
--------------PhysicalProject
----------------filter((date_dim.d_year = 1998))
------------------PhysicalOlapScan[date_dim]
diff --git a/regression-test/data/shape_check/tpcds_sf100/rf_prune/query2.out
b/regression-test/data/shape_check/tpcds_sf100/rf_prune/query2.out
index 08ba0d4fc6a..41ad24ad066 100644
--- a/regression-test/data/shape_check/tpcds_sf100/rf_prune/query2.out
+++ b/regression-test/data/shape_check/tpcds_sf100/rf_prune/query2.out
@@ -25,11 +25,11 @@ PhysicalCteAnchor ( cteId=CTEId#1 )
------PhysicalDistribute[DistributionSpecGather]
--------PhysicalQuickSort[LOCAL_SORT]
----------PhysicalProject
-------------hashJoin[INNER_JOIN broadcast]
hashCondition=((expr_cast(d_week_seq1 as BIGINT) = expr_(cast(d_week_seq2 as
BIGINT) - 53))) otherCondition=()
+------------hashJoin[INNER_JOIN broadcast]
hashCondition=((expr_cast(d_week_seq1 as BIGINT) = expr_(cast(d_week_seq2 as
BIGINT) - 53))) otherCondition=() build RFs:RF3 expr_(cast(d_week_seq2 as
BIGINT) - 53)->[cast(d_week_seq as BIGINT)]
--------------PhysicalProject
----------------hashJoin[INNER_JOIN shuffle]
hashCondition=((date_dim.d_week_seq = d_week_seq1)) otherCondition=() build
RFs:RF2 d_week_seq->[d_week_seq]
------------------PhysicalProject
---------------------PhysicalCteConsumer ( cteId=CTEId#1 ) apply RFs: RF2
+--------------------PhysicalCteConsumer ( cteId=CTEId#1 ) apply RFs: RF2 RF3
------------------PhysicalProject
--------------------filter((date_dim.d_year = 1998))
----------------------PhysicalOlapScan[date_dim]
diff --git a/regression-test/data/shape_check/tpcds_sf100/rf_prune/query59.out
b/regression-test/data/shape_check/tpcds_sf100/rf_prune/query59.out
index d2a2c7010d3..a469768f451 100644
--- a/regression-test/data/shape_check/tpcds_sf100/rf_prune/query59.out
+++ b/regression-test/data/shape_check/tpcds_sf100/rf_prune/query59.out
@@ -19,13 +19,13 @@ PhysicalCteAnchor ( cteId=CTEId#0 )
------PhysicalDistribute[DistributionSpecGather]
--------PhysicalTopN[LOCAL_SORT]
----------PhysicalProject
-------------hashJoin[INNER_JOIN shuffle] hashCondition=((expr_cast(d_week_seq1
as BIGINT) = expr_(cast(d_week_seq2 as BIGINT) - 52)) and (y.s_store_id1 =
x.s_store_id2)) otherCondition=() build RFs:RF5 s_store_id2->[s_store_id]
+------------hashJoin[INNER_JOIN shuffle] hashCondition=((expr_cast(d_week_seq1
as BIGINT) = expr_(cast(d_week_seq2 as BIGINT) - 52)) and (y.s_store_id1 =
x.s_store_id2)) otherCondition=() build RFs:RF5 s_store_id2->[s_store_id];RF6
expr_(cast(d_week_seq2 as BIGINT) - 52)->[cast(d_week_seq as BIGINT)]
--------------PhysicalProject
----------------hashJoin[INNER_JOIN broadcast] hashCondition=((d.d_week_seq =
d_week_seq1)) otherCondition=() build RFs:RF4 d_week_seq->[d_week_seq]
------------------PhysicalProject
--------------------hashJoin[INNER_JOIN shuffle]
hashCondition=((wss.ss_store_sk = store.s_store_sk)) otherCondition=() build
RFs:RF3 s_store_sk->[ss_store_sk]
----------------------PhysicalProject
-------------------------PhysicalCteConsumer ( cteId=CTEId#0 ) apply RFs: RF3
RF4
+------------------------PhysicalCteConsumer ( cteId=CTEId#0 ) apply RFs: RF3
RF4 RF6
----------------------PhysicalProject
------------------------PhysicalOlapScan[store] apply RFs: RF5
------------------PhysicalProject
diff --git a/regression-test/data/shape_check/tpcds_sf100/shape/query2.out
b/regression-test/data/shape_check/tpcds_sf100/shape/query2.out
index 08ba0d4fc6a..41ad24ad066 100644
--- a/regression-test/data/shape_check/tpcds_sf100/shape/query2.out
+++ b/regression-test/data/shape_check/tpcds_sf100/shape/query2.out
@@ -25,11 +25,11 @@ PhysicalCteAnchor ( cteId=CTEId#1 )
------PhysicalDistribute[DistributionSpecGather]
--------PhysicalQuickSort[LOCAL_SORT]
----------PhysicalProject
-------------hashJoin[INNER_JOIN broadcast]
hashCondition=((expr_cast(d_week_seq1 as BIGINT) = expr_(cast(d_week_seq2 as
BIGINT) - 53))) otherCondition=()
+------------hashJoin[INNER_JOIN broadcast]
hashCondition=((expr_cast(d_week_seq1 as BIGINT) = expr_(cast(d_week_seq2 as
BIGINT) - 53))) otherCondition=() build RFs:RF3 expr_(cast(d_week_seq2 as
BIGINT) - 53)->[cast(d_week_seq as BIGINT)]
--------------PhysicalProject
----------------hashJoin[INNER_JOIN shuffle]
hashCondition=((date_dim.d_week_seq = d_week_seq1)) otherCondition=() build
RFs:RF2 d_week_seq->[d_week_seq]
------------------PhysicalProject
---------------------PhysicalCteConsumer ( cteId=CTEId#1 ) apply RFs: RF2
+--------------------PhysicalCteConsumer ( cteId=CTEId#1 ) apply RFs: RF2 RF3
------------------PhysicalProject
--------------------filter((date_dim.d_year = 1998))
----------------------PhysicalOlapScan[date_dim]
diff --git a/regression-test/data/shape_check/tpcds_sf100/shape/query59.out
b/regression-test/data/shape_check/tpcds_sf100/shape/query59.out
index 897b9958027..1596274288c 100644
--- a/regression-test/data/shape_check/tpcds_sf100/shape/query59.out
+++ b/regression-test/data/shape_check/tpcds_sf100/shape/query59.out
@@ -19,13 +19,13 @@ PhysicalCteAnchor ( cteId=CTEId#0 )
------PhysicalDistribute[DistributionSpecGather]
--------PhysicalTopN[LOCAL_SORT]
----------PhysicalProject
-------------hashJoin[INNER_JOIN shuffle] hashCondition=((expr_cast(d_week_seq1
as BIGINT) = expr_(cast(d_week_seq2 as BIGINT) - 52)) and (y.s_store_id1 =
x.s_store_id2)) otherCondition=() build RFs:RF5 s_store_id2->[s_store_id]
+------------hashJoin[INNER_JOIN shuffle] hashCondition=((expr_cast(d_week_seq1
as BIGINT) = expr_(cast(d_week_seq2 as BIGINT) - 52)) and (y.s_store_id1 =
x.s_store_id2)) otherCondition=() build RFs:RF5 s_store_id2->[s_store_id];RF6
expr_(cast(d_week_seq2 as BIGINT) - 52)->[cast(d_week_seq as BIGINT)]
--------------PhysicalProject
----------------hashJoin[INNER_JOIN broadcast] hashCondition=((d.d_week_seq =
d_week_seq1)) otherCondition=() build RFs:RF4 d_week_seq->[d_week_seq]
------------------PhysicalProject
--------------------hashJoin[INNER_JOIN shuffle]
hashCondition=((wss.ss_store_sk = store.s_store_sk)) otherCondition=() build
RFs:RF3 s_store_sk->[ss_store_sk]
----------------------PhysicalProject
-------------------------PhysicalCteConsumer ( cteId=CTEId#0 ) apply RFs: RF3
RF4
+------------------------PhysicalCteConsumer ( cteId=CTEId#0 ) apply RFs: RF3
RF4 RF6
----------------------PhysicalProject
------------------------PhysicalOlapScan[store] apply RFs: RF5
------------------PhysicalProject
diff --git a/regression-test/data/shape_check/tpcds_sf1000/hint/query2.out
b/regression-test/data/shape_check/tpcds_sf1000/hint/query2.out
index ac9f18020d5..e9bce4b8168 100644
--- a/regression-test/data/shape_check/tpcds_sf1000/hint/query2.out
+++ b/regression-test/data/shape_check/tpcds_sf1000/hint/query2.out
@@ -25,11 +25,11 @@ PhysicalCteAnchor ( cteId=CTEId#1 )
------PhysicalDistribute[DistributionSpecGather]
--------PhysicalQuickSort[LOCAL_SORT]
----------PhysicalProject
-------------hashJoin[INNER_JOIN shuffle] hashCondition=((expr_cast(d_week_seq1
as BIGINT) = expr_(cast(d_week_seq2 as BIGINT) - 53))) otherCondition=()
+------------hashJoin[INNER_JOIN shuffle] hashCondition=((expr_cast(d_week_seq1
as BIGINT) = expr_(cast(d_week_seq2 as BIGINT) - 53))) otherCondition=() build
RFs:RF3 expr_(cast(d_week_seq2 as BIGINT) - 53)->[cast(d_week_seq as BIGINT)]
--------------PhysicalProject
----------------hashJoin[INNER_JOIN shuffle]
hashCondition=((date_dim.d_week_seq = y.d_week_seq1)) otherCondition=() build
RFs:RF2 d_week_seq->[d_week_seq]
------------------PhysicalProject
---------------------PhysicalCteConsumer ( cteId=CTEId#1 ) apply RFs: RF2
+--------------------PhysicalCteConsumer ( cteId=CTEId#1 ) apply RFs: RF2 RF3
------------------PhysicalProject
--------------------filter((date_dim.d_year = 1998))
----------------------PhysicalOlapScan[date_dim]
diff --git a/regression-test/data/shape_check/tpcds_sf1000/hint/query59.out
b/regression-test/data/shape_check/tpcds_sf1000/hint/query59.out
index 6ffc4d43a3c..34b621ff717 100644
--- a/regression-test/data/shape_check/tpcds_sf1000/hint/query59.out
+++ b/regression-test/data/shape_check/tpcds_sf1000/hint/query59.out
@@ -19,13 +19,13 @@ PhysicalCteAnchor ( cteId=CTEId#0 )
------PhysicalDistribute[DistributionSpecGather]
--------PhysicalTopN[LOCAL_SORT]
----------PhysicalProject
-------------hashJoin[INNER_JOIN shuffle] hashCondition=((expr_cast(d_week_seq1
as BIGINT) = expr_(cast(d_week_seq2 as BIGINT) - 52)) and (y.s_store_id1 =
x.s_store_id2)) otherCondition=() build RFs:RF5 s_store_id2->[s_store_id]
+------------hashJoin[INNER_JOIN shuffle] hashCondition=((expr_cast(d_week_seq1
as BIGINT) = expr_(cast(d_week_seq2 as BIGINT) - 52)) and (y.s_store_id1 =
x.s_store_id2)) otherCondition=() build RFs:RF5 s_store_id2->[s_store_id];RF6
expr_(cast(d_week_seq2 as BIGINT) - 52)->[cast(d_week_seq as BIGINT)]
--------------PhysicalProject
----------------hashJoin[INNER_JOIN broadcast] hashCondition=((wss.ss_store_sk
= store.s_store_sk)) otherCondition=() build RFs:RF4 s_store_sk->[ss_store_sk]
------------------PhysicalProject
--------------------hashJoin[INNER_JOIN shuffle] hashCondition=((d.d_week_seq
= y.d_week_seq1)) otherCondition=() build RFs:RF3 d_week_seq->[d_week_seq]
----------------------PhysicalProject
-------------------------PhysicalCteConsumer ( cteId=CTEId#0 ) apply RFs: RF3
RF4
+------------------------PhysicalCteConsumer ( cteId=CTEId#0 ) apply RFs: RF3
RF4 RF6
----------------------PhysicalProject
------------------------filter((d.d_month_seq <= 1206) and (d.d_month_seq >=
1195))
--------------------------PhysicalOlapScan[date_dim]
diff --git a/regression-test/data/shape_check/tpcds_sf1000/shape/query2.out
b/regression-test/data/shape_check/tpcds_sf1000/shape/query2.out
index 08ba0d4fc6a..41ad24ad066 100644
--- a/regression-test/data/shape_check/tpcds_sf1000/shape/query2.out
+++ b/regression-test/data/shape_check/tpcds_sf1000/shape/query2.out
@@ -25,11 +25,11 @@ PhysicalCteAnchor ( cteId=CTEId#1 )
------PhysicalDistribute[DistributionSpecGather]
--------PhysicalQuickSort[LOCAL_SORT]
----------PhysicalProject
-------------hashJoin[INNER_JOIN broadcast]
hashCondition=((expr_cast(d_week_seq1 as BIGINT) = expr_(cast(d_week_seq2 as
BIGINT) - 53))) otherCondition=()
+------------hashJoin[INNER_JOIN broadcast]
hashCondition=((expr_cast(d_week_seq1 as BIGINT) = expr_(cast(d_week_seq2 as
BIGINT) - 53))) otherCondition=() build RFs:RF3 expr_(cast(d_week_seq2 as
BIGINT) - 53)->[cast(d_week_seq as BIGINT)]
--------------PhysicalProject
----------------hashJoin[INNER_JOIN shuffle]
hashCondition=((date_dim.d_week_seq = d_week_seq1)) otherCondition=() build
RFs:RF2 d_week_seq->[d_week_seq]
------------------PhysicalProject
---------------------PhysicalCteConsumer ( cteId=CTEId#1 ) apply RFs: RF2
+--------------------PhysicalCteConsumer ( cteId=CTEId#1 ) apply RFs: RF2 RF3
------------------PhysicalProject
--------------------filter((date_dim.d_year = 1998))
----------------------PhysicalOlapScan[date_dim]
diff --git a/regression-test/data/shape_check/tpcds_sf1000/shape/query54.out
b/regression-test/data/shape_check/tpcds_sf1000/shape/query54.out
index b7c2fe2adcd..62d473efd02 100644
--- a/regression-test/data/shape_check/tpcds_sf1000/shape/query54.out
+++ b/regression-test/data/shape_check/tpcds_sf1000/shape/query54.out
@@ -13,36 +13,36 @@ PhysicalResultSink
--------------------PhysicalDistribute[DistributionSpecHash]
----------------------hashAgg[LOCAL]
------------------------PhysicalProject
---------------------------hashJoin[INNER_JOIN broadcast]
hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk))
otherCondition=() build RFs:RF7 d_date_sk->[ss_sold_date_sk]
+--------------------------hashJoin[INNER_JOIN broadcast]
hashCondition=((store_sales.ss_sold_date_sk = date_dim.d_date_sk))
otherCondition=() build RFs:RF16 d_date_sk->[ss_sold_date_sk];RF17
d_date_sk->[ss_sold_date_sk]
----------------------------PhysicalProject
-------------------------------hashJoin[INNER_JOIN broadcast]
hashCondition=((my_customers.c_customer_sk = store_sales.ss_customer_sk))
otherCondition=() build RFs:RF6 c_customer_sk->[ss_customer_sk]
+------------------------------hashJoin[INNER_JOIN broadcast]
hashCondition=((my_customers.c_customer_sk = store_sales.ss_customer_sk))
otherCondition=() build RFs:RF14 c_customer_sk->[ss_customer_sk];RF15
c_customer_sk->[ss_customer_sk]
--------------------------------PhysicalProject
-----------------------------------PhysicalOlapScan[store_sales] apply RFs: RF6
RF7
+----------------------------------PhysicalOlapScan[store_sales] apply RFs:
RF14 RF15 RF16 RF17
--------------------------------PhysicalProject
-----------------------------------hashJoin[INNER_JOIN broadcast]
hashCondition=((customer_address.ca_county = store.s_county) and
(customer_address.ca_state = store.s_state)) otherCondition=() build RFs:RF4
s_county->[ca_county];RF5 s_state->[ca_state]
+----------------------------------hashJoin[INNER_JOIN broadcast]
hashCondition=((customer_address.ca_county = store.s_county) and
(customer_address.ca_state = store.s_state)) otherCondition=() build RFs:RF10
s_county->[ca_county];RF11 s_county->[ca_county];RF12 s_state->[ca_state];RF13
s_state->[ca_state]
------------------------------------PhysicalProject
---------------------------------------hashJoin[INNER_JOIN broadcast]
hashCondition=((my_customers.c_current_addr_sk =
customer_address.ca_address_sk)) otherCondition=() build RFs:RF3
c_current_addr_sk->[ca_address_sk]
+--------------------------------------hashJoin[INNER_JOIN broadcast]
hashCondition=((my_customers.c_current_addr_sk =
customer_address.ca_address_sk)) otherCondition=() build RFs:RF8
c_current_addr_sk->[ca_address_sk];RF9 c_current_addr_sk->[ca_address_sk]
----------------------------------------PhysicalProject
-------------------------------------------PhysicalOlapScan[customer_address]
apply RFs: RF3 RF4 RF5
+------------------------------------------PhysicalOlapScan[customer_address]
apply RFs: RF8 RF9 RF10 RF11 RF12 RF13
----------------------------------------PhysicalProject
------------------------------------------hashAgg[GLOBAL]
--------------------------------------------PhysicalDistribute[DistributionSpecHash]
----------------------------------------------hashAgg[LOCAL]
------------------------------------------------PhysicalProject
---------------------------------------------------hashJoin[INNER_JOIN
broadcast] hashCondition=((customer.c_customer_sk =
cs_or_ws_sales.customer_sk)) otherCondition=() build RFs:RF2
customer_sk->[c_customer_sk]
+--------------------------------------------------hashJoin[INNER_JOIN
broadcast] hashCondition=((customer.c_customer_sk =
cs_or_ws_sales.customer_sk)) otherCondition=() build RFs:RF6
customer_sk->[c_customer_sk];RF7 customer_sk->[c_customer_sk]
----------------------------------------------------PhysicalProject
-------------------------------------------------------PhysicalOlapScan[customer]
apply RFs: RF2
+------------------------------------------------------PhysicalOlapScan[customer]
apply RFs: RF6 RF7
----------------------------------------------------PhysicalProject
-------------------------------------------------------hashJoin[INNER_JOIN
broadcast] hashCondition=((cs_or_ws_sales.sold_date_sk = date_dim.d_date_sk))
otherCondition=() build RFs:RF1 d_date_sk->[cs_sold_date_sk,ws_sold_date_sk]
+------------------------------------------------------hashJoin[INNER_JOIN
broadcast] hashCondition=((cs_or_ws_sales.sold_date_sk = date_dim.d_date_sk))
otherCondition=() build RFs:RF4
d_date_sk->[cs_sold_date_sk,ws_sold_date_sk];RF5
d_date_sk->[cs_sold_date_sk,ws_sold_date_sk]
--------------------------------------------------------PhysicalProject
-----------------------------------------------------------hashJoin[INNER_JOIN
broadcast] hashCondition=((cs_or_ws_sales.item_sk = item.i_item_sk))
otherCondition=() build RFs:RF0 i_item_sk->[cs_item_sk,ws_item_sk]
+----------------------------------------------------------hashJoin[INNER_JOIN
broadcast] hashCondition=((cs_or_ws_sales.item_sk = item.i_item_sk))
otherCondition=() build RFs:RF2 i_item_sk->[cs_item_sk,ws_item_sk];RF3
i_item_sk->[cs_item_sk,ws_item_sk]
------------------------------------------------------------PhysicalUnion
--------------------------------------------------------------PhysicalDistribute[DistributionSpecExecutionAny]
----------------------------------------------------------------PhysicalProject
-------------------------------------------------------------------PhysicalOlapScan[catalog_sales]
apply RFs: RF0 RF1
+------------------------------------------------------------------PhysicalOlapScan[catalog_sales]
apply RFs: RF2 RF3 RF4 RF5
--------------------------------------------------------------PhysicalDistribute[DistributionSpecExecutionAny]
----------------------------------------------------------------PhysicalProject
-------------------------------------------------------------------PhysicalOlapScan[web_sales]
apply RFs: RF0 RF1
+------------------------------------------------------------------PhysicalOlapScan[web_sales]
apply RFs: RF2 RF3 RF4 RF5
------------------------------------------------------------PhysicalProject
--------------------------------------------------------------filter((item.i_category
= 'Music') and (item.i_class = 'country'))
----------------------------------------------------------------PhysicalOlapScan[item]
@@ -52,11 +52,11 @@ PhysicalResultSink
------------------------------------PhysicalProject
--------------------------------------PhysicalOlapScan[store]
----------------------------PhysicalProject
-------------------------------NestedLoopJoin[INNER_JOIN](cast(d_month_seq as
BIGINT) <= d_month_seq+3)
+------------------------------NestedLoopJoin[INNER_JOIN](cast(d_month_seq as
BIGINT) <= d_month_seq+3) build RFs:RF1 d_month_seq+3->[cast(d_month_seq as
BIGINT)]
--------------------------------PhysicalProject
-----------------------------------NestedLoopJoin[INNER_JOIN](cast(d_month_seq
as BIGINT) >= d_month_seq+1)
+----------------------------------NestedLoopJoin[INNER_JOIN](cast(d_month_seq
as BIGINT) >= d_month_seq+1) build RFs:RF0 d_month_seq+1->[cast(d_month_seq as
BIGINT)]
------------------------------------PhysicalProject
---------------------------------------PhysicalOlapScan[date_dim]
+--------------------------------------PhysicalOlapScan[date_dim] apply RFs:
RF0 RF1
------------------------------------PhysicalAssertNumRows
--------------------------------------PhysicalDistribute[DistributionSpecGather]
----------------------------------------hashAgg[GLOBAL]
diff --git a/regression-test/data/shape_check/tpcds_sf1000/shape/query59.out
b/regression-test/data/shape_check/tpcds_sf1000/shape/query59.out
index 1cf593d4cbe..107a8eeca01 100644
--- a/regression-test/data/shape_check/tpcds_sf1000/shape/query59.out
+++ b/regression-test/data/shape_check/tpcds_sf1000/shape/query59.out
@@ -19,13 +19,13 @@ PhysicalCteAnchor ( cteId=CTEId#0 )
------PhysicalDistribute[DistributionSpecGather]
--------PhysicalTopN[LOCAL_SORT]
----------PhysicalProject
-------------hashJoin[INNER_JOIN shuffle] hashCondition=((expr_cast(d_week_seq1
as BIGINT) = expr_(cast(d_week_seq2 as BIGINT) - 52)) and (y.s_store_id1 =
x.s_store_id2)) otherCondition=() build RFs:RF5 s_store_id2->[s_store_id]
+------------hashJoin[INNER_JOIN shuffle] hashCondition=((expr_cast(d_week_seq1
as BIGINT) = expr_(cast(d_week_seq2 as BIGINT) - 52)) and (y.s_store_id1 =
x.s_store_id2)) otherCondition=() build RFs:RF5 s_store_id2->[s_store_id];RF6
expr_(cast(d_week_seq2 as BIGINT) - 52)->[cast(d_week_seq as BIGINT)]
--------------PhysicalProject
----------------hashJoin[INNER_JOIN broadcast] hashCondition=((d.d_week_seq =
d_week_seq1)) otherCondition=() build RFs:RF4 d_week_seq->[d_week_seq]
------------------PhysicalProject
--------------------hashJoin[INNER_JOIN shuffle]
hashCondition=((wss.ss_store_sk = store.s_store_sk)) otherCondition=() build
RFs:RF3 s_store_sk->[ss_store_sk]
----------------------PhysicalProject
-------------------------PhysicalCteConsumer ( cteId=CTEId#0 ) apply RFs: RF3
RF4
+------------------------PhysicalCteConsumer ( cteId=CTEId#0 ) apply RFs: RF3
RF4 RF6
----------------------PhysicalProject
------------------------PhysicalOlapScan[store] apply RFs: RF5
------------------PhysicalProject
diff --git a/regression-test/data/shape_check/tpcds_sf10t_orc/shape/query2.out
b/regression-test/data/shape_check/tpcds_sf10t_orc/shape/query2.out
index 0ffcc732cad..d502c77222b 100644
--- a/regression-test/data/shape_check/tpcds_sf10t_orc/shape/query2.out
+++ b/regression-test/data/shape_check/tpcds_sf10t_orc/shape/query2.out
@@ -21,18 +21,18 @@ PhysicalCteAnchor ( cteId=CTEId#1 )
------PhysicalDistribute[DistributionSpecGather]
--------PhysicalQuickSort[LOCAL_SORT]
----------PhysicalProject
-------------hashJoin[INNER_JOIN broadcast] hashCondition=((date_dim.d_week_seq
= d_week_seq2)) otherCondition=() build RFs:RF2 d_week_seq->[d_week_seq]
+------------hashJoin[INNER_JOIN broadcast] hashCondition=((date_dim.d_week_seq
= d_week_seq2)) otherCondition=() build RFs:RF3 d_week_seq->[d_week_seq]
--------------PhysicalProject
-----------------hashJoin[INNER_JOIN broadcast]
hashCondition=((expr_cast(d_week_seq1 as BIGINT) = expr_(cast(d_week_seq2 as
BIGINT) - 53))) otherCondition=()
+----------------hashJoin[INNER_JOIN broadcast]
hashCondition=((expr_cast(d_week_seq1 as BIGINT) = expr_(cast(d_week_seq2 as
BIGINT) - 53))) otherCondition=() build RFs:RF2 expr_(cast(d_week_seq2 as
BIGINT) - 53)->[cast(d_week_seq as BIGINT)]
------------------PhysicalProject
--------------------hashJoin[INNER_JOIN shuffle]
hashCondition=((date_dim.d_week_seq = d_week_seq1)) otherCondition=() build
RFs:RF1 d_week_seq->[d_week_seq]
----------------------PhysicalProject
-------------------------PhysicalCteConsumer ( cteId=CTEId#1 ) apply RFs: RF1
+------------------------PhysicalCteConsumer ( cteId=CTEId#1 ) apply RFs: RF1
RF2
----------------------PhysicalProject
------------------------filter((date_dim.d_year = 1998))
--------------------------PhysicalOlapScan[date_dim]
------------------PhysicalProject
---------------------PhysicalCteConsumer ( cteId=CTEId#1 ) apply RFs: RF2
+--------------------PhysicalCteConsumer ( cteId=CTEId#1 ) apply RFs: RF3
--------------PhysicalProject
----------------filter((date_dim.d_year = 1999))
------------------PhysicalOlapScan[date_dim]
diff --git a/regression-test/data/shape_check/tpcds_sf10t_orc/shape/query59.out
b/regression-test/data/shape_check/tpcds_sf10t_orc/shape/query59.out
index 67fb3df373c..389edb688c1 100644
--- a/regression-test/data/shape_check/tpcds_sf10t_orc/shape/query59.out
+++ b/regression-test/data/shape_check/tpcds_sf10t_orc/shape/query59.out
@@ -16,13 +16,13 @@ PhysicalCteAnchor ( cteId=CTEId#0 )
------PhysicalDistribute[DistributionSpecGather]
--------PhysicalTopN[LOCAL_SORT]
----------PhysicalProject
-------------hashJoin[INNER_JOIN broadcast] hashCondition=((d.d_week_seq =
d_week_seq1)) otherCondition=() build RFs:RF5 d_week_seq->[d_week_seq]
+------------hashJoin[INNER_JOIN broadcast] hashCondition=((d.d_week_seq =
d_week_seq1)) otherCondition=() build RFs:RF6 d_week_seq->[d_week_seq]
--------------PhysicalProject
-----------------hashJoin[INNER_JOIN shuffle]
hashCondition=((expr_cast(d_week_seq1 as BIGINT) = expr_(cast(d_week_seq2 as
BIGINT) - 52)) and (y.s_store_id1 = x.s_store_id2)) otherCondition=() build
RFs:RF4 s_store_id2->[s_store_id]
+----------------hashJoin[INNER_JOIN shuffle]
hashCondition=((expr_cast(d_week_seq1 as BIGINT) = expr_(cast(d_week_seq2 as
BIGINT) - 52)) and (y.s_store_id1 = x.s_store_id2)) otherCondition=() build
RFs:RF4 s_store_id2->[s_store_id];RF5 expr_(cast(d_week_seq2 as BIGINT) -
52)->[cast(d_week_seq as BIGINT)]
------------------PhysicalProject
--------------------hashJoin[INNER_JOIN shuffle]
hashCondition=((wss.ss_store_sk = store.s_store_sk)) otherCondition=() build
RFs:RF3 s_store_sk->[ss_store_sk]
----------------------PhysicalProject
-------------------------PhysicalCteConsumer ( cteId=CTEId#0 ) apply RFs: RF3
RF5
+------------------------PhysicalCteConsumer ( cteId=CTEId#0 ) apply RFs: RF3
RF5 RF6
----------------------PhysicalProject
------------------------PhysicalOlapScan[store] apply RFs: RF4
------------------PhysicalProject
diff --git
a/regression-test/suites/shape_check/tpcds_sf1000/shape/query54.groovy
b/regression-test/suites/shape_check/tpcds_sf1000/shape/query54.groovy
index 6918f70d5ca..ce8295e9299 100644
--- a/regression-test/suites/shape_check/tpcds_sf1000/shape/query54.groovy
+++ b/regression-test/suites/shape_check/tpcds_sf1000/shape/query54.groovy
@@ -32,7 +32,7 @@ suite("query54") {
sql 'set forbid_unknown_col_stats=true'
sql 'set enable_nereids_timeout = false'
sql 'set enable_runtime_filter_prune=false'
- sql 'set runtime_filter_type=8'
+ sql 'set runtime_filter_type=12'
sql 'set dump_nereids_memo=false'
sql "set disable_nereids_rules=PRUNE_EMPTY_PARTITION"
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]