summaryrefslogtreecommitdiffstats
path: root/yql/essentials/public/purecalc/common/interface.cpp
diff options
context:
space:
mode:
authorvvvv <[email protected]>2024-11-26 12:00:01 +0300
committervvvv <[email protected]>2024-11-26 12:11:55 +0300
commit376f6f42244428b36cde31eaa8c7e89a90d7fd1b (patch)
treeae023e0a2285cfbf8ad4441f6e1a146c2dd1383f /yql/essentials/public/purecalc/common/interface.cpp
parentd7c900fd2ee9f48165550376be3c798be3299a59 (diff)
Moved yql/public/purecalc YQL-19206
init commit_hash:abf729827c312980464da21824f86ea1defe094c
Diffstat (limited to 'yql/essentials/public/purecalc/common/interface.cpp')
-rw-r--r--yql/essentials/public/purecalc/common/interface.cpp128
1 files changed, 128 insertions, 0 deletions
diff --git a/yql/essentials/public/purecalc/common/interface.cpp b/yql/essentials/public/purecalc/common/interface.cpp
new file mode 100644
index 00000000000..6783ad407e0
--- /dev/null
+++ b/yql/essentials/public/purecalc/common/interface.cpp
@@ -0,0 +1,128 @@
+#include "interface.h"
+
+#include <yql/essentials/providers/common/codec/yql_codec_type_flags.h>
+#include <yql/essentials/public/purecalc/common/logger_init.h>
+#include <yql/essentials/public/purecalc/common/program_factory.h>
+
+using namespace NYql;
+using namespace NYql::NPureCalc;
+
+TLoggingOptions::TLoggingOptions()
+ : LogLevel_(ELogPriority::TLOG_ERR)
+ , LogDestination(&Clog)
+{
+}
+
+TLoggingOptions& TLoggingOptions::SetLogLevel(ELogPriority logLevel) {
+ LogLevel_ = logLevel;
+ return *this;
+}
+
+TLoggingOptions& TLoggingOptions::SetLogDestination(IOutputStream* logDestination) {
+ LogDestination = logDestination;
+ return *this;
+}
+
+TProgramFactoryOptions::TProgramFactoryOptions()
+ : UdfsDir_("")
+ , UserData_()
+ , LLVMSettings("OFF")
+ , BlockEngineSettings("disable")
+ , ExprOutputStream(nullptr)
+ , CountersProvider(nullptr)
+ , NativeYtTypeFlags(0)
+ , UseSystemColumns(false)
+ , UseWorkerPool(true)
+{
+}
+
+TProgramFactoryOptions& TProgramFactoryOptions::SetUDFsDir(TStringBuf dir) {
+ UdfsDir_ = dir;
+ return *this;
+}
+
+TProgramFactoryOptions& TProgramFactoryOptions::AddLibrary(NUserData::EDisposition disposition, TStringBuf name, TStringBuf content) {
+ auto& ref = UserData_.emplace_back();
+
+ ref.Type_ = NUserData::EType::LIBRARY;
+ ref.Disposition_ = disposition;
+ ref.Name_ = name;
+ ref.Content_ = content;
+
+ return *this;
+}
+
+TProgramFactoryOptions& TProgramFactoryOptions::AddFile(NUserData::EDisposition disposition, TStringBuf name, TStringBuf content) {
+ auto& ref = UserData_.emplace_back();
+
+ ref.Type_ = NUserData::EType::FILE;
+ ref.Disposition_ = disposition;
+ ref.Name_ = name;
+ ref.Content_ = content;
+
+ return *this;
+}
+
+TProgramFactoryOptions& TProgramFactoryOptions::AddUDF(NUserData::EDisposition disposition, TStringBuf name, TStringBuf content) {
+ auto& ref = UserData_.emplace_back();
+
+ ref.Type_ = NUserData::EType::UDF;
+ ref.Disposition_ = disposition;
+ ref.Name_ = name;
+ ref.Content_ = content;
+
+ return *this;
+}
+
+TProgramFactoryOptions& TProgramFactoryOptions::SetLLVMSettings(TStringBuf llvm_settings) {
+ LLVMSettings = llvm_settings;
+ return *this;
+}
+
+TProgramFactoryOptions& TProgramFactoryOptions::SetBlockEngineSettings(TStringBuf blockEngineSettings) {
+ BlockEngineSettings = blockEngineSettings;
+ return *this;
+}
+
+TProgramFactoryOptions& TProgramFactoryOptions::SetExprOutputStream(IOutputStream* exprOutputStream) {
+ ExprOutputStream = exprOutputStream;
+ return *this;
+}
+
+TProgramFactoryOptions& TProgramFactoryOptions::SetCountersProvider(NKikimr::NUdf::ICountersProvider* countersProvider) {
+ CountersProvider = countersProvider;
+ return *this;
+}
+
+TProgramFactoryOptions& TProgramFactoryOptions::SetUseNativeYtTypes(bool useNativeTypes) {
+ NativeYtTypeFlags = useNativeTypes ? NTCF_PRODUCTION : NTCF_NONE;
+ return *this;
+}
+
+TProgramFactoryOptions& TProgramFactoryOptions::SetNativeYtTypeFlags(ui64 nativeTypeFlags) {
+ NativeYtTypeFlags = nativeTypeFlags;
+ return *this;
+}
+
+TProgramFactoryOptions& TProgramFactoryOptions::SetDeterministicTimeProviderSeed(TMaybe<ui64> seed) {
+ DeterministicTimeProviderSeed = seed;
+ return *this;
+}
+
+TProgramFactoryOptions& TProgramFactoryOptions::SetUseSystemColumns(bool useSystemColumns) {
+ UseSystemColumns = useSystemColumns;
+ return *this;
+}
+
+TProgramFactoryOptions& TProgramFactoryOptions::SetUseWorkerPool(bool useWorkerPool) {
+ UseWorkerPool = useWorkerPool;
+ return *this;
+}
+
+void NYql::NPureCalc::ConfigureLogging(const TLoggingOptions& options) {
+ InitLogging(options);
+}
+
+IProgramFactoryPtr NYql::NPureCalc::MakeProgramFactory(const TProgramFactoryOptions& options) {
+ return new TProgramFactory(options);
+}