This is an automated email from the ASF dual-hosted git repository.

kxiao pushed a commit to branch branch-2.0
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/branch-2.0 by this push:
     new af80b2d78a0 [pick](nereids) rf generater skips null-safe-euqal pick 
#29726 (#29807)
af80b2d78a0 is described below

commit af80b2d78a0c6e677dfd9bad6d5fd98d75028bf9
Author: minghong <engle...@gmail.com>
AuthorDate: Wed Jan 10 23:29:49 2024 +0800

    [pick](nereids) rf generater skips null-safe-euqal pick #29726 (#29807)
---
 .../processor/post/RuntimeFilterGenerator.java     | 30 ++++++++++++----------
 1 file changed, 16 insertions(+), 14 deletions(-)

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 de13b7adb70..ce4b0f522b3 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
@@ -281,21 +281,23 @@ public class RuntimeFilterGenerator extends 
PlanPostProcessor {
         List<TRuntimeFilterType> legalTypes = 
Arrays.stream(TRuntimeFilterType.values())
                 .filter(type -> (type.getValue() & 
ctx.getSessionVariable().getRuntimeFilterType()) > 0)
                 .collect(Collectors.toList());
-        List<EqualTo> hashJoinConjuncts = join.getEqualToConjuncts();
+        List<Expression> hashJoinConjuncts = 
join.getHashJoinConjuncts().stream().collect(Collectors.toList());
         for (int i = 0; i < hashJoinConjuncts.size(); i++) {
-            EqualTo equalTo = ((EqualTo) JoinUtils.swapEqualToForChildrenOrder(
-                    hashJoinConjuncts.get(i), join.left().getOutputSet()));
-            for (TRuntimeFilterType type : legalTypes) {
-                //bitmap rf is generated by nested loop join.
-                if (type == TRuntimeFilterType.BITMAP) {
-                    continue;
-                }
-                if (join.left() instanceof PhysicalUnion
-                        || join.left() instanceof PhysicalIntersect
-                        || join.left() instanceof PhysicalExcept) {
-                    doPushDownIntoSetOperation(join, ctx, equalTo, type, i);
-                } else {
-                    doPushDownBasic(join, context, ctx, equalTo, type, i);
+            if (hashJoinConjuncts.get(i) instanceof EqualTo) {
+                EqualTo equalTo = ((EqualTo) 
JoinUtils.swapEqualToForChildrenOrder(
+                        (EqualTo) hashJoinConjuncts.get(i), 
join.left().getOutputSet()));
+                for (TRuntimeFilterType type : legalTypes) {
+                    //bitmap rf is generated by nested loop join.
+                    if (type == TRuntimeFilterType.BITMAP) {
+                        continue;
+                    }
+                    if (join.left() instanceof PhysicalUnion
+                            || join.left() instanceof PhysicalIntersect
+                            || join.left() instanceof PhysicalExcept) {
+                        doPushDownIntoSetOperation(join, ctx, equalTo, type, 
i);
+                    } else {
+                        doPushDownBasic(join, context, ctx, equalTo, type, i);
+                    }
                 }
             }
         }


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

Reply via email to