This is an automated email from the ASF dual-hosted git repository. englefly 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 e2afa07271 [fix](nereids) disable_join_reorder does not work with semi/anti #18898 e2afa07271 is described below commit e2afa072716a8141004c4fc04bb96292fc161b37 Author: minghong <engle...@gmail.com> AuthorDate: Tue Apr 25 10:57:40 2023 +0800 [fix](nereids) disable_join_reorder does not work with semi/anti #18898 semi/anti push rules should not work if disable_join_reorder = true; --- .../doris/nereids/rules/rewrite/logical/SemiJoinAggTranspose.java | 2 ++ .../nereids/rules/rewrite/logical/SemiJoinAggTransposeProject.java | 2 ++ .../org/apache/doris/nereids/rules/rewrite/logical/SemiJoinCommute.java | 2 ++ .../nereids/rules/rewrite/logical/SemiJoinLogicalJoinTranspose.java | 2 ++ .../rules/rewrite/logical/SemiJoinLogicalJoinTransposeProject.java | 2 ++ 5 files changed, 10 insertions(+) diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/logical/SemiJoinAggTranspose.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/logical/SemiJoinAggTranspose.java index ed8f743629..92a5a9e15a 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/logical/SemiJoinAggTranspose.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/logical/SemiJoinAggTranspose.java @@ -24,6 +24,7 @@ import org.apache.doris.nereids.trees.expressions.Slot; import org.apache.doris.nereids.trees.plans.Plan; import org.apache.doris.nereids.trees.plans.logical.LogicalAggregate; import org.apache.doris.nereids.trees.plans.logical.LogicalJoin; +import org.apache.doris.qe.ConnectContext; import java.util.Set; @@ -34,6 +35,7 @@ public class SemiJoinAggTranspose extends OneRewriteRuleFactory { @Override public Rule build() { return logicalJoin(logicalAggregate(), any()) + .whenNot(join -> ConnectContext.get().getSessionVariable().isDisableJoinReorder()) .when(join -> join.getJoinType().isLeftSemiOrAntiJoin()) .then(join -> { LogicalAggregate<Plan> aggregate = join.left(); diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/logical/SemiJoinAggTransposeProject.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/logical/SemiJoinAggTransposeProject.java index 838a41cdc3..64c234c0f6 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/logical/SemiJoinAggTransposeProject.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/logical/SemiJoinAggTransposeProject.java @@ -24,6 +24,7 @@ import org.apache.doris.nereids.trees.expressions.Slot; import org.apache.doris.nereids.trees.plans.Plan; import org.apache.doris.nereids.trees.plans.logical.LogicalAggregate; import org.apache.doris.nereids.trees.plans.logical.LogicalProject; +import org.apache.doris.qe.ConnectContext; /** * Pushdown semi-join through agg @@ -32,6 +33,7 @@ public class SemiJoinAggTransposeProject extends OneRewriteRuleFactory { @Override public Rule build() { return logicalJoin(logicalProject(logicalAggregate()), any()) + .whenNot(join -> ConnectContext.get().getSessionVariable().isDisableJoinReorder()) .when(join -> join.getJoinType().isLeftSemiOrAntiJoin()) .when(join -> join.left().isAllSlots()) .when(join -> join.left().getProjects().stream().allMatch(n -> n instanceof Slot)) diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/logical/SemiJoinCommute.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/logical/SemiJoinCommute.java index 176fe7190d..61ccc57bf9 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/logical/SemiJoinCommute.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/logical/SemiJoinCommute.java @@ -21,6 +21,7 @@ import org.apache.doris.nereids.rules.Rule; import org.apache.doris.nereids.rules.RuleType; import org.apache.doris.nereids.rules.rewrite.OneRewriteRuleFactory; import org.apache.doris.nereids.trees.plans.logical.LogicalJoin; +import org.apache.doris.qe.ConnectContext; /** * RightSemiJoin -> LeftSemiJoin @@ -30,6 +31,7 @@ public class SemiJoinCommute extends OneRewriteRuleFactory { public Rule build() { return logicalJoin() .when(join -> join.getJoinType().isRightSemiOrAntiJoin()) + .whenNot(join -> ConnectContext.get().getSessionVariable().isDisableJoinReorder()) .whenNot(LogicalJoin::hasJoinHint) .whenNot(LogicalJoin::isMarkJoin) .then(join -> join.withTypeChildren(join.getJoinType().swap(), join.right(), join.left())) diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/logical/SemiJoinLogicalJoinTranspose.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/logical/SemiJoinLogicalJoinTranspose.java index f795b5632f..322fca06d1 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/logical/SemiJoinLogicalJoinTranspose.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/logical/SemiJoinLogicalJoinTranspose.java @@ -25,6 +25,7 @@ import org.apache.doris.nereids.trees.expressions.ExprId; import org.apache.doris.nereids.trees.plans.JoinType; import org.apache.doris.nereids.trees.plans.Plan; import org.apache.doris.nereids.trees.plans.logical.LogicalJoin; +import org.apache.doris.qe.ConnectContext; import com.google.common.base.Preconditions; @@ -40,6 +41,7 @@ public class SemiJoinLogicalJoinTranspose extends OneRewriteRuleFactory { @Override public Rule build() { return logicalJoin(logicalJoin(), any()) + .whenNot(join -> ConnectContext.get().getSessionVariable().isDisableJoinReorder()) .when(topJoin -> (topJoin.getJoinType().isLeftSemiOrAntiJoin() && (topJoin.left().getJoinType().isInnerJoin() || topJoin.left().getJoinType().isLeftOuterJoin() diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/logical/SemiJoinLogicalJoinTransposeProject.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/logical/SemiJoinLogicalJoinTransposeProject.java index 94e3273f08..299e5323b0 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/logical/SemiJoinLogicalJoinTransposeProject.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/logical/SemiJoinLogicalJoinTransposeProject.java @@ -27,6 +27,7 @@ import org.apache.doris.nereids.trees.plans.Plan; import org.apache.doris.nereids.trees.plans.logical.LogicalJoin; import org.apache.doris.nereids.trees.plans.logical.LogicalProject; import org.apache.doris.nereids.util.Utils; +import org.apache.doris.qe.ConnectContext; import com.google.common.base.Preconditions; @@ -42,6 +43,7 @@ public class SemiJoinLogicalJoinTransposeProject extends OneRewriteRuleFactory { @Override public Rule build() { return logicalJoin(logicalProject(logicalJoin()), any()) + .whenNot(join -> ConnectContext.get().getSessionVariable().isDisableJoinReorder()) .when(topJoin -> (topJoin.getJoinType().isLeftSemiOrAntiJoin() && (topJoin.left().child().getJoinType().isInnerJoin() || topJoin.left().child().getJoinType().isLeftOuterJoin() --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org