[feature](Nereids): convert rightSemi to leftSemi for matching more rule. (#18648)

This commit is contained in:
jakevin
2023-04-14 11:20:22 +08:00
committed by GitHub
parent e6b0e05840
commit 008ae4984b
3 changed files with 6 additions and 5 deletions

View File

@ -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(),

View File

@ -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";

View File

@ -124,9 +124,9 @@ class ReorderJoinTest implements MemoPatternMatchSupported {
PlanChecker.from(MemoTestUtils.createConnectContext(), plan2)
.rewrite()
.matchesFromRoot(
rightSemiLogicalJoin(
logicalProject(logicalOlapScan()),
innerLogicalJoin()
innerLogicalJoin(
leftSemiLogicalJoin(),
logicalOlapScan()
)
);