diff options
author | udovichenko-r <udovichenko-r@yandex-team.com> | 2025-01-24 19:33:32 +0300 |
---|---|---|
committer | udovichenko-r <udovichenko-r@yandex-team.com> | 2025-01-24 20:27:04 +0300 |
commit | af1629abf3a88888faadae60ca72b8c78b331530 (patch) | |
tree | b8e1ab7e4f7811a6d822126c9a0d1750a146afd5 | |
parent | 3bc271d931fc0b364f96a748b9b9c65315529327 (diff) | |
download | ydb-af1629abf3a88888faadae60ca72b8c78b331530.tar.gz |
Remove keepSorted setting in UnorderedOuts optimizer
commit_hash:3b1a89d6d2009de829485ab914d9627ac42ccfe3
3 files changed, 17 insertions, 2 deletions
diff --git a/yt/yql/providers/yt/provider/yql_yt_physical_finalizing.cpp b/yt/yql/providers/yt/provider/yql_yt_physical_finalizing.cpp index 8013ca110e..03f561fb19 100644 --- a/yt/yql/providers/yt/provider/yql_yt_physical_finalizing.cpp +++ b/yt/yql/providers/yt/provider/yql_yt_physical_finalizing.cpp @@ -1261,9 +1261,9 @@ private: if (op.Maybe<TYtTransientOpBase>()) { auto trOp = TYtTransientOpBase(&node); - if (!hasOtherSortedOuts && NYql::HasSetting(trOp.Settings().Ref(), EYtSettingType::Ordered)) { + if (!hasOtherSortedOuts && NYql::HasAnySetting(trOp.Settings().Ref(), EYtSettingType::Ordered | EYtSettingType::KeepSorted)) { res = ctx.ChangeChild(res ? *res : node, TYtTransientOpBase::idx_Settings, - NYql::RemoveSetting(trOp.Settings().Ref(), EYtSettingType::Ordered, ctx)); + NYql::RemoveSettings(trOp.Settings().Ref(), EYtSettingType::Ordered | EYtSettingType::KeepSorted, ctx)); } if (TYtMap::Match(&node)) { diff --git a/yt/yql/tests/sql/suites/optimizers/remove_keep_sorted_setting.cfg b/yt/yql/tests/sql/suites/optimizers/remove_keep_sorted_setting.cfg new file mode 100644 index 0000000000..eb8f24f034 --- /dev/null +++ b/yt/yql/tests/sql/suites/optimizers/remove_keep_sorted_setting.cfg @@ -0,0 +1,2 @@ +in Input1 sorted.txt +in Input2 sorted.txt diff --git a/yt/yql/tests/sql/suites/optimizers/remove_keep_sorted_setting.sql b/yt/yql/tests/sql/suites/optimizers/remove_keep_sorted_setting.sql new file mode 100644 index 0000000000..4e6be632db --- /dev/null +++ b/yt/yql/tests/sql/suites/optimizers/remove_keep_sorted_setting.sql @@ -0,0 +1,13 @@ +USE plato; + +$i = SELECT + a.key as key, + b.subkey as subkey +FROM Input1 AS a +JOIN Input2 AS b ON a.key = b.key +ASSUME ORDER BY key, subkey; + +$i = SELECT * FROM $i WHERE key != subkey ASSUME ORDER BY key, subkey; + +SELECT DISTINCT key, subkey FROM $i; +SELECT COUNT(*) FROM $i; |