summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorvvvv <[email protected]>2025-07-10 22:26:35 +0300
committervvvv <[email protected]>2025-07-10 22:44:51 +0300
commit612146bc655489da23249308c666ca9eb2ef6509 (patch)
tree99b3ba45f992615b4d60ed1f90fdea79585c27f0
parentecb382ace058fc17139f759de085bdd75ba244dc (diff)
YQL-20121 fix
commit_hash:f5827e9ccc7926e7d8a7ed8040c3d3427b8ef592
-rw-r--r--yql/essentials/core/common_opt/yql_co_simple1.cpp3
-rw-r--r--yql/essentials/tests/sql/minirun/part6/canondata/result.json14
-rw-r--r--yql/essentials/tests/sql/sql2yql/canondata/result.json12
-rw-r--r--yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_aggregate-yql-20121_/formatted.sql36
-rw-r--r--yql/essentials/tests/sql/suites/aggregate/yql-20121.sql4
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;
+