diff options
author | aidarsamer <aidarsamer@ydb.tech> | 2023-01-17 20:59:05 +0300 |
---|---|---|
committer | aidarsamer <aidarsamer@ydb.tech> | 2023-01-17 20:59:05 +0300 |
commit | 45939a7a0e41d208a1fd1519a8429c0a688f313a (patch) | |
tree | 8cf2caaae1d6b2fd8c812b2ea07260ebd7672160 | |
parent | c245cd52f603893965b9fc05414d5164b0c90d6a (diff) | |
download | ydb-45939a7a0e41d208a1fd1519a8429c0a688f313a.tar.gz |
Add support for SOME aggregate to AggApply
Add suuport for SOME aggregate to AggApply
-rw-r--r-- | ydb/library/yql/core/type_ann/type_ann_list.cpp | 2 | ||||
-rw-r--r-- | ydb/library/yql/core/yql_expr_type_annotation.cpp | 2 | ||||
-rw-r--r-- | ydb/library/yql/sql/v1/aggregation.cpp | 1 |
3 files changed, 4 insertions, 1 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 d0f78b6a164..b229254f991 100644 --- a/ydb/library/yql/core/type_ann/type_ann_list.cpp +++ b/ydb/library/yql/core/type_ann/type_ann_list.cpp @@ -5339,6 +5339,8 @@ namespace { } input->SetTypeAnn(retType); + } else if (name == "some") { + input->SetTypeAnn(lambda->GetTypeAnn()); } else { ctx.Expr.AddError(TIssue(ctx.Expr.GetPosition(input->Pos()), TStringBuilder() << "Unsupported agg name: " << name)); diff --git a/ydb/library/yql/core/yql_expr_type_annotation.cpp b/ydb/library/yql/core/yql_expr_type_annotation.cpp index 527101fffef..932ac907363 100644 --- a/ydb/library/yql/core/yql_expr_type_annotation.cpp +++ b/ydb/library/yql/core/yql_expr_type_annotation.cpp @@ -5360,7 +5360,7 @@ const TTypeAnnotationNode* GetBlockItemType(const TTypeAnnotationNode& type, boo const TTypeAnnotationNode* AggApplySerializedStateType(const TExprNode::TPtr& input, TExprContext& ctx) { auto name = input->Child(0)->Content(); - if (name == "count" || name == "count_all" || name == "sum" || name == "min" || name == "max") { + if (name == "count" || name == "count_all" || name == "sum" || name == "min" || name == "max" || name == "some") { return input->GetTypeAnn(); } else if (name == "avg") { auto itemType = input->Content().StartsWith("AggBlock") ? diff --git a/ydb/library/yql/sql/v1/aggregation.cpp b/ydb/library/yql/sql/v1/aggregation.cpp index cced16f3862..d24da366fe6 100644 --- a/ydb/library/yql/sql/v1/aggregation.cpp +++ b/ydb/library/yql/sql/v1/aggregation.cpp @@ -35,6 +35,7 @@ static const THashSet<TString> AggApplyFuncs = { "avg_traits_factory", "min_traits_factory", "max_traits_factory", + "some_traits_factory", }; class TAggregationFactory : public IAggregation { |