aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormpereskokova <mpereskokova@yandex-team.com>2023-08-02 19:55:33 +0300
committermpereskokova <mpereskokova@yandex-team.com>2023-08-02 19:55:33 +0300
commiteec9773c044273c28a4d1ade1c7547b95acbcbde (patch)
treea6eaa360366a1032cba6d329ab62528971ca8f9e
parent1015cf15287bb469d7b04c3135650e3812c3f25f (diff)
downloadydb-eec9773c044273c28a4d1ade1c7547b95acbcbde.tar.gz
Make possible to add UserDataTable in TProgram
-rw-r--r--ydb/library/yql/core/facade/yql_facade.cpp9
-rw-r--r--ydb/library/yql/core/facade/yql_facade.h2
2 files changed, 11 insertions, 0 deletions
diff --git a/ydb/library/yql/core/facade/yql_facade.cpp b/ydb/library/yql/core/facade/yql_facade.cpp
index 7872f74a29d..6019a537d75 100644
--- a/ydb/library/yql/core/facade/yql_facade.cpp
+++ b/ydb/library/yql/core/facade/yql_facade.cpp
@@ -410,6 +410,15 @@ TString TProgram::TakeSessionId() {
}
}
+void TProgram::AddUserDataTable(const TUserDataTable& userDataTable) {
+ for (const auto& p : userDataTable) {
+ if (!SavedUserDataTable_.emplace(p).second) {
+ ythrow yexception() << "UserDataTable already has user data block with key " << p.first;
+ }
+ UserDataStorage_->AddUserDataBlock(p.first, p.second);
+ }
+}
+
bool TProgram::ParseYql() {
YQL_PROFILE_FUNC(TRACE);
YQL_ENSURE(SourceSyntax_ == ESourceSyntax::Unknown);
diff --git a/ydb/library/yql/core/facade/yql_facade.h b/ydb/library/yql/core/facade/yql_facade.h
index 149c49c1b66..26529ed3883 100644
--- a/ydb/library/yql/core/facade/yql_facade.h
+++ b/ydb/library/yql/core/facade/yql_facade.h
@@ -102,6 +102,8 @@ public:
public:
~TProgram();
+ void AddUserDataTable(const TUserDataTable& userDataTable);
+
bool ParseYql();
bool ParseSql();
bool ParseSql(const NSQLTranslation::TTranslationSettings& settings);