diff options
author | vvvv <vvvv@yandex-team.com> | 2025-01-27 17:45:33 +0300 |
---|---|---|
committer | vvvv <vvvv@yandex-team.com> | 2025-01-27 18:05:00 +0300 |
commit | 33900924b69623bce3c8920ff93073794ed536ef (patch) | |
tree | 9996780468aa6ce8ae1a1380a567bb4c8cc2bf27 /yql/essentials/minikql/mkql_program_builder.cpp | |
parent | edcfedc60aae21c05abac8edd88ba1ab3c90f77c (diff) | |
download | ydb-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.cpp | 3 |
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); |