aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorudovichenko-r <udovichenko-r@yandex-team.com>2025-01-24 19:33:32 +0300
committerudovichenko-r <udovichenko-r@yandex-team.com>2025-01-24 20:27:04 +0300
commitaf1629abf3a88888faadae60ca72b8c78b331530 (patch)
treeb8e1ab7e4f7811a6d822126c9a0d1750a146afd5
parent3bc271d931fc0b364f96a748b9b9c65315529327 (diff)
downloadydb-af1629abf3a88888faadae60ca72b8c78b331530.tar.gz
Remove keepSorted setting in UnorderedOuts optimizer
commit_hash:3b1a89d6d2009de829485ab914d9627ac42ccfe3
-rw-r--r--yt/yql/providers/yt/provider/yql_yt_physical_finalizing.cpp4
-rw-r--r--yt/yql/tests/sql/suites/optimizers/remove_keep_sorted_setting.cfg2
-rw-r--r--yt/yql/tests/sql/suites/optimizers/remove_keep_sorted_setting.sql13
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;