aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoraidarsamer <aidarsamer@ydb.tech>2023-01-17 20:59:05 +0300
committeraidarsamer <aidarsamer@ydb.tech>2023-01-17 20:59:05 +0300
commit45939a7a0e41d208a1fd1519a8429c0a688f313a (patch)
tree8cf2caaae1d6b2fd8c812b2ea07260ebd7672160
parentc245cd52f603893965b9fc05414d5164b0c90d6a (diff)
downloadydb-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.cpp2
-rw-r--r--ydb/library/yql/core/yql_expr_type_annotation.cpp2
-rw-r--r--ydb/library/yql/sql/v1/aggregation.cpp1
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 {