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