aboutsummaryrefslogtreecommitdiffstats
path: root/yql/essentials/sql/v1/object_processing.cpp
diff options
context:
space:
mode:
authorAlexander Smirnov <alex@ydb.tech>2025-03-12 10:37:13 +0000
committerAlexander Smirnov <alex@ydb.tech>2025-03-12 10:37:13 +0000
commitb27c447af8bffc727382c0dc75272e261cbb4ac4 (patch)
treee0f6199fec84ae26bb5ea26566fa1daa12693e3b /yql/essentials/sql/v1/object_processing.cpp
parentcb56e1cde2824ff3b64be1de4794bff3cab0db61 (diff)
parentd06e9749bd6f0a561ee4fe296cdb3e03a24d1f82 (diff)
downloadydb-b27c447af8bffc727382c0dc75272e261cbb4ac4.tar.gz
Merge pull request #15611 from ydb-platform/merge-libs-250312-0708
Diffstat (limited to 'yql/essentials/sql/v1/object_processing.cpp')
-rw-r--r--yql/essentials/sql/v1/object_processing.cpp20
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)