summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoraneporada <[email protected]>2023-02-03 22:26:51 +0300
committeraneporada <[email protected]>2023-02-03 22:26:51 +0300
commit627bd5967f6a8f8ef59b5b768bd49cfffb25bc4a (patch)
tree0a02c8e23f2d36c6145560df7a7f5b8b6f35b32c
parent8806efb22f7da9345f0833a8b4ba3bb1ae5edaf4 (diff)
Enable Top->WideTop optimizer when UseBlocks is set
-rw-r--r--ydb/library/yql/core/peephole_opt/yql_opt_peephole_physical.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/ydb/library/yql/core/peephole_opt/yql_opt_peephole_physical.cpp b/ydb/library/yql/core/peephole_opt/yql_opt_peephole_physical.cpp
index e3c22fa00f0..eda8dcd24bd 100644
--- a/ydb/library/yql/core/peephole_opt/yql_opt_peephole_physical.cpp
+++ b/ydb/library/yql/core/peephole_opt/yql_opt_peephole_physical.cpp
@@ -4061,8 +4061,10 @@ TExprNode::TPtr OptimizeCombineCore(const TExprNode::TPtr& node, TExprContext& c
}
template<bool Sort>
-TExprNode::TPtr OptimizeTop(const TExprNode::TPtr& node, TExprContext& ctx) {
- return node; // TODO
+TExprNode::TPtr OptimizeTop(const TExprNode::TPtr& node, TExprContext& ctx, TTypeAnnotationContext& types) {
+ if (!types.UseBlocks) {
+ return node; // TODO
+ }
if (const auto& input = node->Head(); input.IsCallable("NarrowMap") && input.Tail().Tail().IsCallable("AsStruct")) {
TNodeMap<size_t> indexes(input.Tail().Tail().ChildrenSize());
@@ -7141,11 +7143,11 @@ struct TPeepHoleRules {
{"WideMap", &OptimizeWideMaps},
{"NarrowMap", &OptimizeWideMaps},
{"Unordered", &DropUnordered},
- {"Top", &OptimizeTop<false>},
- {"TopSort", &OptimizeTop<true>},
};
static constexpr std::initializer_list<TExtPeepHoleOptimizerMap::value_type> FinalStageExtRulesInit = {
+ {"Top", &OptimizeTop<false>},
+ {"TopSort", &OptimizeTop<true>},
};
static constexpr std::initializer_list<TExtPeepHoleOptimizerMap::value_type> FinalStageNonDetRulesInit = {