interface.cpp 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  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. , UseAntlr4(false)
  31. {
  32. }
  33. TProgramFactoryOptions& TProgramFactoryOptions::SetUDFsDir(TStringBuf dir) {
  34. UdfsDir_ = dir;
  35. return *this;
  36. }
  37. TProgramFactoryOptions& TProgramFactoryOptions::AddLibrary(NUserData::EDisposition disposition, TStringBuf name, TStringBuf content) {
  38. auto& ref = UserData_.emplace_back();
  39. ref.Type_ = NUserData::EType::LIBRARY;
  40. ref.Disposition_ = disposition;
  41. ref.Name_ = name;
  42. ref.Content_ = content;
  43. return *this;
  44. }
  45. TProgramFactoryOptions& TProgramFactoryOptions::AddFile(NUserData::EDisposition disposition, TStringBuf name, TStringBuf content) {
  46. auto& ref = UserData_.emplace_back();
  47. ref.Type_ = NUserData::EType::FILE;
  48. ref.Disposition_ = disposition;
  49. ref.Name_ = name;
  50. ref.Content_ = content;
  51. return *this;
  52. }
  53. TProgramFactoryOptions& TProgramFactoryOptions::AddUDF(NUserData::EDisposition disposition, TStringBuf name, TStringBuf content) {
  54. auto& ref = UserData_.emplace_back();
  55. ref.Type_ = NUserData::EType::UDF;
  56. ref.Disposition_ = disposition;
  57. ref.Name_ = name;
  58. ref.Content_ = content;
  59. return *this;
  60. }
  61. TProgramFactoryOptions& TProgramFactoryOptions::SetLLVMSettings(TStringBuf llvm_settings) {
  62. LLVMSettings = llvm_settings;
  63. return *this;
  64. }
  65. TProgramFactoryOptions& TProgramFactoryOptions::SetBlockEngineSettings(TStringBuf blockEngineSettings) {
  66. BlockEngineSettings = blockEngineSettings;
  67. return *this;
  68. }
  69. TProgramFactoryOptions& TProgramFactoryOptions::SetExprOutputStream(IOutputStream* exprOutputStream) {
  70. ExprOutputStream = exprOutputStream;
  71. return *this;
  72. }
  73. TProgramFactoryOptions& TProgramFactoryOptions::SetCountersProvider(NKikimr::NUdf::ICountersProvider* countersProvider) {
  74. CountersProvider = countersProvider;
  75. return *this;
  76. }
  77. TProgramFactoryOptions& TProgramFactoryOptions::SetUseNativeYtTypes(bool useNativeTypes) {
  78. NativeYtTypeFlags = useNativeTypes ? NTCF_PRODUCTION : NTCF_NONE;
  79. return *this;
  80. }
  81. TProgramFactoryOptions& TProgramFactoryOptions::SetNativeYtTypeFlags(ui64 nativeTypeFlags) {
  82. NativeYtTypeFlags = nativeTypeFlags;
  83. return *this;
  84. }
  85. TProgramFactoryOptions& TProgramFactoryOptions::SetDeterministicTimeProviderSeed(TMaybe<ui64> seed) {
  86. DeterministicTimeProviderSeed = seed;
  87. return *this;
  88. }
  89. TProgramFactoryOptions& TProgramFactoryOptions::SetUseSystemColumns(bool useSystemColumns) {
  90. UseSystemColumns = useSystemColumns;
  91. return *this;
  92. }
  93. TProgramFactoryOptions& TProgramFactoryOptions::SetUseWorkerPool(bool useWorkerPool) {
  94. UseWorkerPool = useWorkerPool;
  95. return *this;
  96. }
  97. void NYql::NPureCalc::ConfigureLogging(const TLoggingOptions& options) {
  98. InitLogging(options);
  99. }
  100. IProgramFactoryPtr NYql::NPureCalc::MakeProgramFactory(const TProgramFactoryOptions& options) {
  101. return new TProgramFactory(options);
  102. }