summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ydb/library/yql/cfg/tests/gateways-experimental.conf5
-rw-r--r--ydb/library/yql/providers/yt/common/yql_configuration.h2
-rw-r--r--ydb/library/yql/providers/yt/common/yql_yt_settings.cpp1
-rw-r--r--ydb/library/yql/providers/yt/common/yql_yt_settings.h1
-rw-r--r--ydb/library/yql/providers/yt/provider/yql_yt_physical_finalizing.cpp2
-rw-r--r--ydb/library/yql/providers/yt/provider/yql_yt_physical_optimize.cpp100
-rw-r--r--ydb/library/yql/tests/sql/dq_file/part0/canondata/result.json22
-rw-r--r--ydb/library/yql/tests/sql/dq_file/part14/canondata/result.json22
-rw-r--r--ydb/library/yql/tests/sql/sql2yql/canondata/result.json28
-rw-r--r--ydb/library/yql/tests/sql/suites/aggregate/aggrs_no_grouping_via_map.sql44
-rw-r--r--ydb/library/yql/tests/sql/suites/aggregate/aggrs_no_grouping_via_map_compact.sql45
-rw-r--r--ydb/library/yql/tests/sql/yt_native_file/part0/canondata/result.json21
-rw-r--r--ydb/library/yql/tests/sql/yt_native_file/part14/canondata/result.json21
13 files changed, 298 insertions, 16 deletions
diff --git a/ydb/library/yql/cfg/tests/gateways-experimental.conf b/ydb/library/yql/cfg/tests/gateways-experimental.conf
index d2a8aa16f9e..a3d94fe4e26 100644
--- a/ydb/library/yql/cfg/tests/gateways-experimental.conf
+++ b/ydb/library/yql/cfg/tests/gateways-experimental.conf
@@ -18,6 +18,11 @@ Yt {
Name: "TableContentLocalExecution"
Value: "true"
}
+
+ DefaultSettings {
+ Name: "PartitionByConstantKeysViaMap"
+ Value: "true"
+ }
}
Dq {
diff --git a/ydb/library/yql/providers/yt/common/yql_configuration.h b/ydb/library/yql/providers/yt/common/yql_configuration.h
index 6d9ca0338ce..700db36b523 100644
--- a/ydb/library/yql/providers/yt/common/yql_configuration.h
+++ b/ydb/library/yql/providers/yt/common/yql_configuration.h
@@ -66,4 +66,6 @@ constexpr bool DEFAULT_TABLE_CONTENT_LOCAL_EXEC = false;
constexpr ui32 DEFAULT_BATCH_LIST_FOLDER_CONCURRENCY = 5;
+constexpr bool DEFAULT_PARTITION_BY_CONSTANT_KEYS_VIA_MAP = false;
+
} // NYql
diff --git a/ydb/library/yql/providers/yt/common/yql_yt_settings.cpp b/ydb/library/yql/providers/yt/common/yql_yt_settings.cpp
index b9538e8417f..8fe0a227626 100644
--- a/ydb/library/yql/providers/yt/common/yql_yt_settings.cpp
+++ b/ydb/library/yql/providers/yt/common/yql_yt_settings.cpp
@@ -468,6 +468,7 @@ TYtConfiguration::TYtConfiguration()
return res;
});
REGISTER_SETTING(*this, ViewIsolation);
+ REGISTER_SETTING(*this, PartitionByConstantKeysViaMap);
}
EReleaseTempDataMode GetReleaseTempDataMode(const TYtSettings& settings) {
diff --git a/ydb/library/yql/providers/yt/common/yql_yt_settings.h b/ydb/library/yql/providers/yt/common/yql_yt_settings.h
index 469a6c11668..a9c45e8a2e7 100644
--- a/ydb/library/yql/providers/yt/common/yql_yt_settings.h
+++ b/ydb/library/yql/providers/yt/common/yql_yt_settings.h
@@ -265,6 +265,7 @@ struct TYtSettings {
NCommon::TConfSetting<double, false> MaxReplicationFactorToFuseMultiOuts;
NCommon::TConfSetting<ui64, false> ApplyStoredConstraints;
NCommon::TConfSetting<bool, false> ViewIsolation;
+ NCommon::TConfSetting<bool, false> PartitionByConstantKeysViaMap;
};
EReleaseTempDataMode GetReleaseTempDataMode(const TYtSettings& settings);
diff --git a/ydb/library/yql/providers/yt/provider/yql_yt_physical_finalizing.cpp b/ydb/library/yql/providers/yt/provider/yql_yt_physical_finalizing.cpp
index 935ea9e00d2..0b28d82cb5c 100644
--- a/ydb/library/yql/providers/yt/provider/yql_yt_physical_finalizing.cpp
+++ b/ydb/library/yql/providers/yt/provider/yql_yt_physical_finalizing.cpp
@@ -2314,6 +2314,8 @@ private:
if ((outerMap.World().Ref().IsWorld() || outerMap.World().Raw() == op.World().Raw())
&& outerMap.Input().Size() == 1 && outerMap.DataSink().Cluster().Value() == op.DataSink().Cluster().Value()
&& NYql::HasSetting(op.Settings().Ref(), EYtSettingType::Flow) == NYql::HasSetting(outerMap.Settings().Ref(), EYtSettingType::Flow)
+ && !NYql::HasSetting(op.Settings().Ref(), EYtSettingType::JobCount)
+ && !NYql::HasSetting(outerMap.Settings().Ref(), EYtSettingType::JobCount)
&& !HasYtRowNumber(outerMap.Mapper().Body().Ref())
&& IsYieldTransparent(outerMap.Mapper().Ptr(), *State_->Types)
&& (!op.Maybe<TYtMapReduce>() || AllOf(outerMap.Output(), [](const auto& out) { return !TYtTableBaseInfo::GetRowSpec(out)->IsSorted(); }))) {
diff --git a/ydb/library/yql/providers/yt/provider/yql_yt_physical_optimize.cpp b/ydb/library/yql/providers/yt/provider/yql_yt_physical_optimize.cpp
index 428913649c3..d8276407daf 100644
--- a/ydb/library/yql/providers/yt/provider/yql_yt_physical_optimize.cpp
+++ b/ydb/library/yql/providers/yt/provider/yql_yt_physical_optimize.cpp
@@ -1874,12 +1874,24 @@ private:
}
}
+ const bool canUseMapInsteadOfReduce = keySelectorLambda.Body().Ref().IsComplete() &&
+ partByKey.SortDirections().Maybe<TCoVoid>() &&
+ State_->Configuration->PartitionByConstantKeysViaMap.Get().GetOrElse(DEFAULT_PARTITION_BY_CONSTANT_KEYS_VIA_MAP);
+
+ if (canUseMapInsteadOfReduce) {
+ YQL_ENSURE(!canUseReduce);
+ YQL_ENSURE(sortByColumns.empty());
+ useSystemColumns = false;
+ }
+
auto settingsBuilder = Build<TCoNameValueTupleList>(ctx, node.Pos());
- settingsBuilder
- .Add()
- .Name().Value(ToString(EYtSettingType::ReduceBy)).Build()
- .Value(TExprBase(ToColumnPairList(reduceByColumns, node.Pos(), ctx)))
- .Build();
+ if (!canUseMapInsteadOfReduce) {
+ settingsBuilder
+ .Add()
+ .Name().Value(ToString(EYtSettingType::ReduceBy)).Build()
+ .Value(TExprBase(ToColumnPairList(reduceByColumns, node.Pos(), ctx)))
+ .Build();
+ }
if (!sortByColumns.empty()) {
settingsBuilder
@@ -2266,7 +2278,14 @@ private:
TExprNode::TPtr keyExtractor;
TExprNode::TPtr handler;
- if (useSystemColumns) {
+ if (canUseMapInsteadOfReduce) {
+ groupSwitch = Build<TCoLambda>(ctx, handlerLambda.Pos())
+ .Args({"key", "item"})
+ .Body<TCoBool>()
+ .Literal().Build("false")
+ .Build()
+ .Done().Ptr();
+ } else if (useSystemColumns) {
groupSwitch = Build<TCoLambda>(ctx, handlerLambda.Pos())
.Args({"key", "item"})
.Body<TCoSqlExtractKey>()
@@ -2325,17 +2344,21 @@ private:
.Build()
.Done().Ptr();
- handler = Build<TCoLambda>(ctx, handlerLambda.Pos())
- .Args({"item"})
- .Body<TCoRemovePrefixMembers>()
- .Input("item")
- .Prefixes()
- .Add()
- .Value(YqlSysColumnKeySwitch)
+ if (canUseMapInsteadOfReduce) {
+ handler = BuildIdentityLambda(handlerLambda.Pos(), ctx).Ptr();
+ } else {
+ handler = Build<TCoLambda>(ctx, handlerLambda.Pos())
+ .Args({"item"})
+ .Body<TCoRemovePrefixMembers>()
+ .Input("item")
+ .Prefixes()
+ .Add()
+ .Value(YqlSysColumnKeySwitch)
+ .Build()
.Build()
.Build()
- .Build()
- .Done().Ptr();
+ .Done().Ptr();
+ }
}
handlerLambda = Build<TCoLambda>(ctx, handlerLambda.Pos())
@@ -2429,7 +2452,7 @@ private:
return WrapOp(reduce, ctx);
}
- if (needMap && (builder.NeedMap() || multiInput)) {
+ if (needMap && (builder.NeedMap() || multiInput) && !canUseMapInsteadOfReduce) {
settingsBuilder
.Add()
.Name().Value(ToString(EYtSettingType::ReduceFilterBy)).Build()
@@ -2437,6 +2460,25 @@ private:
.Build();
}
+ if (canUseMapInsteadOfReduce && !filterColumns.empty()) {
+ reducer = Build<TCoLambda>(ctx, reducer.Pos())
+ .Args({"input"})
+ .Body<TExprApplier>()
+ .Apply(reducer)
+ .With<TCoMap>(0)
+ .Input("input")
+ .Lambda()
+ .Args({"item"})
+ .Body<TCoSelectMembers>()
+ .Input("item")
+ .Members(ToAtomList(filterColumns, node.Pos(), ctx))
+ .Build()
+ .Build()
+ .Build()
+ .Build()
+ .Done();
+ }
+
bool unordered = ctx.IsConstraintEnabled<TSortedConstraintNode>();
TExprBase world = GetWorld(input, {}, ctx);
if (hasInputSampling) {
@@ -2519,6 +2561,26 @@ private:
}
}
+ if (canUseMapInsteadOfReduce) {
+ settingsBuilder
+ .Add()
+ .Name().Value(ToString(EYtSettingType::JobCount)).Build()
+ .Value(TExprBase(ctx.NewAtom(node.Pos(), 1u)))
+ .Build();
+
+ auto result = Build<TYtMap>(ctx, node.Pos())
+ .World(ApplySyncListToWorld(world.Ptr(), syncList, ctx))
+ .DataSink(GetDataSink(input, ctx))
+ .Input(ConvertInputTable(input, ctx, TConvertInputOpts().MakeUnordered(unordered)))
+ .Output()
+ .Add(ConvertOutTables(node.Pos(), outItemType, ctx, State_, &partByKey.Ref().GetConstraintSet()))
+ .Build()
+ .Settings(settingsBuilder.Done())
+ .Mapper(reducer)
+ .Done();
+ return WrapOp(result, ctx);
+ }
+
if (forceMapper && mapper.Maybe<TCoVoid>()) {
mapper = MakeJobLambda<false>(Build<TCoLambda>(ctx, node.Pos()).Args({"stream"}).Body("stream").Done(), useMapFlow, ctx);
}
@@ -4555,6 +4617,9 @@ private:
if (NYql::HasSetting(innerMap.Settings().Ref(), EYtSettingType::Flow) != NYql::HasSetting(outerMap.Settings().Ref(), EYtSettingType::Flow)) {
return node;
}
+ if (NYql::HasAnySetting(outerMap.Settings().Ref(), EYtSettingType::JobCount)) {
+ return node;
+ }
if (!path.Ranges().Maybe<TCoVoid>()) {
return node;
}
@@ -4690,6 +4755,9 @@ private:
if (NYql::HasAnySetting(inner.Settings().Ref(), EYtSettingType::Limit | EYtSettingType::SortLimitBy | EYtSettingType::JobCount)) {
return node;
}
+ if (NYql::HasSetting(outerMap.Settings().Ref(), EYtSettingType::JobCount)) {
+ return node;
+ }
if (outerMap.Input().Item(0).Settings().Size() != 0) {
return node;
}
diff --git a/ydb/library/yql/tests/sql/dq_file/part0/canondata/result.json b/ydb/library/yql/tests/sql/dq_file/part0/canondata/result.json
index 70ce60bbd48..02837b9a08a 100644
--- a/ydb/library/yql/tests/sql/dq_file/part0/canondata/result.json
+++ b/ydb/library/yql/tests/sql/dq_file/part0/canondata/result.json
@@ -316,6 +316,28 @@
}
],
"test.test[aggregate-aggregate_with_lambda--Results]": [],
+ "test.test[aggregate-aggrs_no_grouping_via_map_compact-default.txt-Analyze]": [
+ {
+ "checksum": "7ec0b77d45f8c1c95538df9b98d538eb",
+ "size": 5493,
+ "uri": "https://{canondata_backend}/1777230/a97ee3227d27cacdc966530fa6d636c72275674d/resource.tar.gz#test.test_aggregate-aggrs_no_grouping_via_map_compact-default.txt-Analyze_/plan.txt"
+ }
+ ],
+ "test.test[aggregate-aggrs_no_grouping_via_map_compact-default.txt-Debug]": [
+ {
+ "checksum": "b8c5e41e63a72494e4b90ae7312e6722",
+ "size": 15025,
+ "uri": "https://{canondata_backend}/1784826/0f7a5cd2267f3fe3eea29d99c96318d3d804d5a1/resource.tar.gz#test.test_aggregate-aggrs_no_grouping_via_map_compact-default.txt-Debug_/opt.yql_patched"
+ }
+ ],
+ "test.test[aggregate-aggrs_no_grouping_via_map_compact-default.txt-Plan]": [
+ {
+ "checksum": "7ec0b77d45f8c1c95538df9b98d538eb",
+ "size": 5493,
+ "uri": "https://{canondata_backend}/1777230/a97ee3227d27cacdc966530fa6d636c72275674d/resource.tar.gz#test.test_aggregate-aggrs_no_grouping_via_map_compact-default.txt-Plan_/plan.txt"
+ }
+ ],
+ "test.test[aggregate-aggrs_no_grouping_via_map_compact-default.txt-Results]": [],
"test.test[aggregate-group_by_expr_order_by_expr--Analyze]": [
{
"checksum": "68758cc21a759dfeca1624654de64bdd",
diff --git a/ydb/library/yql/tests/sql/dq_file/part14/canondata/result.json b/ydb/library/yql/tests/sql/dq_file/part14/canondata/result.json
index cfbd4de16cd..27de5c2cdd1 100644
--- a/ydb/library/yql/tests/sql/dq_file/part14/canondata/result.json
+++ b/ydb/library/yql/tests/sql/dq_file/part14/canondata/result.json
@@ -253,6 +253,28 @@
}
],
"test.test[aggregate-agg_phases_table3-default.txt-Results]": [],
+ "test.test[aggregate-aggrs_no_grouping_via_map-default.txt-Analyze]": [
+ {
+ "checksum": "5048337a717516d7c51613138fffc56c",
+ "size": 5491,
+ "uri": "https://{canondata_backend}/1937367/be35feae41cdf3f87ad7ea8d4ce18ba9629b9c4f/resource.tar.gz#test.test_aggregate-aggrs_no_grouping_via_map-default.txt-Analyze_/plan.txt"
+ }
+ ],
+ "test.test[aggregate-aggrs_no_grouping_via_map-default.txt-Debug]": [
+ {
+ "checksum": "2a231c8b8ee5743f3aa9aa3ff228ba0e",
+ "size": 22045,
+ "uri": "https://{canondata_backend}/1923547/bcb169d6a98387261f9bf1763d05b629d1ed0873/resource.tar.gz#test.test_aggregate-aggrs_no_grouping_via_map-default.txt-Debug_/opt.yql_patched"
+ }
+ ],
+ "test.test[aggregate-aggrs_no_grouping_via_map-default.txt-Plan]": [
+ {
+ "checksum": "5048337a717516d7c51613138fffc56c",
+ "size": 5491,
+ "uri": "https://{canondata_backend}/1937367/be35feae41cdf3f87ad7ea8d4ce18ba9629b9c4f/resource.tar.gz#test.test_aggregate-aggrs_no_grouping_via_map-default.txt-Plan_/plan.txt"
+ }
+ ],
+ "test.test[aggregate-aggrs_no_grouping_via_map-default.txt-Results]": [],
"test.test[aggregate-group_by_cube_expr_trio--Analyze]": [
{
"checksum": "23f6ef9781306d246a286e3afc242460",
diff --git a/ydb/library/yql/tests/sql/sql2yql/canondata/result.json b/ydb/library/yql/tests/sql/sql2yql/canondata/result.json
index 2c89d6b5b98..7afe2199c1e 100644
--- a/ydb/library/yql/tests/sql/sql2yql/canondata/result.json
+++ b/ydb/library/yql/tests/sql/sql2yql/canondata/result.json
@@ -1721,6 +1721,20 @@
"uri": "https://{canondata_backend}/1871182/6b10ad6d9884e5faf3a77187ffb9b38b59b46458/resource.tar.gz#test_sql2yql.test_aggregate-aggrs_no_grouping_/sql.yql"
}
],
+ "test_sql2yql.test[aggregate-aggrs_no_grouping_via_map]": [
+ {
+ "checksum": "7178378193cad6646eb2f56f88968771",
+ "size": 13576,
+ "uri": "https://{canondata_backend}/1937367/1251b8b408ef167749e32c6a9872574193aac10c/resource.tar.gz#test_sql2yql.test_aggregate-aggrs_no_grouping_via_map_/sql.yql"
+ }
+ ],
+ "test_sql2yql.test[aggregate-aggrs_no_grouping_via_map_compact]": [
+ {
+ "checksum": "15eccd38936bf65cdd85fc025e0925e2",
+ "size": 15566,
+ "uri": "https://{canondata_backend}/1937367/1251b8b408ef167749e32c6a9872574193aac10c/resource.tar.gz#test_sql2yql.test_aggregate-aggrs_no_grouping_via_map_compact_/sql.yql"
+ }
+ ],
"test_sql2yql.test[aggregate-avg_and_sum]": [
{
"checksum": "79739198f6ebccd1e0310d5b7422d4e6",
@@ -19067,6 +19081,20 @@
"uri": "https://{canondata_backend}/1880306/64654158d6bfb1289c66c626a8162239289559d0/resource.tar.gz#test_sql_format.test_aggregate-aggrs_no_grouping_/formatted.sql"
}
],
+ "test_sql_format.test[aggregate-aggrs_no_grouping_via_map]": [
+ {
+ "checksum": "87bcd0d25dab9d63694caf1e3e940bbd",
+ "size": 1515,
+ "uri": "https://{canondata_backend}/1937367/1251b8b408ef167749e32c6a9872574193aac10c/resource.tar.gz#test_sql_format.test_aggregate-aggrs_no_grouping_via_map_/formatted.sql"
+ }
+ ],
+ "test_sql_format.test[aggregate-aggrs_no_grouping_via_map_compact]": [
+ {
+ "checksum": "91723a562d00c7c5a22088dad5b2e4ee",
+ "size": 1539,
+ "uri": "https://{canondata_backend}/1937367/1251b8b408ef167749e32c6a9872574193aac10c/resource.tar.gz#test_sql_format.test_aggregate-aggrs_no_grouping_via_map_compact_/formatted.sql"
+ }
+ ],
"test_sql_format.test[aggregate-avg_and_sum]": [
{
"checksum": "067d46d5653bcb904d02b77caff9927a",
diff --git a/ydb/library/yql/tests/sql/suites/aggregate/aggrs_no_grouping_via_map.sql b/ydb/library/yql/tests/sql/suites/aggregate/aggrs_no_grouping_via_map.sql
new file mode 100644
index 00000000000..cb1105b769d
--- /dev/null
+++ b/ydb/library/yql/tests/sql/suites/aggregate/aggrs_no_grouping_via_map.sql
@@ -0,0 +1,44 @@
+/* syntax version 1 */
+/* postgres can not */
+pragma yt.PartitionByConstantKeysViaMap;
+select
+ count(key) as keyCount,
+ count(sub) as subCount,
+ count(val) as valCount,
+ countIf(sub % 2 == 0) as evenCount,
+ countIf(sub % 2 == 1) as oddCount,
+ every(sub % 2 == 0) as every,
+ boolOr(sub % 2 == 0) as boolOr,
+ avg(key) as keyAvg,
+ avg(sub) as subAvg,
+ min(key) as keyMin,
+ min(sub) as subMin,
+ min(val) as valMin,
+ max(key) as keyMax,
+ max(sub) as subMax,
+ max(val) as valMax,
+ some(key) as keySome,
+ some(sub) as subSome,
+ some(val) as valSome,
+ bitAnd(cast(key AS Uint64)) as keyBitAnd,
+ bitOr(cast(key AS Uint64)) as keyBitOr,
+ bitXor(cast(key AS Uint64)) as keyBitXor,
+ bitAnd(cast(sub AS Uint64)) as subBitAnd,
+ bitOr(cast(sub AS Uint64)) as subBitOr,
+ bitXor(cast(sub AS Uint64)) as subBitXor,
+ median(key) as keyMedian,
+ median(sub) as subMedian,
+ stdDev(key) as keyStdDev,
+ stdDev(sub) as subStdDev,
+ stdDev(empty) as emptyStdDev,
+ variance(key) as keyVariance,
+ variance(sub) as subVariance,
+ stdDevPop(key) as keyPopStdDev,
+ stdDevPop(sub) as subPopStdDev,
+ varPop(key) as keyPopVariance,
+ varPop(sub) as subPopVariance,
+ correlation(key, sub) AS corr,
+ covariance(key, sub) AS covar,
+ covarpop(key, sub) AS covarpop
+from
+ (select cast(key as int) as key, Unwrap(cast(subkey as int)) as sub, value as val, cast(value AS int) AS empty from plato.Input);
diff --git a/ydb/library/yql/tests/sql/suites/aggregate/aggrs_no_grouping_via_map_compact.sql b/ydb/library/yql/tests/sql/suites/aggregate/aggrs_no_grouping_via_map_compact.sql
new file mode 100644
index 00000000000..acb0e79e4ee
--- /dev/null
+++ b/ydb/library/yql/tests/sql/suites/aggregate/aggrs_no_grouping_via_map_compact.sql
@@ -0,0 +1,45 @@
+/* syntax version 1 */
+/* postgres can not */
+pragma yt.PartitionByConstantKeysViaMap;
+select
+ count(key) as keyCount,
+ count(sub) as subCount,
+ count(val) as valCount,
+ countIf(sub % 2 == 0) as evenCount,
+ countIf(sub % 2 == 1) as oddCount,
+ every(sub % 2 == 0) as every,
+ boolOr(sub % 2 == 0) as boolOr,
+ avg(key) as keyAvg,
+ avg(sub) as subAvg,
+ min(key) as keyMin,
+ min(sub) as subMin,
+ min(val) as valMin,
+ max(key) as keyMax,
+ max(sub) as subMax,
+ max(val) as valMax,
+ some(key) as keySome,
+ some(sub) as subSome,
+ some(val) as valSome,
+ bitAnd(cast(key AS Uint64)) as keyBitAnd,
+ bitOr(cast(key AS Uint64)) as keyBitOr,
+ bitXor(cast(key AS Uint64)) as keyBitXor,
+ bitAnd(cast(sub AS Uint64)) as subBitAnd,
+ bitOr(cast(sub AS Uint64)) as subBitOr,
+ bitXor(cast(sub AS Uint64)) as subBitXor,
+ median(key) as keyMedian,
+ median(sub) as subMedian,
+ stdDev(key) as keyStdDev,
+ stdDev(sub) as subStdDev,
+ stdDev(empty) as emptyStdDev,
+ variance(key) as keyVariance,
+ variance(sub) as subVariance,
+ stdDevPop(key) as keyPopStdDev,
+ stdDevPop(sub) as subPopStdDev,
+ varPop(key) as keyPopVariance,
+ varPop(sub) as subPopVariance,
+ correlation(key, sub) AS corr,
+ covariance(key, sub) AS covar,
+ covarpop(key, sub) AS covarpop
+from
+ (select cast(key as int) as key, Unwrap(cast(subkey as int)) as sub, value as val, cast(value AS int) AS empty from plato.Input)
+group compact by ();
diff --git a/ydb/library/yql/tests/sql/yt_native_file/part0/canondata/result.json b/ydb/library/yql/tests/sql/yt_native_file/part0/canondata/result.json
index 60644611e90..819e0c772b2 100644
--- a/ydb/library/yql/tests/sql/yt_native_file/part0/canondata/result.json
+++ b/ydb/library/yql/tests/sql/yt_native_file/part0/canondata/result.json
@@ -293,6 +293,27 @@
"uri": "https://{canondata_backend}/1031349/a2d4ff3f821af2abc956289d3861b20fa2f7f1bd/resource.tar.gz#test.test_aggregate-aggregate_with_lambda--Results_/results.txt"
}
],
+ "test.test[aggregate-aggrs_no_grouping_via_map_compact-default.txt-Debug]": [
+ {
+ "checksum": "cdd5980f1f4929be151d69952cb282d4",
+ "size": 16112,
+ "uri": "https://{canondata_backend}/1777230/4ed7650eeb0577939cace989ff0f400e2ec6a71c/resource.tar.gz#test.test_aggregate-aggrs_no_grouping_via_map_compact-default.txt-Debug_/opt.yql"
+ }
+ ],
+ "test.test[aggregate-aggrs_no_grouping_via_map_compact-default.txt-Plan]": [
+ {
+ "checksum": "ffe00677e97f277dfe654ad3a5233e5c",
+ "size": 5043,
+ "uri": "https://{canondata_backend}/1946324/fd57527b924653ec8cc0da2bc20971d488d42ab2/resource.tar.gz#test.test_aggregate-aggrs_no_grouping_via_map_compact-default.txt-Plan_/plan.txt"
+ }
+ ],
+ "test.test[aggregate-aggrs_no_grouping_via_map_compact-default.txt-Results]": [
+ {
+ "checksum": "d67659cf5731706e3bd23ad4d3eec160",
+ "size": 18030,
+ "uri": "https://{canondata_backend}/1946324/fd57527b924653ec8cc0da2bc20971d488d42ab2/resource.tar.gz#test.test_aggregate-aggrs_no_grouping_via_map_compact-default.txt-Results_/results.txt"
+ }
+ ],
"test.test[aggregate-group_by_expr_order_by_expr--Debug]": [
{
"checksum": "b7e248e6aaaac07b2ad87353d17a6010",
diff --git a/ydb/library/yql/tests/sql/yt_native_file/part14/canondata/result.json b/ydb/library/yql/tests/sql/yt_native_file/part14/canondata/result.json
index db31f6e348a..fd504658ad4 100644
--- a/ydb/library/yql/tests/sql/yt_native_file/part14/canondata/result.json
+++ b/ydb/library/yql/tests/sql/yt_native_file/part14/canondata/result.json
@@ -230,6 +230,27 @@
"uri": "https://{canondata_backend}/1923547/5154c8bd8ef9ead4f609771f831f20c15e795571/resource.tar.gz#test.test_aggregate-agg_phases_table3-default.txt-Results_/results.txt"
}
],
+ "test.test[aggregate-aggrs_no_grouping_via_map-default.txt-Debug]": [
+ {
+ "checksum": "9bd103667826b31412dd0f07b2764fa0",
+ "size": 25068,
+ "uri": "https://{canondata_backend}/1777230/fe85c1e540c1c2f40deaa85335f1c2f979322ac1/resource.tar.gz#test.test_aggregate-aggrs_no_grouping_via_map-default.txt-Debug_/opt.yql"
+ }
+ ],
+ "test.test[aggregate-aggrs_no_grouping_via_map-default.txt-Plan]": [
+ {
+ "checksum": "e27e3049865097746707bc6b9687811c",
+ "size": 5145,
+ "uri": "https://{canondata_backend}/1936947/bdcb7aea56336d84dbed597af7bb9fb891ffe59f/resource.tar.gz#test.test_aggregate-aggrs_no_grouping_via_map-default.txt-Plan_/plan.txt"
+ }
+ ],
+ "test.test[aggregate-aggrs_no_grouping_via_map-default.txt-Results]": [
+ {
+ "checksum": "d67659cf5731706e3bd23ad4d3eec160",
+ "size": 18030,
+ "uri": "https://{canondata_backend}/1936947/bdcb7aea56336d84dbed597af7bb9fb891ffe59f/resource.tar.gz#test.test_aggregate-aggrs_no_grouping_via_map-default.txt-Results_/results.txt"
+ }
+ ],
"test.test[aggregate-group_by_cube_expr_trio--Debug]": [
{
"checksum": "6001a0fb46c5aa1305800c8fe705a024",