diff options
author | a-romanov <Anton.Romanov@ydb.tech> | 2023-05-25 12:22:38 +0300 |
---|---|---|
committer | a-romanov <Anton.Romanov@ydb.tech> | 2023-05-25 12:22:38 +0300 |
commit | adfa5d69a07974d26ca88de2c51146fb85689871 (patch) | |
tree | 5ab576f9f7474cc072dc3264d5a7d08da479548a | |
parent | 179738dc1cf6caa1e8da733e36bd6d7a082d7115 (diff) | |
download | ydb-adfa5d69a07974d26ca88de2c51146fb85689871.tar.gz |
YQL-16001 Fix get dry type from empty struct.
-rw-r--r-- | ydb/library/yql/core/yql_expr_type_annotation.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/ydb/library/yql/core/yql_expr_type_annotation.cpp b/ydb/library/yql/core/yql_expr_type_annotation.cpp index 79ca51ece68..954dd6fb149 100644 --- a/ydb/library/yql/core/yql_expr_type_annotation.cpp +++ b/ydb/library/yql/core/yql_expr_type_annotation.cpp @@ -1225,6 +1225,9 @@ const TTupleExprType* DryType(const TTupleExprType* type, bool& hasOptional, TEx template<bool Strict = true> const TStructExprType* DryType(const TStructExprType* type, bool& hasOptional, TExprContext& ctx) { + if (!type->GetSize()) + return type; + auto items = type->GetItems(); auto it = items.begin(); for (const auto& item : items) { @@ -5751,7 +5754,7 @@ IGraphTransformer::TStatus ExtractPgTypesFromMultiLambda(TExprNode::TPtr& lambda return IGraphTransformer::TStatus::Ok; } -TExprNode::TPtr ExpandPgAggregationTraits(TPositionHandle pos, const NPg::TAggregateDesc& aggDesc, bool onWindow, +TExprNode::TPtr ExpandPgAggregationTraits(TPositionHandle pos, const NPg::TAggregateDesc& aggDesc, bool onWindow, const TExprNode::TPtr& lambda, const TVector<ui32>& argTypes, const TTypeAnnotationNode* itemType, TExprContext& ctx) { auto idLambda = ctx.Builder(pos) .Lambda() |