diff options
author | Alexander Smirnov <alex@ydb.tech> | 2025-03-12 07:09:44 +0000 |
---|---|---|
committer | Alexander Smirnov <alex@ydb.tech> | 2025-03-12 07:09:44 +0000 |
commit | f31f6ec483fc78a200aef65cf08ee98e8a6a7cea (patch) | |
tree | 7428e41dea304eeda9d97ded266d42995478a0b4 /yql/essentials/sql/v1/object_processing.cpp | |
parent | 9059c4534bd1b0fb20ba2426eb59640415e24113 (diff) | |
parent | 7ae87080b7fdfadae6ebb86360ba3eb4c6325e2d (diff) | |
download | ydb-f31f6ec483fc78a200aef65cf08ee98e8a6a7cea.tar.gz |
Merge branch 'rightlib' into merge-libs-250312-0708
Diffstat (limited to 'yql/essentials/sql/v1/object_processing.cpp')
-rw-r--r-- | yql/essentials/sql/v1/object_processing.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/yql/essentials/sql/v1/object_processing.cpp b/yql/essentials/sql/v1/object_processing.cpp index 80e3962bf8..69d6ae342a 100644 --- a/yql/essentials/sql/v1/object_processing.cpp +++ b/yql/essentials/sql/v1/object_processing.cpp @@ -57,6 +57,26 @@ INode::TPtr TCreateObject::FillFeatures(INode::TPtr options) const { return options; } +namespace { + +bool InitFeatures(TContext& ctx, ISource* src, std::map<TString, TDeferredAtom>& features) { + for (auto& [key, value] : features) { + if (value.HasNode() && !value.Build()->Init(ctx, src)) { + return false; + } + } + return true; +} + +} + +bool TCreateObject::DoInit(TContext& ctx, ISource* src) { + if (!InitFeatures(ctx, src, Features)) { + return false; + } + return TObjectProcessorImpl::DoInit(ctx, src); +} + TObjectOperatorContext::TObjectOperatorContext(TScopedStatePtr scoped) : Scoped(scoped) , ServiceId(Scoped->CurrService) |