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

morrysnow 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 cbadbecd9a [fix](Nereids) anti join could not be reorder (#12827)
cbadbecd9a is described below

commit cbadbecd9a401213e82fc753a23c6c90b80333f4
Author: jakevin <[email protected]>
AuthorDate: Thu Sep 22 09:19:12 2022 +0800

    [fix](Nereids) anti join could not be reorder (#12827)
---
 .../nereids/rules/exploration/join/SemiJoinLogicalJoinTranspose.java | 5 ++++-
 .../rules/exploration/join/SemiJoinLogicalJoinTransposeProject.java  | 5 ++++-
 2 files changed, 8 insertions(+), 2 deletions(-)

diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/exploration/join/SemiJoinLogicalJoinTranspose.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/exploration/join/SemiJoinLogicalJoinTranspose.java
index b9ebadfae1..890066f3f6 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/exploration/join/SemiJoinLogicalJoinTranspose.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/exploration/join/SemiJoinLogicalJoinTranspose.java
@@ -23,6 +23,7 @@ import 
org.apache.doris.nereids.rules.exploration.OneExplorationRuleFactory;
 import org.apache.doris.nereids.trees.expressions.Expression;
 import org.apache.doris.nereids.trees.expressions.Slot;
 import org.apache.doris.nereids.trees.plans.GroupPlan;
+import org.apache.doris.nereids.trees.plans.JoinType;
 import org.apache.doris.nereids.trees.plans.logical.LogicalJoin;
 import org.apache.doris.nereids.util.ExpressionUtils;
 
@@ -57,7 +58,9 @@ public class SemiJoinLogicalJoinTranspose extends 
OneExplorationRuleFactory {
 
     @Override
     public Rule build() {
-        return leftSemiLogicalJoin(logicalJoin(), group())
+        return logicalJoin(logicalJoin(), group())
+                .when(topJoin -> topJoin.getJoinType() == 
JoinType.LEFT_SEMI_JOIN
+                        || topJoin.getJoinType() == JoinType.LEFT_ANTI_JOIN)
                 .whenNot(topJoin -> 
topJoin.left().getJoinType().isSemiOrAntiJoin())
                 .when(this::conditionChecker)
                 .then(topSemiJoin -> {
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/exploration/join/SemiJoinLogicalJoinTransposeProject.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/exploration/join/SemiJoinLogicalJoinTransposeProject.java
index 183a1218d1..00e8fc949c 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/exploration/join/SemiJoinLogicalJoinTransposeProject.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/exploration/join/SemiJoinLogicalJoinTransposeProject.java
@@ -23,6 +23,7 @@ import 
org.apache.doris.nereids.rules.exploration.OneExplorationRuleFactory;
 import org.apache.doris.nereids.trees.expressions.Expression;
 import org.apache.doris.nereids.trees.expressions.Slot;
 import org.apache.doris.nereids.trees.plans.GroupPlan;
+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.nereids.trees.plans.logical.LogicalProject;
@@ -59,7 +60,9 @@ public class SemiJoinLogicalJoinTransposeProject extends 
OneExplorationRuleFacto
 
     @Override
     public Rule build() {
-        return leftSemiLogicalJoin(logicalProject(logicalJoin()), group())
+        return logicalJoin(logicalProject(logicalJoin()), group())
+                .when(topJoin -> topJoin.getJoinType() == 
JoinType.LEFT_SEMI_JOIN
+                        || topJoin.getJoinType() == JoinType.LEFT_ANTI_JOIN)
                 .whenNot(topJoin -> 
topJoin.left().child().getJoinType().isSemiOrAntiJoin())
                 .when(this::conditionChecker)
                 .then(topSemiJoin -> {


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to