Skip to content

Commit fe04aee

Browse files
authored
Fix typing for block decimal avg (use logic of non-block version) (#9327)
1 parent f25098d commit fe04aee

File tree

11 files changed

+244
-1
lines changed

11 files changed

+244
-1
lines changed

ydb/library/yql/core/type_ann/type_ann_list.cpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5668,7 +5668,11 @@ namespace {
56685668
}
56695669
}
56705670

5671-
input->SetTypeAnn(retType);
5671+
if (originalType && originalType->GetKind() != NYql::ETypeAnnotationKind::Null) {
5672+
input->SetTypeAnn(originalType);
5673+
} else {
5674+
input->SetTypeAnn(retType);
5675+
}
56725676
} else if (name == "min" || name == "max") {
56735677
auto itemType = input->Child(overState ? 2 : 1)->GetTypeAnn()->Cast<TTypeExprType>()->GetType();
56745678
const TTypeAnnotationNode* retType;

ydb/library/yql/tests/sql/dq_file/part4/canondata/result.json

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -617,6 +617,28 @@
617617
}
618618
],
619619
"test.test[blocks-combine_all_min_filter_opt--Results]": [],
620+
"test.test[blocks-decimal_avg--Analyze]": [
621+
{
622+
"checksum": "e7f90eff609d00b82ab5da5b0310dc13",
623+
"size": 5474,
624+
"uri": "https://{canondata_backend}/212715/e9c0ac99e18ec4ae27142c9c2577dc676b157d44/resource.tar.gz#test.test_blocks-decimal_avg--Analyze_/plan.txt"
625+
}
626+
],
627+
"test.test[blocks-decimal_avg--Debug]": [
628+
{
629+
"checksum": "8b2e667e5990a8a85f31c3cc84653101",
630+
"size": 3946,
631+
"uri": "https://{canondata_backend}/212715/e9c0ac99e18ec4ae27142c9c2577dc676b157d44/resource.tar.gz#test.test_blocks-decimal_avg--Debug_/opt.yql_patched"
632+
}
633+
],
634+
"test.test[blocks-decimal_avg--Plan]": [
635+
{
636+
"checksum": "e7f90eff609d00b82ab5da5b0310dc13",
637+
"size": 5474,
638+
"uri": "https://{canondata_backend}/212715/e9c0ac99e18ec4ae27142c9c2577dc676b157d44/resource.tar.gz#test.test_blocks-decimal_avg--Plan_/plan.txt"
639+
}
640+
],
641+
"test.test[blocks-decimal_avg--Results]": [],
620642
"test.test[blocks-json_document_type--Analyze]": [
621643
{
622644
"checksum": "918007365a27e11795012d2f4841750b",

ydb/library/yql/tests/sql/dq_file/part9/canondata/result.json

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,28 @@
8787
}
8888
],
8989
"test.test[agg_phases-sum_opt-default.txt-Results]": [],
90+
"test.test[agg_phases_agg_apply-avg_decimal-default.txt-Analyze]": [
91+
{
92+
"checksum": "01775e7c945a56ebf0edc2d478f4f68d",
93+
"size": 2567,
94+
"uri": "https://{canondata_backend}/1814674/77d41c903ddd926a62e64221c321109c23757fa8/resource.tar.gz#test.test_agg_phases_agg_apply-avg_decimal-default.txt-Analyze_/plan.txt"
95+
}
96+
],
97+
"test.test[agg_phases_agg_apply-avg_decimal-default.txt-Debug]": [
98+
{
99+
"checksum": "c141458b4faf20cdfa0b2581438b2060",
100+
"size": 2167,
101+
"uri": "https://{canondata_backend}/1814674/77d41c903ddd926a62e64221c321109c23757fa8/resource.tar.gz#test.test_agg_phases_agg_apply-avg_decimal-default.txt-Debug_/opt.yql_patched"
102+
}
103+
],
104+
"test.test[agg_phases_agg_apply-avg_decimal-default.txt-Plan]": [
105+
{
106+
"checksum": "01775e7c945a56ebf0edc2d478f4f68d",
107+
"size": 2567,
108+
"uri": "https://{canondata_backend}/1814674/77d41c903ddd926a62e64221c321109c23757fa8/resource.tar.gz#test.test_agg_phases_agg_apply-avg_decimal-default.txt-Plan_/plan.txt"
109+
}
110+
],
111+
"test.test[agg_phases_agg_apply-avg_decimal-default.txt-Results]": [],
90112
"test.test[aggr_factory-def_value_full_table-default.txt-Analyze]": [
91113
{
92114
"checksum": "b4dd508a329723c74293d80f0278c705",

ydb/library/yql/tests/sql/hybrid_file/part1/canondata/result.json

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -601,6 +601,20 @@
601601
"uri": "https://{canondata_backend}/1130705/20da23c279246100d1cf6675c98b016c27d78ebb/resource.tar.gz#test.test_blocks-date_less_or_equal--Plan_/plan.txt"
602602
}
603603
],
604+
"test.test[blocks-decimal_avg--Debug]": [
605+
{
606+
"checksum": "e5ac1e47bf139b64ded063ddd4cc4c12",
607+
"size": 5024,
608+
"uri": "https://{canondata_backend}/1775319/e518084f9a6f7560212f360435984047c6cdf17e/resource.tar.gz#test.test_blocks-decimal_avg--Debug_/opt.yql_patched"
609+
}
610+
],
611+
"test.test[blocks-decimal_avg--Plan]": [
612+
{
613+
"checksum": "4dca34e324385b874d48ea9873fef139",
614+
"size": 5859,
615+
"uri": "https://{canondata_backend}/1775319/e518084f9a6f7560212f360435984047c6cdf17e/resource.tar.gz#test.test_blocks-decimal_avg--Plan_/plan.txt"
616+
}
617+
],
604618
"test.test[blocks-decimal_unary--Debug]": [
605619
{
606620
"checksum": "91d5eaa9920fe9015067ab6eca6c9a1e",

ydb/library/yql/tests/sql/hybrid_file/part6/canondata/result.json

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -195,6 +195,20 @@
195195
"uri": "https://{canondata_backend}/1775059/3cb7d014d70b84dbcb84645fa987dd9d47d7fd6c/resource.tar.gz#test.test_agg_phases-min_by_opt-default.txt-Plan_/plan.txt"
196196
}
197197
],
198+
"test.test[agg_phases_agg_apply-avg_decimal-default.txt-Debug]": [
199+
{
200+
"checksum": "c56652553674020751912ebf71b374bd",
201+
"size": 2166,
202+
"uri": "https://{canondata_backend}/1937424/4bf3629a378a97c2134d5c9ef82b431269f7812a/resource.tar.gz#test.test_agg_phases_agg_apply-avg_decimal-default.txt-Debug_/opt.yql_patched"
203+
}
204+
],
205+
"test.test[agg_phases_agg_apply-avg_decimal-default.txt-Plan]": [
206+
{
207+
"checksum": "01775e7c945a56ebf0edc2d478f4f68d",
208+
"size": 2567,
209+
"uri": "https://{canondata_backend}/1937424/4bf3629a378a97c2134d5c9ef82b431269f7812a/resource.tar.gz#test.test_agg_phases_agg_apply-avg_decimal-default.txt-Plan_/plan.txt"
210+
}
211+
],
198212
"test.test[agg_phases_agg_apply-sum_null-default.txt-Debug]": [
199213
{
200214
"checksum": "2e40595d136cde726a1085ed674a7f29",

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

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1126,6 +1126,13 @@
11261126
"uri": "https://{canondata_backend}/1784117/d56ae82ad9d30397a41490647be1bd2124718f98/resource.tar.gz#test_sql2yql.test_agg_phases_agg_apply-avg_/sql.yql"
11271127
}
11281128
],
1129+
"test_sql2yql.test[agg_phases_agg_apply-avg_decimal]": [
1130+
{
1131+
"checksum": "6995e83bda818a897fdd0eae9d07dcc0",
1132+
"size": 13095,
1133+
"uri": "https://{canondata_backend}/1942415/d77582873ccf3369a6a530c6d99bb20a670b52e8/resource.tar.gz#test_sql2yql.test_agg_phases_agg_apply-avg_decimal_/sql.yql"
1134+
}
1135+
],
11291136
"test_sql2yql.test[agg_phases_agg_apply-count]": [
11301137
{
11311138
"checksum": "c3ef6597e1dad8332df19e9bd78f2dc5",
@@ -3779,6 +3786,13 @@
37793786
"uri": "https://{canondata_backend}/1942100/4770669c24007543908dd55606255f269883b26e/resource.tar.gz#test_sql2yql.test_blocks-date_top_sort_/sql.yql"
37803787
}
37813788
],
3789+
"test_sql2yql.test[blocks-decimal_avg]": [
3790+
{
3791+
"checksum": "196ced0d7dead2abf0aa5fa8dc6b10cf",
3792+
"size": 2231,
3793+
"uri": "https://{canondata_backend}/1775319/1580c5e8e4c110f53c15179e596f8942460372c9/resource.tar.gz#test_sql2yql.test_blocks-decimal_avg_/sql.yql"
3794+
}
3795+
],
37823796
"test_sql2yql.test[blocks-decimal_comparison]": [
37833797
{
37843798
"checksum": "8ca5e73502f650d4d05eb9770ffbf4a0",
@@ -20782,6 +20796,13 @@
2078220796
"uri": "https://{canondata_backend}/1880306/64654158d6bfb1289c66c626a8162239289559d0/resource.tar.gz#test_sql_format.test_agg_phases_agg_apply-avg_/formatted.sql"
2078320797
}
2078420798
],
20799+
"test_sql_format.test[agg_phases_agg_apply-avg_decimal]": [
20800+
{
20801+
"checksum": "8d57ef61f93cb12395632a984257cda6",
20802+
"size": 1443,
20803+
"uri": "https://{canondata_backend}/1942415/d77582873ccf3369a6a530c6d99bb20a670b52e8/resource.tar.gz#test_sql_format.test_agg_phases_agg_apply-avg_decimal_/formatted.sql"
20804+
}
20805+
],
2078520806
"test_sql_format.test[agg_phases_agg_apply-count]": [
2078620807
{
2078720808
"checksum": "674b92a7d1504376a5f847da9c78a38e",
@@ -23435,6 +23456,13 @@
2343523456
"uri": "https://{canondata_backend}/1942100/4770669c24007543908dd55606255f269883b26e/resource.tar.gz#test_sql_format.test_blocks-date_top_sort_/formatted.sql"
2343623457
}
2343723458
],
23459+
"test_sql_format.test[blocks-decimal_avg]": [
23460+
{
23461+
"checksum": "d077a59363e93c9cf3548b776b93e316",
23462+
"size": 175,
23463+
"uri": "https://{canondata_backend}/1775319/1580c5e8e4c110f53c15179e596f8942460372c9/resource.tar.gz#test_sql_format.test_blocks-decimal_avg_/formatted.sql"
23464+
}
23465+
],
2343823466
"test_sql_format.test[blocks-decimal_comparison]": [
2343923467
{
2344023468
"checksum": "95016b817141a7fbfd888700217463bc",
Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
/* syntax version 1 */
2+
/* postgres can not */
3+
pragma EmitAggApply;
4+
5+
$t = SELECT * FROM AS_TABLE([<|key: 1, value: decimal("2.1", 7, 2)|>,<|key: 1, value: decimal("3.5", 7, 2)|>]);
6+
7+
$p =
8+
SELECT
9+
key,avg(value) as a
10+
FROM $t
11+
GROUP BY
12+
key
13+
with combine
14+
;
15+
16+
$p = PROCESS $p;
17+
--select FormatType(TypeOf($p));
18+
select * from $p;
19+
20+
$p = SELECT
21+
key,avg(a) as a
22+
FROM $p
23+
GROUP BY
24+
key
25+
with combinestate
26+
;
27+
28+
$p = PROCESS $p;
29+
--select FormatType(TypeOf($p));
30+
select * from $p;
31+
32+
$p = SELECT
33+
key,avg(a) as a
34+
FROM $p
35+
GROUP BY
36+
key
37+
with mergestate
38+
;
39+
40+
$p = PROCESS $p;
41+
--select FormatType(TypeOf($p));
42+
select * from $p;
43+
44+
45+
$p1 = SELECT
46+
key,avg(a) as a
47+
FROM $p
48+
GROUP BY
49+
key
50+
with mergefinalize
51+
;
52+
53+
$p1 = PROCESS $p1;
54+
--select FormatType(TypeOf($p1));
55+
select * from $p1;
56+
57+
$p2 = SELECT
58+
key,avg(a) as a
59+
FROM (select key, just(a) as a from $p)
60+
GROUP BY
61+
key
62+
with mergemanyfinalize
63+
;
64+
65+
$p2 = PROCESS $p2;
66+
--select FormatType(TypeOf($p2));
67+
select * from $p2;
68+
69+
$p3 =
70+
SELECT
71+
key,avg(value) as a
72+
FROM $t
73+
GROUP BY
74+
key
75+
with finalize
76+
;
77+
78+
$p3 = PROCESS $p3;
79+
--select FormatType(TypeOf($p));
80+
select * from $p3;
81+
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
in Input input_decimal.txt
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
USE plato;
2+
3+
SELECT
4+
avg(cs_ext_list_price), avg(cs_ext_tax),
5+
avg(cs_ext_list_price) * decimal("1.1", 7, 2),
6+
decimal("1.1", 7, 2) * avg(cs_ext_tax),
7+
FROM Input;
8+

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

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -544,6 +544,34 @@
544544
"uri": "https://{canondata_backend}/1923547/b4d7ef0db5ad067d9e88ccc4c12a4e7ac4da46df/resource.tar.gz#test.test_blocks-combine_all_min_filter_opt--Results_/results.txt"
545545
}
546546
],
547+
"test.test[blocks-decimal_avg--Debug]": [
548+
{
549+
"checksum": "cc25aaccbcf6e6a9eae8f64d05f22249",
550+
"size": 4240,
551+
"uri": "https://{canondata_backend}/1931696/1cb947d289c4d65b45c3fba919aa59c8a7d02c7a/resource.tar.gz#test.test_blocks-decimal_avg--Debug_/opt.yql"
552+
}
553+
],
554+
"test.test[blocks-decimal_avg--Peephole]": [
555+
{
556+
"checksum": "cdc8a4d00988408c92640297fa47c45a",
557+
"size": 3137,
558+
"uri": "https://{canondata_backend}/1931696/1cb947d289c4d65b45c3fba919aa59c8a7d02c7a/resource.tar.gz#test.test_blocks-decimal_avg--Peephole_/opt.yql"
559+
}
560+
],
561+
"test.test[blocks-decimal_avg--Plan]": [
562+
{
563+
"checksum": "4fd2b20bef4b38f050144521fa5cbde2",
564+
"size": 5255,
565+
"uri": "https://{canondata_backend}/1931696/1cb947d289c4d65b45c3fba919aa59c8a7d02c7a/resource.tar.gz#test.test_blocks-decimal_avg--Plan_/plan.txt"
566+
}
567+
],
568+
"test.test[blocks-decimal_avg--Results]": [
569+
{
570+
"checksum": "73950ed0f0cd1ee8aba4b14dac403407",
571+
"size": 2732,
572+
"uri": "https://{canondata_backend}/1931696/1cb947d289c4d65b45c3fba919aa59c8a7d02c7a/resource.tar.gz#test.test_blocks-decimal_avg--Results_/results.txt"
573+
}
574+
],
547575
"test.test[blocks-json_document_type--Debug]": [
548576
{
549577
"checksum": "2b2604f43a5fbed9f67049c9833d5c63",

0 commit comments

Comments
 (0)