diff --git a/ydb/library/yql/minikql/comp_nodes/mkql_ifpresent.cpp b/ydb/library/yql/minikql/comp_nodes/mkql_ifpresent.cpp index 2ad1beb61b8d..cd7ff786bfe9 100644 --- a/ydb/library/yql/minikql/comp_nodes/mkql_ifpresent.cpp +++ b/ydb/library/yql/minikql/comp_nodes/mkql_ifpresent.cpp @@ -297,7 +297,8 @@ IComputationNode* WrapIfPresent(TCallable& callable, const TComputationNodeFacto const auto presentBranch = LocateNode(ctx.NodeLocator, callable, 2); const auto missingBranch = LocateNode(ctx.NodeLocator, callable, 3); const auto itemArg = LocateExternalNode(ctx.NodeLocator, callable, 1); - const bool multiOptional = AS_TYPE(TOptionalType, callable.GetInput(0U).GetStaticType())->GetItemType()->IsOptional(); + const auto innerType = AS_TYPE(TOptionalType, callable.GetInput(0U).GetStaticType())->GetItemType(); + const bool multiOptional = innerType->IsOptional() || innerType->IsPg(); if (const auto type = callable.GetType()->GetReturnType(); type->IsFlow()) { const auto presWide = dynamic_cast(presentBranch); const auto missWide = dynamic_cast(missingBranch);