Skip to content

Commit 01ce21a

Browse files
authored
[dq] Add Top optimizer (#10104)
1 parent 2e6d05a commit 01ce21a

File tree

1 file changed

+7
-0
lines changed

1 file changed

+7
-0
lines changed

ydb/library/yql/providers/dq/opt/physical_optimize.cpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ class TDqsPhysicalOptProposalTransformer : public TOptimizeTransformerBase {
3838
AddHandler(0, &TCoPartitionByKey::Match, HNDL(BuildPartitionStage<false>));
3939
AddHandler(0, &TCoAsList::Match, HNDL(BuildAggregationResultStage));
4040
AddHandler(0, &TCoTopSort::Match, HNDL(BuildTopSortStage<false>));
41+
AddHandler(0, &TCoTop::Match, HNDL(BuildTopStage<false>));
4142
AddHandler(0, &TCoSort::Match, HNDL(BuildSortStage<false>));
4243
AddHandler(0, &TCoTakeBase::Match, HNDL(BuildTakeOrTakeSkipStage<false>));
4344
AddHandler(0, &TCoLength::Match, HNDL(RewriteLengthOfStageOutput<false>));
@@ -74,6 +75,7 @@ class TDqsPhysicalOptProposalTransformer : public TOptimizeTransformerBase {
7475
AddHandler(1, &TCoFinalizeByKey::Match, HNDL(BuildFinalizeByKeyStage<true>));
7576
AddHandler(1, &TCoPartitionByKey::Match, HNDL(BuildPartitionStage<true>));
7677
AddHandler(1, &TCoTopSort::Match, HNDL(BuildTopSortStage<true>));
78+
AddHandler(1, &TCoTop::Match, HNDL(BuildTopStage<true>));
7779
AddHandler(1, &TCoSort::Match, HNDL(BuildSortStage<true>));
7880
AddHandler(1, &TCoTakeBase::Match, HNDL(BuildTakeOrTakeSkipStage<true>));
7981
AddHandler(1, &TCoLength::Match, HNDL(RewriteLengthOfStageOutput<true>));
@@ -184,6 +186,11 @@ class TDqsPhysicalOptProposalTransformer : public TOptimizeTransformerBase {
184186
return DqBuildTopSortStage(node, ctx, optCtx, *getParents(), IsGlobal);
185187
}
186188

189+
template <bool IsGlobal>
190+
TMaybeNode<TExprBase> BuildTopStage(TExprBase node, TExprContext& ctx, IOptimizationContext& optCtx, const TGetParents& getParents) {
191+
return DqBuildTopStage(node, ctx, optCtx, *getParents(), IsGlobal);
192+
}
193+
187194
template <bool IsGlobal>
188195
TMaybeNode<TExprBase> BuildSortStage(TExprBase node, TExprContext& ctx, IOptimizationContext& optCtx, const TGetParents& getParents) {
189196
return DqBuildSortStage(node, ctx, optCtx, *getParents(), IsGlobal);

0 commit comments

Comments
 (0)