aboutsummaryrefslogtreecommitdiffstats
path: root/yql/essentials/minikql/mkql_program_builder.cpp
diff options
context:
space:
mode:
authorvvvv <vvvv@yandex-team.com>2025-01-27 17:45:33 +0300
committervvvv <vvvv@yandex-team.com>2025-01-27 18:05:00 +0300
commit33900924b69623bce3c8920ff93073794ed536ef (patch)
tree9996780468aa6ce8ae1a1380a567bb4c8cc2bf27 /yql/essentials/minikql/mkql_program_builder.cpp
parentedcfedc60aae21c05abac8edd88ba1ab3c90f77c (diff)
downloadydb-33900924b69623bce3c8920ff93073794ed536ef.tar.gz
opt. index for DynamicVariant YQL-19499
commit_hash:cdf713319f6b37f19e986df843edf28ab9991d7a
Diffstat (limited to 'yql/essentials/minikql/mkql_program_builder.cpp')
-rw-r--r--yql/essentials/minikql/mkql_program_builder.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/yql/essentials/minikql/mkql_program_builder.cpp b/yql/essentials/minikql/mkql_program_builder.cpp
index bd27a54db9..ee9812c4f9 100644
--- a/yql/essentials/minikql/mkql_program_builder.cpp
+++ b/yql/essentials/minikql/mkql_program_builder.cpp
@@ -3454,7 +3454,8 @@ TRuntimeNode TProgramBuilder::DynamicVariant(TRuntimeNode item, TRuntimeNode ind
auto type = AS_TYPE(TVariantType, variantType);
auto expectedIndexSlot = type->GetUnderlyingType()->IsTuple() ? NUdf::EDataSlot::Uint32 : NUdf::EDataSlot::Utf8;
- auto indexType = AS_TYPE(TDataType, index.GetStaticType());
+ bool isOptional;
+ auto indexType = UnpackOptionalData(index.GetStaticType(), isOptional);
MKQL_ENSURE(indexType->GetDataSlot() == expectedIndexSlot, "Mismatch type of index");
auto resType = TOptionalType::Create(type, Env);