This is an automated email from the ASF dual-hosted git repository.
englefly pushed a commit to branch branch-2.1
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-2.1 by this push:
new 81162fb7f43 [fix](nereids)BE cannot find min-max runtime filter on
nested loop join node-pick #32886 #32917
81162fb7f43 is described below
commit 81162fb7f43ac5f6ad85aca53fd1638659232469
Author: minghong <[email protected]>
AuthorDate: Wed Mar 27 19:55:43 2024 +0800
[fix](nereids)BE cannot find min-max runtime filter on nested loop join
node-pick #32886 #32917
---
.../doris/nereids/glue/translator/RuntimeFilterTranslator.java | 10 ++++++++--
.../doris/nereids/processor/post/RuntimeFilterGenerator.java | 3 ++-
2 files changed, 10 insertions(+), 3 deletions(-)
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/glue/translator/RuntimeFilterTranslator.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/glue/translator/RuntimeFilterTranslator.java
index 787a2bd8181..e5d695bea83 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/glue/translator/RuntimeFilterTranslator.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/glue/translator/RuntimeFilterTranslator.java
@@ -146,8 +146,14 @@ public class RuntimeFilterTranslator {
if (node instanceof HashJoinNode) {
origFilter.setIsBroadcast(((HashJoinNode)
node).getDistributionMode() == DistributionMode.BROADCAST);
} else {
- //bitmap rf requires isBroadCast=false, it always requires
merge filter
- origFilter.setIsBroadcast(false);
+ // nest loop join
+ if (filter.getType() == TRuntimeFilterType.BITMAP) {
+ //bitmap rf requires isBroadCast=false, it always requires
merge filter
+ origFilter.setIsBroadcast(false);
+ } else {
+ // min-max rf
+ origFilter.setIsBroadcast(true);
+ }
}
boolean isLocalTarget = scanNodeList.stream().allMatch(e ->
!(e instanceof CTEScanNode) &&
e.getFragmentId().equals(node.getFragmentId()));
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/processor/post/RuntimeFilterGenerator.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/processor/post/RuntimeFilterGenerator.java
index 55d990365a2..8bdb6c59573 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/processor/post/RuntimeFilterGenerator.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/processor/post/RuntimeFilterGenerator.java
@@ -447,7 +447,8 @@ public class RuntimeFilterGenerator extends
PlanPostProcessor {
}
RuntimeFilterContext ctx = context.getRuntimeFilterContext();
- if ((ctx.getSessionVariable().getRuntimeFilterType() &
TRuntimeFilterType.BITMAP.getValue()) != 0) {
+ if ((ctx.getSessionVariable().getRuntimeFilterType() &
TRuntimeFilterType.BITMAP.getValue()) != 0
+ &&
!ctx.getSessionVariable().isIgnoreStorageDataDistribution()) {
generateBitMapRuntimeFilterForNLJ(join, ctx);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]