diff options
author | vvvv <vvvv@ydb.tech> | 2023-03-30 20:54:26 +0300 |
---|---|---|
committer | vvvv <vvvv@ydb.tech> | 2023-03-30 20:54:26 +0300 |
commit | 8be9f8ba959c6ee27bcbc25686af05c25b366329 (patch) | |
tree | a8f2767dcc0e98f1d13d053c6492c76d207690e3 | |
parent | 3f2cb85d2a2714d0168f3d775d99e28c07c84f9c (diff) | |
download | ydb-8be9f8ba959c6ee27bcbc25686af05c25b366329.tar.gz |
Enable EmitAggApply by default
Один из тестов локально канонизирован
vvvv@mr-nvme-testing-08:~/repo/arcadia/yql/tests/sql$ ya make -tA -F '*aggregate-library_error_in_aggregation_fail*' sql2yql yt_native_file dq_file
Number of suites skipped by name: 21, by filter *aggregate-library_error_in_aggregation_fail*
Total 3 suites:
3 - GOOD
Total 11 tests:
6 - GOOD
5 - SKIPPED
Ok
rtmr тесты локально проходят
-rw-r--r-- | ydb/library/yql/core/type_ann/type_ann_list.cpp | 5 | ||||
-rw-r--r-- | ydb/library/yql/core/yql_aggregate_expander.cpp | 11 |
2 files changed, 12 insertions, 4 deletions
diff --git a/ydb/library/yql/core/type_ann/type_ann_list.cpp b/ydb/library/yql/core/type_ann/type_ann_list.cpp index 9c53f05b4a5..ea1ecb57493 100644 --- a/ydb/library/yql/core/type_ann/type_ann_list.cpp +++ b/ydb/library/yql/core/type_ann/type_ann_list.cpp @@ -5286,6 +5286,11 @@ namespace { } auto itemType = input->Child(1)->GetTypeAnn()->Cast<TTypeExprType>()->GetType(); + if (itemType->GetKind() == ETypeAnnotationKind::Unit) { + output = ctx.Expr.NewCallable(input->Pos(), "Void", {}); + return IGraphTransformer::TStatus::Repeat; + } + auto& lambda = input->ChildRef(2); const auto status = ConvertToLambda(lambda, ctx.Expr, 1); if (status.Level != IGraphTransformer::TStatus::Ok) { diff --git a/ydb/library/yql/core/yql_aggregate_expander.cpp b/ydb/library/yql/core/yql_aggregate_expander.cpp index e6c2ab22140..177755f7b15 100644 --- a/ydb/library/yql/core/yql_aggregate_expander.cpp +++ b/ydb/library/yql/core/yql_aggregate_expander.cpp @@ -1474,12 +1474,15 @@ TExprNode::TPtr TAggregateExpander::CountAggregateRewrite(const NNodes::TCoAggre } if (!isDistinct) { - if (IsDepended(traits->Child(2)->Tail(), traits->Child(2)->Head().Head())) { - return node.Ptr(); - } - if (traits->Head().Content() == "count") { initVal = traits->Child(2)->TailPtr(); + if (initVal->GetTypeAnn()->IsOptionalOrNull()) { + if (IsDepended(traits->Child(2)->Tail(), traits->Child(2)->Head().Head())) { + return node.Ptr(); + } + } else { + initVal = nullptr; + } } } } else { |