yql_dq_integration_impl.h 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. #pragma once
  2. #include <yql/essentials/core/dq_integration/yql_dq_integration.h>
  3. namespace NYql {
  4. class TDqIntegrationBase: public IDqIntegration {
  5. public:
  6. ui64 Partition(const TExprNode& node, TVector<TString>& partitions, TString* clusterName, TExprContext& ctx, const TPartitionSettings& settings) override;
  7. bool CheckPragmas(const TExprNode& node, TExprContext& ctx, bool skipIssues) override;
  8. bool CanRead(const TExprNode& read, TExprContext& ctx, bool skipIssues) override;
  9. TMaybe<ui64> EstimateReadSize(ui64 dataSizePerJob, ui32 maxTasksPerStage, const TVector<const TExprNode*>& nodes, TExprContext& ctx) override;
  10. TExprNode::TPtr WrapRead(const TExprNode::TPtr& read, TExprContext& ctx, const TWrapReadSettings& settings) override;
  11. TMaybe<TOptimizerStatistics> ReadStatistics(const TExprNode::TPtr& readWrap, TExprContext& ctx) override;
  12. TExprNode::TPtr RecaptureWrite(const TExprNode::TPtr& write, TExprContext& ctx) override;
  13. void RegisterMkqlCompiler(NCommon::TMkqlCallableCompilerBase& compiler) override;
  14. TMaybe<bool> CanWrite(const TExprNode& write, TExprContext& ctx) override;
  15. bool CanBlockRead(const NNodes::TExprBase& node, TExprContext& ctx, TTypeAnnotationContext& typesCtx) override;
  16. TExprNode::TPtr WrapWrite(const TExprNode::TPtr& write, TExprContext& ctx) override;
  17. bool CanFallback() override;
  18. void FillSourceSettings(const TExprNode& node, ::google::protobuf::Any& settings, TString& sourceType, size_t, TExprContext&) override;
  19. void FillLookupSourceSettings(const TExprNode& node, ::google::protobuf::Any& settings, TString& sourceType) override;
  20. void FillSinkSettings(const TExprNode& node, ::google::protobuf::Any& settings, TString& sinkType) override;
  21. void FillTransformSettings(const TExprNode& node, ::google::protobuf::Any& settings) override;
  22. void Annotate(const TExprNode& node, THashMap<TString, TString>& params) override;
  23. bool PrepareFullResultTableParams(const TExprNode& root, TExprContext& ctx, THashMap<TString, TString>& params, THashMap<TString, TString>& secureParams, const TMaybe<TColumnOrder>& order = {}) override;
  24. void WriteFullResultTableRef(NYson::TYsonWriter& writer, const TVector<TString>& columns, const THashMap<TString, TString>& graphParams) override;
  25. bool FillSourcePlanProperties(const NNodes::TExprBase& node, TMap<TString, NJson::TJsonValue>& properties) override;
  26. bool FillSinkPlanProperties(const NNodes::TExprBase& node, TMap<TString, NJson::TJsonValue>& properties) override;
  27. void ConfigurePeepholePipeline(bool beforeDqTransforms, const THashMap<TString, TString>& params, TTransformationPipeline* pipeline) override;
  28. void NotifyDqTimeout() override;
  29. protected:
  30. bool CanBlockReadTypes(const TStructExprType* node);
  31. };
  32. } // namespace NYql