aboutsummaryrefslogtreecommitdiffstats
path: root/yql/essentials/sql/v1/object_processing.cpp
diff options
context:
space:
mode:
authorAlexander Smirnov <alex@ydb.tech>2025-03-12 07:09:44 +0000
committerAlexander Smirnov <alex@ydb.tech>2025-03-12 07:09:44 +0000
commitf31f6ec483fc78a200aef65cf08ee98e8a6a7cea (patch)
tree7428e41dea304eeda9d97ded266d42995478a0b4 /yql/essentials/sql/v1/object_processing.cpp
parent9059c4534bd1b0fb20ba2426eb59640415e24113 (diff)
parent7ae87080b7fdfadae6ebb86360ba3eb4c6325e2d (diff)
downloadydb-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.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)