[minor](Nereids): unify name about Transpose. (#19662)
This commit is contained in:
@ -67,13 +67,13 @@ import org.apache.doris.nereids.rules.rewrite.logical.PushFilterInsideJoin;
|
||||
import org.apache.doris.nereids.rules.rewrite.logical.PushdownFilterThroughProject;
|
||||
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.SimplifyAggGroupBy;
|
||||
import org.apache.doris.nereids.rules.rewrite.logical.SplitLimit;
|
||||
import org.apache.doris.nereids.rules.rewrite.logical.TransposeSemiJoinAgg;
|
||||
import org.apache.doris.nereids.rules.rewrite.logical.TransposeSemiJoinAggProject;
|
||||
import org.apache.doris.nereids.rules.rewrite.logical.TransposeSemiJoinLogicalJoin;
|
||||
import org.apache.doris.nereids.rules.rewrite.logical.TransposeSemiJoinLogicalJoinProject;
|
||||
|
||||
import com.google.common.collect.ImmutableList;
|
||||
|
||||
@ -183,10 +183,10 @@ public class NereidsRewriter extends BatchRewriteJob {
|
||||
// pushdown SEMI Join
|
||||
bottomUp(
|
||||
new SemiJoinCommute(),
|
||||
new SemiJoinLogicalJoinTranspose(),
|
||||
new SemiJoinLogicalJoinTransposeProject(),
|
||||
new SemiJoinAggTranspose(),
|
||||
new SemiJoinAggTransposeProject()
|
||||
new TransposeSemiJoinLogicalJoin(),
|
||||
new TransposeSemiJoinLogicalJoinProject(),
|
||||
new TransposeSemiJoinAgg(),
|
||||
new TransposeSemiJoinAggProject()
|
||||
),
|
||||
|
||||
topDown(
|
||||
|
||||
@ -17,10 +17,10 @@
|
||||
|
||||
package org.apache.doris.nereids.rules;
|
||||
|
||||
import org.apache.doris.nereids.rules.exploration.AggSemiJoinTranspose;
|
||||
import org.apache.doris.nereids.rules.exploration.AggSemiJoinTransposeProject;
|
||||
import org.apache.doris.nereids.rules.exploration.MergeProjectsCBO;
|
||||
import org.apache.doris.nereids.rules.exploration.PushdownFilterThroughProjectCBO;
|
||||
import org.apache.doris.nereids.rules.exploration.TransposeAggSemiJoin;
|
||||
import org.apache.doris.nereids.rules.exploration.TransposeAggSemiJoinProject;
|
||||
import org.apache.doris.nereids.rules.exploration.join.InnerJoinLAsscom;
|
||||
import org.apache.doris.nereids.rules.exploration.join.InnerJoinLAsscomProject;
|
||||
import org.apache.doris.nereids.rules.exploration.join.InnerJoinLeftAssociate;
|
||||
@ -101,8 +101,8 @@ public class RuleSet {
|
||||
.add(LogicalJoinSemiJoinTransposeProject.INSTANCE)
|
||||
.add(PushdownProjectThroughInnerJoin.INSTANCE)
|
||||
.add(PushdownProjectThroughSemiJoin.INSTANCE)
|
||||
.add(AggSemiJoinTranspose.INSTANCE)
|
||||
.add(AggSemiJoinTransposeProject.INSTANCE)
|
||||
.add(TransposeAggSemiJoin.INSTANCE)
|
||||
.add(TransposeAggSemiJoinProject.INSTANCE)
|
||||
.build();
|
||||
|
||||
public static final List<RuleFactory> PUSH_DOWN_FILTERS = ImmutableList.of(
|
||||
|
||||
@ -137,11 +137,11 @@ public enum RuleType {
|
||||
PUSHDOWN_FILTER_THROUGH_SET_OPERATION(RuleTypeClass.REWRITE),
|
||||
COLUMN_PRUNING(RuleTypeClass.REWRITE),
|
||||
|
||||
LOGICAL_SEMI_JOIN_LOGICAL_JOIN_TRANSPOSE(RuleTypeClass.REWRITE),
|
||||
LOGICAL_SEMI_JOIN_LOGICAL_JOIN_TRANSPOSE_PROJECT(RuleTypeClass.REWRITE),
|
||||
TRANSPOSE_LOGICAL_SEMI_JOIN_LOGICAL_JOIN(RuleTypeClass.REWRITE),
|
||||
TRANSPOSE_LOGICAL_SEMI_JOIN_LOGICAL_JOIN_PROJECT(RuleTypeClass.REWRITE),
|
||||
LOGICAL_SEMI_JOIN_COMMUTE(RuleTypeClass.REWRITE),
|
||||
LOGICAL_SEMI_JOIN_AGG_TRANSPOSE(RuleTypeClass.REWRITE),
|
||||
LOGICAL_SEMI_JOIN_AGG_TRANSPOSE_PROJECT(RuleTypeClass.REWRITE),
|
||||
TRANSPOSE_LOGICAL_SEMI_JOIN_AGG(RuleTypeClass.REWRITE),
|
||||
TRANSPOSE_LOGICAL_SEMI_JOIN_AGG_PROJECT(RuleTypeClass.REWRITE),
|
||||
|
||||
// expression of plan rewrite
|
||||
REWRITE_ONE_ROW_RELATION_EXPRESSION(RuleTypeClass.REWRITE),
|
||||
@ -241,8 +241,9 @@ public enum RuleType {
|
||||
LOGICAL_INNER_JOIN_LEFT_ASSOCIATIVE_PROJECT(RuleTypeClass.EXPLORATION),
|
||||
LOGICAL_INNER_JOIN_RIGHT_ASSOCIATIVE(RuleTypeClass.EXPLORATION),
|
||||
LOGICAL_INNER_JOIN_RIGHT_ASSOCIATIVE_PROJECT(RuleTypeClass.EXPLORATION),
|
||||
LOGICAL_AGG_SEMI_JOIN_TRANSPOSE(RuleTypeClass.EXPLORATION),
|
||||
LOGICAL_AGG_SEMI_JOIN_TRANSPOSE_PROJECT(RuleTypeClass.EXPLORATION),
|
||||
TRANSPOSE_LOGICAL_AGG_SEMI_JOIN(RuleTypeClass.EXPLORATION),
|
||||
TRANSPOSE_LOGICAL_AGG_SEMI_JOIN_PROJECT(RuleTypeClass.EXPLORATION),
|
||||
TRANSPOSE_LOGICAL_JOIN_UNION(RuleTypeClass.EXPLORATION),
|
||||
PUSH_DOWN_PROJECT_THROUGH_SEMI_JOIN(RuleTypeClass.EXPLORATION),
|
||||
PUSH_DOWN_PROJECT_THROUGH_INNER_JOIN(RuleTypeClass.EXPLORATION),
|
||||
EAGER_COUNT(RuleTypeClass.EXPLORATION),
|
||||
|
||||
@ -19,10 +19,9 @@ package org.apache.doris.nereids.rules.analysis;
|
||||
|
||||
import org.apache.doris.nereids.rules.Rule;
|
||||
import org.apache.doris.nereids.rules.RuleType;
|
||||
import org.apache.doris.nereids.trees.expressions.Slot;
|
||||
import org.apache.doris.nereids.trees.plans.logical.LogicalProject;
|
||||
|
||||
import java.util.List;
|
||||
import com.google.common.collect.ImmutableList;
|
||||
|
||||
/**
|
||||
* Eliminate the logical sub query and alias node after analyze and before rewrite
|
||||
@ -34,10 +33,8 @@ public class LogicalSubQueryAliasToLogicalProject extends OneAnalysisRuleFactory
|
||||
@Override
|
||||
public Rule build() {
|
||||
return RuleType.LOGICAL_SUB_QUERY_ALIAS_TO_LOGICAL_PROJECT.build(
|
||||
logicalSubQueryAlias().then(alias -> {
|
||||
List<Slot> output = alias.getOutput();
|
||||
return new LogicalProject<>((List) output, alias.child());
|
||||
})
|
||||
logicalSubQueryAlias().then(
|
||||
alias -> new LogicalProject<>(ImmutableList.copyOf(alias.getOutput()), alias.child()))
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@ -19,15 +19,15 @@ package org.apache.doris.nereids.rules.exploration;
|
||||
|
||||
import org.apache.doris.nereids.rules.Rule;
|
||||
import org.apache.doris.nereids.rules.RuleType;
|
||||
import org.apache.doris.nereids.rules.rewrite.logical.SemiJoinAggTranspose;
|
||||
import org.apache.doris.nereids.rules.rewrite.logical.TransposeSemiJoinAgg;
|
||||
import org.apache.doris.nereids.trees.plans.GroupPlan;
|
||||
import org.apache.doris.nereids.trees.plans.logical.LogicalJoin;
|
||||
|
||||
/**
|
||||
* Pull up SemiJoin through Agg.
|
||||
*/
|
||||
public class AggSemiJoinTranspose extends OneExplorationRuleFactory {
|
||||
public static final AggSemiJoinTranspose INSTANCE = new AggSemiJoinTranspose();
|
||||
public class TransposeAggSemiJoin extends OneExplorationRuleFactory {
|
||||
public static final TransposeAggSemiJoin INSTANCE = new TransposeAggSemiJoin();
|
||||
|
||||
@Override
|
||||
public Rule build() {
|
||||
@ -35,11 +35,11 @@ public class AggSemiJoinTranspose extends OneExplorationRuleFactory {
|
||||
.when(agg -> agg.child().getJoinType().isLeftSemiOrAntiJoin())
|
||||
.then(agg -> {
|
||||
LogicalJoin<GroupPlan, GroupPlan> join = agg.child();
|
||||
if (!SemiJoinAggTranspose.canTranspose(agg, join)) {
|
||||
if (!TransposeSemiJoinAgg.canTranspose(agg, join)) {
|
||||
return null;
|
||||
}
|
||||
return join.withChildren(agg.withChildren(join.left()), join.right());
|
||||
})
|
||||
.toRule(RuleType.LOGICAL_AGG_SEMI_JOIN_TRANSPOSE);
|
||||
.toRule(RuleType.TRANSPOSE_LOGICAL_AGG_SEMI_JOIN);
|
||||
}
|
||||
}
|
||||
@ -19,7 +19,7 @@ package org.apache.doris.nereids.rules.exploration;
|
||||
|
||||
import org.apache.doris.nereids.rules.Rule;
|
||||
import org.apache.doris.nereids.rules.RuleType;
|
||||
import org.apache.doris.nereids.rules.rewrite.logical.SemiJoinAggTranspose;
|
||||
import org.apache.doris.nereids.rules.rewrite.logical.TransposeSemiJoinAgg;
|
||||
import org.apache.doris.nereids.trees.plans.GroupPlan;
|
||||
import org.apache.doris.nereids.trees.plans.logical.LogicalJoin;
|
||||
import org.apache.doris.nereids.trees.plans.logical.LogicalProject;
|
||||
@ -27,8 +27,8 @@ import org.apache.doris.nereids.trees.plans.logical.LogicalProject;
|
||||
/**
|
||||
* Pull up SemiJoin through Agg.
|
||||
*/
|
||||
public class AggSemiJoinTransposeProject extends OneExplorationRuleFactory {
|
||||
public static final AggSemiJoinTransposeProject INSTANCE = new AggSemiJoinTransposeProject();
|
||||
public class TransposeAggSemiJoinProject extends OneExplorationRuleFactory {
|
||||
public static final TransposeAggSemiJoinProject INSTANCE = new TransposeAggSemiJoinProject();
|
||||
|
||||
@Override
|
||||
public Rule build() {
|
||||
@ -37,11 +37,11 @@ public class AggSemiJoinTransposeProject extends OneExplorationRuleFactory {
|
||||
.then(agg -> {
|
||||
LogicalProject<LogicalJoin<GroupPlan, GroupPlan>> project = agg.child();
|
||||
LogicalJoin<GroupPlan, GroupPlan> join = project.child();
|
||||
if (!SemiJoinAggTranspose.canTranspose(agg, join)) {
|
||||
if (!TransposeSemiJoinAgg.canTranspose(agg, join)) {
|
||||
return null;
|
||||
}
|
||||
return join.withChildren(agg.withChildren(project.withChildren(join.left())), join.right());
|
||||
})
|
||||
.toRule(RuleType.LOGICAL_AGG_SEMI_JOIN_TRANSPOSE_PROJECT);
|
||||
.toRule(RuleType.TRANSPOSE_LOGICAL_AGG_SEMI_JOIN_PROJECT);
|
||||
}
|
||||
}
|
||||
@ -24,6 +24,8 @@ import org.apache.doris.nereids.trees.plans.algebra.SetOperation.Qualifier;
|
||||
import org.apache.doris.nereids.trees.plans.logical.LogicalAggregate;
|
||||
import org.apache.doris.nereids.trees.plans.logical.LogicalUnion;
|
||||
|
||||
import com.google.common.collect.ImmutableList;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
/**
|
||||
@ -34,7 +36,7 @@ public class BuildAggForUnion extends OneRewriteRuleFactory {
|
||||
public Rule build() {
|
||||
return logicalUnion().whenNot(LogicalUnion::hasBuildAgg).then(union -> {
|
||||
if (union.getQualifier() == Qualifier.DISTINCT) {
|
||||
return new LogicalAggregate(union.getOutputs(), union.getOutputs(),
|
||||
return new LogicalAggregate<>(ImmutableList.copyOf(union.getOutputs()), union.getOutputs(),
|
||||
true, Optional.empty(), union.withHasBuildAgg());
|
||||
}
|
||||
return union;
|
||||
|
||||
@ -31,7 +31,7 @@ import java.util.Set;
|
||||
/**
|
||||
* Pushdown semi-join through agg
|
||||
*/
|
||||
public class SemiJoinAggTranspose extends OneRewriteRuleFactory {
|
||||
public class TransposeSemiJoinAgg extends OneRewriteRuleFactory {
|
||||
@Override
|
||||
public Rule build() {
|
||||
return logicalJoin(logicalAggregate(), any())
|
||||
@ -43,7 +43,7 @@ public class SemiJoinAggTranspose extends OneRewriteRuleFactory {
|
||||
return null;
|
||||
}
|
||||
return aggregate.withChildren(join.withChildren(aggregate.child(), join.right()));
|
||||
}).toRule(RuleType.LOGICAL_SEMI_JOIN_AGG_TRANSPOSE);
|
||||
}).toRule(RuleType.TRANSPOSE_LOGICAL_SEMI_JOIN_AGG);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -29,7 +29,7 @@ import org.apache.doris.qe.ConnectContext;
|
||||
/**
|
||||
* Pushdown semi-join through agg
|
||||
*/
|
||||
public class SemiJoinAggTransposeProject extends OneRewriteRuleFactory {
|
||||
public class TransposeSemiJoinAggProject extends OneRewriteRuleFactory {
|
||||
@Override
|
||||
public Rule build() {
|
||||
return logicalJoin(logicalProject(logicalAggregate()), any())
|
||||
@ -40,11 +40,11 @@ public class SemiJoinAggTransposeProject extends OneRewriteRuleFactory {
|
||||
.then(join -> {
|
||||
LogicalProject<LogicalAggregate<Plan>> project = join.left();
|
||||
LogicalAggregate<Plan> aggregate = project.child();
|
||||
if (!SemiJoinAggTranspose.canTranspose(aggregate, join)) {
|
||||
if (!TransposeSemiJoinAgg.canTranspose(aggregate, join)) {
|
||||
return null;
|
||||
}
|
||||
Plan newPlan = aggregate.withChildren(join.withChildren(aggregate.child(), join.right()));
|
||||
return project.withChildren(newPlan);
|
||||
}).toRule(RuleType.LOGICAL_SEMI_JOIN_AGG_TRANSPOSE_PROJECT);
|
||||
}).toRule(RuleType.TRANSPOSE_LOGICAL_SEMI_JOIN_AGG_PROJECT);
|
||||
}
|
||||
}
|
||||
@ -20,7 +20,7 @@ package org.apache.doris.nereids.rules.rewrite.logical;
|
||||
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.rules.rewrite.logical.SemiJoinLogicalJoinTransposeProject.ContainsType;
|
||||
import org.apache.doris.nereids.rules.rewrite.logical.TransposeSemiJoinLogicalJoinProject.ContainsType;
|
||||
import org.apache.doris.nereids.trees.expressions.ExprId;
|
||||
import org.apache.doris.nereids.trees.plans.JoinType;
|
||||
import org.apache.doris.nereids.trees.plans.Plan;
|
||||
@ -35,7 +35,7 @@ import java.util.Set;
|
||||
* <li>SemiJoin(LogicalJoin(X, Y), Z) -> LogicalJoin(X, SemiJoin(Y, Z))
|
||||
* </ul>
|
||||
*/
|
||||
public class SemiJoinLogicalJoinTranspose extends OneRewriteRuleFactory {
|
||||
public class TransposeSemiJoinLogicalJoin extends OneRewriteRuleFactory {
|
||||
@Override
|
||||
public Rule build() {
|
||||
return logicalJoin(logicalJoin(), any())
|
||||
@ -53,7 +53,7 @@ public class SemiJoinLogicalJoinTranspose extends OneRewriteRuleFactory {
|
||||
Plan c = topSemiJoin.right();
|
||||
|
||||
Set<ExprId> conjunctsIds = topSemiJoin.getConditionExprId();
|
||||
ContainsType containsType = SemiJoinLogicalJoinTransposeProject.containsChildren(conjunctsIds,
|
||||
ContainsType containsType = TransposeSemiJoinLogicalJoinProject.containsChildren(conjunctsIds,
|
||||
a.getOutputExprIdSet(), b.getOutputExprIdSet());
|
||||
if (containsType == ContainsType.ALL) {
|
||||
return null;
|
||||
@ -87,6 +87,6 @@ public class SemiJoinLogicalJoinTranspose extends OneRewriteRuleFactory {
|
||||
Plan newBottomSemiJoin = topSemiJoin.withChildren(b, c);
|
||||
return bottomJoin.withChildren(a, newBottomSemiJoin);
|
||||
}
|
||||
}).toRule(RuleType.LOGICAL_SEMI_JOIN_LOGICAL_JOIN_TRANSPOSE);
|
||||
}).toRule(RuleType.TRANSPOSE_LOGICAL_SEMI_JOIN_LOGICAL_JOIN);
|
||||
}
|
||||
}
|
||||
@ -39,7 +39,7 @@ import java.util.Set;
|
||||
* <li>SemiJoin(LogicalJoin(X, Y), Z) -> LogicalJoin(X, SemiJoin(Y, Z))
|
||||
* </ul>
|
||||
*/
|
||||
public class SemiJoinLogicalJoinTransposeProject extends OneRewriteRuleFactory {
|
||||
public class TransposeSemiJoinLogicalJoinProject extends OneRewriteRuleFactory {
|
||||
@Override
|
||||
public Rule build() {
|
||||
return logicalJoin(logicalProject(logicalJoin()), any())
|
||||
@ -99,7 +99,7 @@ public class SemiJoinLogicalJoinTransposeProject extends OneRewriteRuleFactory {
|
||||
Plan newTopJoin = bottomJoin.withChildren(a, newBottomSemiJoin);
|
||||
return project.withChildren(newTopJoin);
|
||||
}
|
||||
}).toRule(RuleType.LOGICAL_SEMI_JOIN_LOGICAL_JOIN_TRANSPOSE_PROJECT);
|
||||
}).toRule(RuleType.TRANSPOSE_LOGICAL_SEMI_JOIN_LOGICAL_JOIN_PROJECT);
|
||||
}
|
||||
|
||||
enum ContainsType {
|
||||
@ -32,7 +32,7 @@ import org.apache.doris.nereids.util.PlanConstructor;
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
class AggSemiJoinTransposeTest implements MemoPatternMatchSupported {
|
||||
class TransposeAggSemiJoinTest implements MemoPatternMatchSupported {
|
||||
private final LogicalOlapScan scan1 = PlanConstructor.newLogicalOlapScan(0, "t1", 0);
|
||||
private final LogicalOlapScan scan2 = PlanConstructor.newLogicalOlapScan(1, "t2", 0);
|
||||
|
||||
@ -48,7 +48,7 @@ class AggSemiJoinTransposeTest implements MemoPatternMatchSupported {
|
||||
)
|
||||
.build();
|
||||
PlanChecker.from(MemoTestUtils.createConnectContext(), plan)
|
||||
.applyExploration(AggSemiJoinTranspose.INSTANCE.build())
|
||||
.applyExploration(TransposeAggSemiJoin.INSTANCE.build())
|
||||
.printlnExploration()
|
||||
.matchesExploration(
|
||||
leftSemiLogicalJoin(
|
||||
@ -30,7 +30,7 @@ import org.apache.doris.nereids.util.PlanConstructor;
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
class SemiJoinAggTransposeProjectTest implements MemoPatternMatchSupported {
|
||||
class TransposeSemiJoinAggProjectTest implements MemoPatternMatchSupported {
|
||||
private final LogicalOlapScan scan1 = PlanConstructor.newLogicalOlapScan(0, "t1", 0);
|
||||
private final LogicalOlapScan scan2 = PlanConstructor.newLogicalOlapScan(1, "t2", 0);
|
||||
|
||||
@ -42,7 +42,7 @@ class SemiJoinAggTransposeProjectTest implements MemoPatternMatchSupported {
|
||||
.join(scan2, JoinType.LEFT_SEMI_JOIN, Pair.of(0, 0))
|
||||
.build();
|
||||
PlanChecker.from(MemoTestUtils.createConnectContext(), plan)
|
||||
.applyTopDown(new SemiJoinAggTransposeProject())
|
||||
.applyTopDown(new TransposeSemiJoinAggProject())
|
||||
.printlnTree()
|
||||
.matchesFromRoot(
|
||||
logicalProject(
|
||||
@ -30,7 +30,7 @@ import org.apache.doris.nereids.util.PlanConstructor;
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
class SemiJoinAggTransposeTest implements MemoPatternMatchSupported {
|
||||
class TransposeSemiJoinAggTest implements MemoPatternMatchSupported {
|
||||
private final LogicalOlapScan scan1 = PlanConstructor.newLogicalOlapScan(0, "t1", 0);
|
||||
private final LogicalOlapScan scan2 = PlanConstructor.newLogicalOlapScan(1, "t2", 0);
|
||||
|
||||
@ -41,7 +41,7 @@ class SemiJoinAggTransposeTest implements MemoPatternMatchSupported {
|
||||
.join(scan2, JoinType.LEFT_SEMI_JOIN, Pair.of(0, 0))
|
||||
.build();
|
||||
PlanChecker.from(MemoTestUtils.createConnectContext(), plan)
|
||||
.applyTopDown(new SemiJoinAggTranspose())
|
||||
.applyTopDown(new TransposeSemiJoinAgg())
|
||||
.matchesFromRoot(
|
||||
logicalAggregate(
|
||||
leftSemiLogicalJoin()
|
||||
@ -30,7 +30,7 @@ import org.apache.doris.nereids.util.PlanConstructor;
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
class SemiJoinLogicalJoinTransposeProjectTest implements MemoPatternMatchSupported {
|
||||
class TransposeSemiJoinLogicalJoinProjectTest implements MemoPatternMatchSupported {
|
||||
private static final LogicalOlapScan scan1 = PlanConstructor.newLogicalOlapScan(0, "t1", 0);
|
||||
private static final LogicalOlapScan scan2 = PlanConstructor.newLogicalOlapScan(1, "t2", 0);
|
||||
private static final LogicalOlapScan scan3 = PlanConstructor.newLogicalOlapScan(2, "t3", 0);
|
||||
@ -53,7 +53,7 @@ class SemiJoinLogicalJoinTransposeProjectTest implements MemoPatternMatchSupport
|
||||
.build();
|
||||
|
||||
PlanChecker.from(MemoTestUtils.createConnectContext(), topJoin)
|
||||
.applyTopDown(new SemiJoinLogicalJoinTransposeProject())
|
||||
.applyTopDown(new TransposeSemiJoinLogicalJoinProject())
|
||||
.matchesFromRoot(
|
||||
logicalProject(
|
||||
innerLogicalJoin(
|
||||
@ -85,7 +85,7 @@ class SemiJoinLogicalJoinTransposeProjectTest implements MemoPatternMatchSupport
|
||||
.build();
|
||||
|
||||
PlanChecker.from(MemoTestUtils.createConnectContext(), topJoin)
|
||||
.applyTopDown(new SemiJoinLogicalJoinTransposeProject())
|
||||
.applyTopDown(new TransposeSemiJoinLogicalJoinProject())
|
||||
.matchesFromRoot(
|
||||
logicalProject(
|
||||
logicalJoin(
|
||||
@ -31,7 +31,7 @@ import org.apache.doris.nereids.util.PlanConstructor;
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
public class SemiJoinLogicalJoinTransposeTest implements MemoPatternMatchSupported {
|
||||
public class TransposeSemiJoinLogicalJoinTest implements MemoPatternMatchSupported {
|
||||
private static final LogicalOlapScan scan1 = PlanConstructor.newLogicalOlapScan(0, "t1", 0);
|
||||
private static final LogicalOlapScan scan2 = PlanConstructor.newLogicalOlapScan(1, "t2", 0);
|
||||
private static final LogicalOlapScan scan3 = PlanConstructor.newLogicalOlapScan(2, "t3", 0);
|
||||
@ -51,7 +51,7 @@ public class SemiJoinLogicalJoinTransposeTest implements MemoPatternMatchSupport
|
||||
.build();
|
||||
|
||||
PlanChecker.from(MemoTestUtils.createConnectContext(), topJoin)
|
||||
.applyTopDown(new SemiJoinLogicalJoinTranspose())
|
||||
.applyTopDown(new TransposeSemiJoinLogicalJoin())
|
||||
.matchesFromRoot(
|
||||
innerLogicalJoin(
|
||||
leftSemiLogicalJoin(
|
||||
@ -78,7 +78,7 @@ public class SemiJoinLogicalJoinTransposeTest implements MemoPatternMatchSupport
|
||||
.build();
|
||||
|
||||
PlanChecker.from(MemoTestUtils.createConnectContext(), topJoin)
|
||||
.applyTopDown(new SemiJoinLogicalJoinTranspose())
|
||||
.applyTopDown(new TransposeSemiJoinLogicalJoin())
|
||||
.checkMemo(memo -> {
|
||||
Group root = memo.getRoot();
|
||||
Assertions.assertEquals(1, root.getLogicalExpressions().size());
|
||||
Reference in New Issue
Block a user