aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authora-romanov <Anton.Romanov@ydb.tech>2023-05-25 12:22:38 +0300
committera-romanov <Anton.Romanov@ydb.tech>2023-05-25 12:22:38 +0300
commitadfa5d69a07974d26ca88de2c51146fb85689871 (patch)
tree5ab576f9f7474cc072dc3264d5a7d08da479548a
parent179738dc1cf6caa1e8da733e36bd6d7a082d7115 (diff)
downloadydb-adfa5d69a07974d26ca88de2c51146fb85689871.tar.gz
YQL-16001 Fix get dry type from empty struct.
-rw-r--r--ydb/library/yql/core/yql_expr_type_annotation.cpp5
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()