diff options
author | vvvv <[email protected]> | 2025-07-10 22:26:35 +0300 |
---|---|---|
committer | vvvv <[email protected]> | 2025-07-10 22:44:51 +0300 |
commit | 612146bc655489da23249308c666ca9eb2ef6509 (patch) | |
tree | 99b3ba45f992615b4d60ed1f90fdea79585c27f0 | |
parent | ecb382ace058fc17139f759de085bdd75ba244dc (diff) |
YQL-20121 fix
commit_hash:f5827e9ccc7926e7d8a7ed8040c3d3427b8ef592
5 files changed, 68 insertions, 1 deletions
diff --git a/yql/essentials/core/common_opt/yql_co_simple1.cpp b/yql/essentials/core/common_opt/yql_co_simple1.cpp index d8dbd1ebbfe..038ae67e35e 100644 --- a/yql/essentials/core/common_opt/yql_co_simple1.cpp +++ b/yql/essentials/core/common_opt/yql_co_simple1.cpp @@ -5522,7 +5522,8 @@ void RegisterCoSimpleCallables1(TCallableOptimizerMap& map) { if (auto maybeAggregate = self.Input().Maybe<TCoAggregate>()) { auto child = maybeAggregate.Cast(); - if (!HasPayload(self) && !HasPayload(child) && self.Keys().Size() == child.Keys().Size()) { + if (!HasPayload(self) && !HasPayload(child) && self.Keys().Size() == child.Keys().Size() + && self.Settings().Size() == 0 && child.Settings().Size() == 0) { YQL_CLOG(DEBUG, Core) << node->Content() << " over " << node->Content() << " without payload with same keys"; return self.Input().Ptr(); } diff --git a/yql/essentials/tests/sql/minirun/part6/canondata/result.json b/yql/essentials/tests/sql/minirun/part6/canondata/result.json index 605bfe94398..ad327c2e39e 100644 --- a/yql/essentials/tests/sql/minirun/part6/canondata/result.json +++ b/yql/essentials/tests/sql/minirun/part6/canondata/result.json @@ -209,6 +209,20 @@ "uri": "https://{canondata_backend}/1925842/9a344928381729abc8381a7e8ada7e10e2ba51fe/resource.tar.gz#test.test_aggregate-group_by_expr_after_where-default.txt-Results_/results.txt" } ], + "test.test[aggregate-yql-20121-default.txt-Debug]": [ + { + "checksum": "5061f0e42c2162494941729bfbad7d35", + "size": 716, + "uri": "https://{canondata_backend}/1925842/23c8e5a26cb192bcd4d59af08364ee3b5235dcf1/resource.tar.gz#test.test_aggregate-yql-20121-default.txt-Debug_/opt.yql" + } + ], + "test.test[aggregate-yql-20121-default.txt-Results]": [ + { + "checksum": "ce1e57d3064ea902fd6fb60d189da468", + "size": 983, + "uri": "https://{canondata_backend}/1925842/23c8e5a26cb192bcd4d59af08364ee3b5235dcf1/resource.tar.gz#test.test_aggregate-yql-20121-default.txt-Results_/results.txt" + } + ], "test.test[ansi_idents-escaping-default.txt-Debug]": [ { "checksum": "13dd30dd58fd993aa21441bec427f12b", diff --git a/yql/essentials/tests/sql/sql2yql/canondata/result.json b/yql/essentials/tests/sql/sql2yql/canondata/result.json index b648400a5c2..e27799d5760 100644 --- a/yql/essentials/tests/sql/sql2yql/canondata/result.json +++ b/yql/essentials/tests/sql/sql2yql/canondata/result.json @@ -1014,6 +1014,13 @@ "uri": "https://{canondata_backend}/937458/1c45c55f8721945fcc3071cf69594515da374ef3/resource.tar.gz#test_sql2yql.test_aggregate-yql-19929_/sql.yql" } ], + "test_sql2yql.test[aggregate-yql-20121]": [ + { + "checksum": "a5f4269728a91cd8a289f4fdddf99c07", + "size": 4180, + "uri": "https://{canondata_backend}/1925842/7d133baf332e271d3f8380db563531e7a937a3b9/resource.tar.gz#test_sql2yql.test_aggregate-yql-20121_/sql.yql" + } + ], "test_sql2yql.test[aggregate-yql-20170]": [ { "checksum": "60c7439573471292594084e6b23f5900", @@ -8536,6 +8543,11 @@ "uri": "file://test_sql_format.test_aggregate-yql-19929_/formatted.sql" } ], + "test_sql_format.test[aggregate-yql-20121]": [ + { + "uri": "file://test_sql_format.test_aggregate-yql-20121_/formatted.sql" + } + ], "test_sql_format.test[aggregate-yql-20170]": [ { "uri": "file://test_sql_format.test_aggregate-yql-20170_/formatted.sql" diff --git a/yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_aggregate-yql-20121_/formatted.sql b/yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_aggregate-yql-20121_/formatted.sql new file mode 100644 index 00000000000..b9c73bc1800 --- /dev/null +++ b/yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_aggregate-yql-20121_/formatted.sql @@ -0,0 +1,36 @@ +$s = ( + SELECT + x, + y, + sum(z) AS cnt + FROM ( + SELECT + 1 AS x, + 2 AS y, + 10 AS z + ) + GROUP BY + x, + y +); + +$s2 = ( + SELECT + x, + y, + sum(cnt) + FROM + $s + GROUP BY + x, + y +); + +SELECT + x, + count(*) +FROM + $s2 +GROUP BY + x +; diff --git a/yql/essentials/tests/sql/suites/aggregate/yql-20121.sql b/yql/essentials/tests/sql/suites/aggregate/yql-20121.sql new file mode 100644 index 00000000000..42c3e4aba24 --- /dev/null +++ b/yql/essentials/tests/sql/suites/aggregate/yql-20121.sql @@ -0,0 +1,4 @@ +$s = select x,y,sum(z) as cnt from (select 1 as x, 2 as y,10 as z) group by x,y; +$s2 = select x,y,sum(cnt) from $s group by x,y; +select x,count(*) from $s2 group by x; + |