From 008ae4984bc4a62ca6680f0211effd211648cfa8 Mon Sep 17 00:00:00 2001 From: jakevin Date: Fri, 14 Apr 2023 11:20:22 +0800 Subject: [PATCH] [feature](Nereids): convert rightSemi to leftSemi for matching more rule. (#18648) --- .../apache/doris/nereids/jobs/batch/NereidsRewriter.java | 3 ++- .../apache/doris/nereids/rules/mv/SelectMvIndexTest.java | 2 +- .../nereids/rules/rewrite/logical/ReorderJoinTest.java | 6 +++--- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/jobs/batch/NereidsRewriter.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/jobs/batch/NereidsRewriter.java index f6424068d7..fb1769f7c0 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/jobs/batch/NereidsRewriter.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/jobs/batch/NereidsRewriter.java @@ -69,6 +69,7 @@ import org.apache.doris.nereids.rules.rewrite.logical.PushdownLimit; import org.apache.doris.nereids.rules.rewrite.logical.ReorderJoin; import org.apache.doris.nereids.rules.rewrite.logical.SemiJoinAggTranspose; import org.apache.doris.nereids.rules.rewrite.logical.SemiJoinAggTransposeProject; +import org.apache.doris.nereids.rules.rewrite.logical.SemiJoinCommute; import org.apache.doris.nereids.rules.rewrite.logical.SemiJoinLogicalJoinTranspose; import org.apache.doris.nereids.rules.rewrite.logical.SemiJoinLogicalJoinTransposeProject; import org.apache.doris.nereids.rules.rewrite.logical.SplitLimit; @@ -181,7 +182,7 @@ public class NereidsRewriter extends BatchRewriteJob { // pushdown SEMI Join bottomUp( - // new SemiJoinCommute(), + new SemiJoinCommute(), new SemiJoinLogicalJoinTranspose(), new SemiJoinLogicalJoinTransposeProject(), new SemiJoinAggTranspose(), diff --git a/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/mv/SelectMvIndexTest.java b/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/mv/SelectMvIndexTest.java index 29135ced1c..48306242dd 100644 --- a/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/mv/SelectMvIndexTest.java +++ b/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/mv/SelectMvIndexTest.java @@ -52,7 +52,7 @@ import java.util.stream.Collectors; /** * Tests ported from {@link org.apache.doris.planner.MaterializedViewFunctionTest} */ -public class SelectMvIndexTest extends BaseMaterializedIndexSelectTest implements MemoPatternMatchSupported { +class SelectMvIndexTest extends BaseMaterializedIndexSelectTest implements MemoPatternMatchSupported { private static final String EMPS_TABLE_NAME = "emps"; private static final String EMPS_MV_NAME = "emps_mv"; diff --git a/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/rewrite/logical/ReorderJoinTest.java b/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/rewrite/logical/ReorderJoinTest.java index 329701ef6b..5a937b8211 100644 --- a/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/rewrite/logical/ReorderJoinTest.java +++ b/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/rewrite/logical/ReorderJoinTest.java @@ -124,9 +124,9 @@ class ReorderJoinTest implements MemoPatternMatchSupported { PlanChecker.from(MemoTestUtils.createConnectContext(), plan2) .rewrite() .matchesFromRoot( - rightSemiLogicalJoin( - logicalProject(logicalOlapScan()), - innerLogicalJoin() + innerLogicalJoin( + leftSemiLogicalJoin(), + logicalOlapScan() ) );