interface.cpp 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. #include "interface.h"
  2. #include <yql/essentials/providers/common/codec/yql_codec_type_flags.h>
  3. #include <yql/essentials/public/purecalc/common/logger_init.h>
  4. #include <yql/essentials/public/purecalc/common/program_factory.h>
  5. using namespace NYql;
  6. using namespace NYql::NPureCalc;
  7. TLoggingOptions::TLoggingOptions()
  8. : LogLevel_(ELogPriority::TLOG_ERR)
  9. , LogDestination(&Clog)
  10. {
  11. }
  12. TLoggingOptions& TLoggingOptions::SetLogLevel(ELogPriority logLevel) {
  13. LogLevel_ = logLevel;
  14. return *this;
  15. }
  16. TLoggingOptions& TLoggingOptions::SetLogDestination(IOutputStream* logDestination) {
  17. LogDestination = logDestination;
  18. return *this;
  19. }
  20. TProgramFactoryOptions::TProgramFactoryOptions()
  21. : UdfsDir_("")
  22. , UserData_()
  23. , LLVMSettings("OFF")
  24. , BlockEngineSettings("disable")
  25. , ExprOutputStream(nullptr)
  26. , CountersProvider(nullptr)
  27. , NativeYtTypeFlags(0)
  28. , UseSystemColumns(false)
  29. , UseWorkerPool(true)
  30. {
  31. }
  32. TProgramFactoryOptions& TProgramFactoryOptions::SetUDFsDir(TStringBuf dir) {
  33. UdfsDir_ = dir;
  34. return *this;
  35. }
  36. TProgramFactoryOptions& TProgramFactoryOptions::AddLibrary(NUserData::EDisposition disposition, TStringBuf name, TStringBuf content) {
  37. auto& ref = UserData_.emplace_back();
  38. ref.Type_ = NUserData::EType::LIBRARY;
  39. ref.Disposition_ = disposition;
  40. ref.Name_ = name;
  41. ref.Content_ = content;
  42. return *this;
  43. }
  44. TProgramFactoryOptions& TProgramFactoryOptions::AddFile(NUserData::EDisposition disposition, TStringBuf name, TStringBuf content) {
  45. auto& ref = UserData_.emplace_back();
  46. ref.Type_ = NUserData::EType::FILE;
  47. ref.Disposition_ = disposition;
  48. ref.Name_ = name;
  49. ref.Content_ = content;
  50. return *this;
  51. }
  52. TProgramFactoryOptions& TProgramFactoryOptions::AddUDF(NUserData::EDisposition disposition, TStringBuf name, TStringBuf content) {
  53. auto& ref = UserData_.emplace_back();
  54. ref.Type_ = NUserData::EType::UDF;
  55. ref.Disposition_ = disposition;
  56. ref.Name_ = name;
  57. ref.Content_ = content;
  58. return *this;
  59. }
  60. TProgramFactoryOptions& TProgramFactoryOptions::SetLLVMSettings(TStringBuf llvm_settings) {
  61. LLVMSettings = llvm_settings;
  62. return *this;
  63. }
  64. TProgramFactoryOptions& TProgramFactoryOptions::SetBlockEngineSettings(TStringBuf blockEngineSettings) {
  65. BlockEngineSettings = blockEngineSettings;
  66. return *this;
  67. }
  68. TProgramFactoryOptions& TProgramFactoryOptions::SetExprOutputStream(IOutputStream* exprOutputStream) {
  69. ExprOutputStream = exprOutputStream;
  70. return *this;
  71. }
  72. TProgramFactoryOptions& TProgramFactoryOptions::SetCountersProvider(NKikimr::NUdf::ICountersProvider* countersProvider) {
  73. CountersProvider = countersProvider;
  74. return *this;
  75. }
  76. TProgramFactoryOptions& TProgramFactoryOptions::SetUseNativeYtTypes(bool useNativeTypes) {
  77. NativeYtTypeFlags = useNativeTypes ? NTCF_PRODUCTION : NTCF_NONE;
  78. return *this;
  79. }
  80. TProgramFactoryOptions& TProgramFactoryOptions::SetNativeYtTypeFlags(ui64 nativeTypeFlags) {
  81. NativeYtTypeFlags = nativeTypeFlags;
  82. return *this;
  83. }
  84. TProgramFactoryOptions& TProgramFactoryOptions::SetDeterministicTimeProviderSeed(TMaybe<ui64> seed) {
  85. DeterministicTimeProviderSeed = seed;
  86. return *this;
  87. }
  88. TProgramFactoryOptions& TProgramFactoryOptions::SetUseSystemColumns(bool useSystemColumns) {
  89. UseSystemColumns = useSystemColumns;
  90. return *this;
  91. }
  92. TProgramFactoryOptions& TProgramFactoryOptions::SetUseWorkerPool(bool useWorkerPool) {
  93. UseWorkerPool = useWorkerPool;
  94. return *this;
  95. }
  96. void NYql::NPureCalc::ConfigureLogging(const TLoggingOptions& options) {
  97. InitLogging(options);
  98. }
  99. IProgramFactoryPtr NYql::NPureCalc::MakeProgramFactory(const TProgramFactoryOptions& options) {
  100. return new TProgramFactory(options);
  101. }