diff options
author | vvvv <[email protected]> | 2024-11-26 12:00:01 +0300 |
---|---|---|
committer | vvvv <[email protected]> | 2024-11-26 12:11:55 +0300 |
commit | 376f6f42244428b36cde31eaa8c7e89a90d7fd1b (patch) | |
tree | ae023e0a2285cfbf8ad4441f6e1a146c2dd1383f /yql/essentials/public/purecalc/common/interface.cpp | |
parent | d7c900fd2ee9f48165550376be3c798be3299a59 (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.cpp | 128 |
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); +} |