Skip to content

Commit f1e7122

Browse files
authored
Merge d275617 into 1c12b54
2 parents 1c12b54 + d275617 commit f1e7122

File tree

5 files changed

+91
-1
lines changed

5 files changed

+91
-1
lines changed

ydb/library/yql/providers/yt/provider/yql_yt_physical_optimize.cpp

+12-1
Original file line numberDiff line numberDiff line change
@@ -7435,6 +7435,14 @@ class TYtPhysicalOptProposalTransformer : public TOptimizeTransformerBase {
74357435
if (!rowSpec.IsSorted()) {
74367436
return node;
74377437
}
7438+
TMaybeNode<TExprBase> columns;
7439+
if (rowSpec.HasAuxColumns()) {
7440+
TSet<TStringBuf> members;
7441+
for (auto item: rowSpec.GetType()->GetItems()) {
7442+
members.insert(item->GetName());
7443+
}
7444+
columns = TExprBase(ToAtomList(members, merge.Pos(), ctx));
7445+
}
74387446

74397447
auto mergeSection = merge.Input().Item(0);
74407448
if (NYql::HasSettingsExcept(mergeSection.Settings().Ref(), EYtSettingType::KeyFilter | EYtSettingType::KeyFilter2)) {
@@ -7467,7 +7475,10 @@ class TYtPhysicalOptProposalTransformer : public TOptimizeTransformerBase {
74677475
.Input()
74687476
.Add()
74697477
.Paths()
7470-
.Add(path)
7478+
.Add<TYtPath>()
7479+
.InitFrom(path)
7480+
.Columns(columns.IsValid() ? columns.Cast() : path.Columns())
7481+
.Build()
74717482
.Build()
74727483
.Settings(section.Settings())
74737484
.Build()

ydb/library/yql/tests/sql/sql2yql/canondata/result.json

+14
Original file line numberDiff line numberDiff line change
@@ -10086,6 +10086,13 @@
1008610086
"uri": "https://{canondata_backend}/995452/54c61b947dc9448707d2846976eec313612f5c1d/resource.tar.gz#test_sql2yql.test_optimizers-yql-17413-topsort_/sql.yql"
1008710087
}
1008810088
],
10089+
"test_sql2yql.test[optimizers-yql-17715_concat_sort_desc]": [
10090+
{
10091+
"checksum": "baa57aee8a488863a299111fbbcb7649",
10092+
"size": 9265,
10093+
"uri": "https://{canondata_backend}/1814674/63e551151efd4c97040b5a29864cd326559dea48/resource.tar.gz#test_sql2yql.test_optimizers-yql-17715_concat_sort_desc_/sql.yql"
10094+
}
10095+
],
1008910096
"test_sql2yql.test[optimizers-yql-2171_aggregate_desc_sort_and_extract]": [
1009010097
{
1009110098
"checksum": "e46724f353c724da2d05f34ac86ebc12",
@@ -27572,6 +27579,13 @@
2757227579
"uri": "https://{canondata_backend}/995452/54c61b947dc9448707d2846976eec313612f5c1d/resource.tar.gz#test_sql_format.test_optimizers-yql-17413-topsort_/formatted.sql"
2757327580
}
2757427581
],
27582+
"test_sql_format.test[optimizers-yql-17715_concat_sort_desc]": [
27583+
{
27584+
"checksum": "c644b0dfcbb6e77f508129b548b94f16",
27585+
"size": 1181,
27586+
"uri": "https://{canondata_backend}/1942525/7ef0cd1bc632788b3cc025a801fdee39a608567b/resource.tar.gz#test_sql_format.test_optimizers-yql-17715_concat_sort_desc_/formatted.sql"
27587+
}
27588+
],
2757527589
"test_sql_format.test[optimizers-yql-2171_aggregate_desc_sort_and_extract]": [
2757627590
{
2757727591
"checksum": "ea7ad8b12dbf78644e2a7ac94e10159b",
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
providers yt
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
use plato;
2+
3+
$min_ts_for_stat_calculation = DateTime::ToSeconds(CurrentUtcDate() - Interval("P1D"));
4+
5+
insert into @a
6+
select * from (
7+
select 1ul as puid, CurrentUtcTimestamp() as timestamp, [1, 2] as segments, "a" as dummy1
8+
)
9+
assume order by puid, timestamp desc;
10+
11+
insert into @b
12+
select * from (
13+
select 4ul as puid, CurrentUtcTimestamp() as timestamp, [3, 2] as segments, "a" as dummy1
14+
)
15+
assume order by puid, timestamp desc;
16+
17+
insert into @c
18+
select * from (
19+
select 2ul as puid, Just(CurrentUtcTimestamp()) as timestamp, [2, 3] as segments, "a" as dummy2
20+
)
21+
assume order by puid, timestamp desc;
22+
23+
commit;
24+
25+
$target_events = (
26+
SELECT
27+
puid,
28+
segments
29+
FROM CONCAT(@a, @b, @c)
30+
where DateTime::ToSeconds(`timestamp`) > $min_ts_for_stat_calculation
31+
);
32+
33+
$target_events = (
34+
SELECT DISTINCT *
35+
FROM (
36+
SELECT *
37+
FROM $target_events
38+
FLATTEN LIST BY segments
39+
)
40+
FLATTEN COLUMNS
41+
);
42+
43+
SELECT * FROM $target_events ORDER BY puid, segments;

ydb/library/yql/tests/sql/yt_native_file/part13/canondata/result.json

+21
Original file line numberDiff line numberDiff line change
@@ -1548,6 +1548,27 @@
15481548
"uri": "https://{canondata_backend}/212715/e1bc1d6e31fa656365a738e65224a7c3f774bae6/resource.tar.gz#test.test_optimizers-yql-14279_keyextract_with_world_dep--Results_/results.txt"
15491549
}
15501550
],
1551+
"test.test[optimizers-yql-17715_concat_sort_desc--Debug]": [
1552+
{
1553+
"checksum": "9e3b07bd7f0d4ca1ed0449a35e10c886",
1554+
"size": 8178,
1555+
"uri": "https://{canondata_backend}/1031349/6ede2a86394410e62bf37c82ccf18a1c63b00a6b/resource.tar.gz#test.test_optimizers-yql-17715_concat_sort_desc--Debug_/opt.yql"
1556+
}
1557+
],
1558+
"test.test[optimizers-yql-17715_concat_sort_desc--Plan]": [
1559+
{
1560+
"checksum": "933d7040c97424d9408fbf5f81cdbf12",
1561+
"size": 20858,
1562+
"uri": "https://{canondata_backend}/1031349/6ede2a86394410e62bf37c82ccf18a1c63b00a6b/resource.tar.gz#test.test_optimizers-yql-17715_concat_sort_desc--Plan_/plan.txt"
1563+
}
1564+
],
1565+
"test.test[optimizers-yql-17715_concat_sort_desc--Results]": [
1566+
{
1567+
"checksum": "3568406b16079b54adbd0eab508c7ede",
1568+
"size": 1467,
1569+
"uri": "https://{canondata_backend}/1031349/6ede2a86394410e62bf37c82ccf18a1c63b00a6b/resource.tar.gz#test.test_optimizers-yql-17715_concat_sort_desc--Results_/results.txt"
1570+
}
1571+
],
15511572
"test.test[optimizers-yson_dup_serialize--Debug]": [
15521573
{
15531574
"checksum": "d4c9ddd001cf2586aa1613ad3d6792c7",

0 commit comments

Comments
 (0)