aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorimunkin <imunkin@yandex-team.com>2025-03-28 14:30:26 +0300
committerimunkin <imunkin@yandex-team.com>2025-03-28 15:01:00 +0300
commita2106c070ec50b2f4255264bcdedb79f9f0a9dce (patch)
tree8fb45bcd4d56389d2f7f458cae88eef26b074358
parent464f3c07b041c71c51e8a845d89ad06ce2578658 (diff)
downloadydb-a2106c070ec50b2f4255264bcdedb79f9f0a9dce.tar.gz
Fix typo in BlockOrderedExtend expand in peephole optimizer
commit_hash:c900c3e66ad439c833752ebd08942509bc114587
-rw-r--r--yql/essentials/core/peephole_opt/yql_opt_peephole_physical.cpp5
-rw-r--r--yql/essentials/tests/s-expressions/minirun/part5/canondata/result.json14
-rw-r--r--yql/essentials/tests/s-expressions/suites/Blocks/BlockOrderedExtend.yqls20
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)
+)