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]

Reply via email to