[fix](Nereids) order by with cte cannot bind (#25794)

This commit is contained in:
morrySnow
2023-10-24 18:40:56 +08:00
committed by GitHub
parent 0147561c88
commit 2f600cdd89

View File

@ -55,7 +55,7 @@ import org.apache.doris.nereids.trees.plans.Plan;
import org.apache.doris.nereids.trees.plans.algebra.Aggregate;
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.LogicalCTE;
import org.apache.doris.nereids.trees.plans.logical.LogicalCTEAnchor;
import org.apache.doris.nereids.trees.plans.logical.LogicalCTEConsumer;
import org.apache.doris.nereids.trees.plans.logical.LogicalExcept;
import org.apache.doris.nereids.trees.plans.logical.LogicalFilter;
@ -409,17 +409,19 @@ public class BindExpression implements AnalysisRuleFactory {
LogicalProject<Plan> project = sort.child();
return bindSort(sort, project, ctx.cascadesContext);
})
), RuleType.BINDING_SORT_SLOT.build(
),
RuleType.BINDING_SORT_SLOT.build(
logicalSort(logicalCTEConsumer()).thenApply(ctx -> {
LogicalSort<LogicalCTEConsumer> sort = ctx.root;
LogicalCTEConsumer cteConsumer = sort.child();
return bindSort(sort, cteConsumer, ctx.cascadesContext);
})
), RuleType.BINDING_SORT_SLOT.build(
logicalSort(logicalCTE()).thenApply(ctx -> {
LogicalSort<LogicalCTE<Plan>> sort = ctx.root;
LogicalCTE<Plan> cteConsumer = sort.child();
return bindSort(sort, cteConsumer, ctx.cascadesContext);
),
RuleType.BINDING_SORT_SLOT.build(
logicalSort(logicalCTEAnchor()).thenApply(ctx -> {
LogicalSort<LogicalCTEAnchor<Plan, Plan>> sort = ctx.root;
LogicalCTEAnchor<Plan, Plan> cteAnchor = sort.child();
return bindSort(sort, cteAnchor, ctx.cascadesContext);
})
),
RuleType.BINDING_SORT_SET_OPERATION_SLOT.build(