This is an automated email from the ASF dual-hosted git repository.
yiguolei pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/master by this push:
new c0b937b0afb [fix](nereids)reject nse-rf for nested loop outer join
#33122
c0b937b0afb is described below
commit c0b937b0afba2ef2c91fb33358a7af175dcee340
Author: minghong <[email protected]>
AuthorDate: Fri Apr 5 08:01:13 2024 +0800
[fix](nereids)reject nse-rf for nested loop outer join #33122
---
.../trees/plans/physical/PhysicalNestedLoopJoin.java | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalNestedLoopJoin.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalNestedLoopJoin.java
index b8e5c17e034..c3c4819ca97 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalNestedLoopJoin.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalNestedLoopJoin.java
@@ -17,12 +17,16 @@
package org.apache.doris.nereids.trees.plans.physical;
+import org.apache.doris.common.IdGenerator;
+import org.apache.doris.nereids.CascadesContext;
import org.apache.doris.nereids.hint.DistributeHint;
import org.apache.doris.nereids.memo.GroupExpression;
import org.apache.doris.nereids.properties.LogicalProperties;
import org.apache.doris.nereids.properties.PhysicalProperties;
+import org.apache.doris.nereids.trees.expressions.EqualPredicate;
import org.apache.doris.nereids.trees.expressions.Expression;
import org.apache.doris.nereids.trees.expressions.MarkJoinSlotReference;
+import org.apache.doris.nereids.trees.expressions.NullSafeEqual;
import org.apache.doris.nereids.trees.expressions.Slot;
import org.apache.doris.nereids.trees.plans.DistributeType;
import org.apache.doris.nereids.trees.plans.JoinType;
@@ -31,7 +35,9 @@ import org.apache.doris.nereids.trees.plans.PlanType;
import org.apache.doris.nereids.trees.plans.visitor.PlanVisitor;
import org.apache.doris.nereids.util.ExpressionUtils;
import org.apache.doris.nereids.util.MutableState;
+import org.apache.doris.planner.RuntimeFilterId;
import org.apache.doris.statistics.Statistics;
+import org.apache.doris.thrift.TRuntimeFilterType;
import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableSet;
@@ -238,4 +244,18 @@ public class PhysicalNestedLoopJoin<
hashJoinConjuncts, otherJoinConjuncts, markJoinConjuncts,
markJoinSlotReference, groupExpression,
null, physicalProperties, statistics, left(), right());
}
+
+ @Override
+ public boolean pushDownRuntimeFilter(CascadesContext context,
IdGenerator<RuntimeFilterId> generator,
+ AbstractPhysicalJoin<?, ?>
builderNode, Expression srcExpr,
+ Expression probeExpr,
TRuntimeFilterType type, long buildSideNdv,
+ int exprOrder) {
+ EqualPredicate equal = (EqualPredicate)
builderNode.getHashJoinConjuncts().get(exprOrder);
+ if (equal instanceof NullSafeEqual && this.joinType.isOuterJoin()) {
+ return false;
+ }
+
+ return super.pushDownRuntimeFilter(context, generator, builderNode,
srcExpr, probeExpr, type, buildSideNdv,
+ exprOrder);
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]