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 <[email protected]>
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: [email protected]
For additional commands, e-mail: [email protected]