diff options
author | imunkin <imunkin@yandex-team.com> | 2025-03-28 14:30:26 +0300 |
---|---|---|
committer | imunkin <imunkin@yandex-team.com> | 2025-03-28 15:01:00 +0300 |
commit | a2106c070ec50b2f4255264bcdedb79f9f0a9dce (patch) | |
tree | 8fb45bcd4d56389d2f7f458cae88eef26b074358 | |
parent | 464f3c07b041c71c51e8a845d89ad06ce2578658 (diff) | |
download | ydb-a2106c070ec50b2f4255264bcdedb79f9f0a9dce.tar.gz |
Fix typo in BlockOrderedExtend expand in peephole optimizer
commit_hash:c900c3e66ad439c833752ebd08942509bc114587
3 files changed, 37 insertions, 2 deletions
diff --git a/yql/essentials/core/peephole_opt/yql_opt_peephole_physical.cpp b/yql/essentials/core/peephole_opt/yql_opt_peephole_physical.cpp index 1be5b5349c..1b39f7dd86 100644 --- a/yql/essentials/core/peephole_opt/yql_opt_peephole_physical.cpp +++ b/yql/essentials/core/peephole_opt/yql_opt_peephole_physical.cpp @@ -396,7 +396,7 @@ TExprNode::TPtr ExpandBlockExtend(const TExprNode::TPtr& node, TExprContext& ctx newChildren.push_back(ctx.WrapByCallableIf(hasScalars, "ReplicateScalars", std::move(child))); } - const TStringBuf newName = node->IsCallable("BlockOrdredExtend") ? "OrdredExtend" : "Extend"; + const TStringBuf newName = node->IsCallable("BlockExtend") ? "Extend" : "OrderedExtend"; if (!seenScalars) { return ctx.RenameNode(*node, newName); } @@ -3521,7 +3521,7 @@ TExprNode::TPtr OptimizeExtend(const TExprNode::TPtr& node, TExprContext& ctx) { if (allWide) { return ctx.NewCallable(node->Pos(), "Collect", { - MakeNarrowMap(node->Pos(), columns, ctx.NewCallable(node->Pos(), "Extend", std::move(wideChildren)), ctx) + MakeNarrowMap(node->Pos(), columns, ctx.NewCallable(node->Pos(), node->Content(), std::move(wideChildren)), ctx) }); } } @@ -8945,6 +8945,7 @@ struct TPeepHoleRules { const TPeepHoleOptimizerMap FinalStageRules = { {"Extend", &OptimizeExtend}, + {"OrderedExtend", &OptimizeExtend}, {"Take", &OptimizeTake}, {"Skip", &OptimizeSkip}, {"GroupByKey", &PeepHoleConvertGroupBySingleKey}, diff --git a/yql/essentials/tests/s-expressions/minirun/part5/canondata/result.json b/yql/essentials/tests/s-expressions/minirun/part5/canondata/result.json index 41b9db9e47..98fcc4f04f 100644 --- a/yql/essentials/tests/s-expressions/minirun/part5/canondata/result.json +++ b/yql/essentials/tests/s-expressions/minirun/part5/canondata/result.json @@ -1,4 +1,18 @@ { + "test.test[Blocks-BlockOrderedExtend-default.txt-Debug]": [ + { + "checksum": "3dad0479cd92939a59999800bcffa1fd", + "size": 383, + "uri": "https://{canondata_backend}/1936273/fc47b74ce53fdd3426495bb35fba8f4c1bc5deda/resource.tar.gz#test.test_Blocks-BlockOrderedExtend-default.txt-Debug_/opt.yql" + } + ], + "test.test[Blocks-BlockOrderedExtend-default.txt-Results]": [ + { + "checksum": "089b3d2779fec70776d266611f996ce3", + "size": 951, + "uri": "https://{canondata_backend}/1936273/fc47b74ce53fdd3426495bb35fba8f4c1bc5deda/resource.tar.gz#test.test_Blocks-BlockOrderedExtend-default.txt-Results_/results.txt" + } + ], "test.test[Builtins-DivePrefixMembersOpt-default.txt-Debug]": [ { "checksum": "7c408ddcedc1deae859a58f6f29ff7fd", diff --git a/yql/essentials/tests/s-expressions/suites/Blocks/BlockOrderedExtend.yqls b/yql/essentials/tests/s-expressions/suites/Blocks/BlockOrderedExtend.yqls new file mode 100644 index 0000000000..9c60ed3966 --- /dev/null +++ b/yql/essentials/tests/s-expressions/suites/Blocks/BlockOrderedExtend.yqls @@ -0,0 +1,20 @@ +( +# The test is based on sql/suites/blocks/extend.sql canonization. +# XXX: Explicitly enable PeepHoleBlock and PeepHoleFinalBlock steps. +(let world (Configure! world (DataSource 'config) 'BlockEngine 'force)) +(let wconf (DataSink 'result)) + +(let x1 (AsStruct '('"x" (Int32 '"1")))) +(let x2 (AsStruct '('"x" (Int32 '"2")))) +(let x3 (AsStruct '('"x" (Int32 '"3")))) +(let x4 (AsStruct '('"x" (Int32 '"4")))) + +(let t1 (TableSource (AsList x1 x3 x2))) +(let t2 (TableSource (AsList x4 x1))) + +(let union (OrderedExtend t1 t2)) + +(let world (Write! world wconf (Key) union '('('type)))) +(let world (Commit! world wconf)) +(return world) +) |