#pragma once #include namespace NYql { class TDqIntegrationBase: public IDqIntegration { public: ui64 Partition(const TExprNode& node, TVector& partitions, TString* clusterName, TExprContext& ctx, const TPartitionSettings& settings) override; bool CheckPragmas(const TExprNode& node, TExprContext& ctx, bool skipIssues) override; bool CanRead(const TExprNode& read, TExprContext& ctx, bool skipIssues) override; TMaybe EstimateReadSize(ui64 dataSizePerJob, ui32 maxTasksPerStage, const TVector& nodes, TExprContext& ctx) override; TExprNode::TPtr WrapRead(const TExprNode::TPtr& read, TExprContext& ctx, const TWrapReadSettings& settings) override; TMaybe ReadStatistics(const TExprNode::TPtr& readWrap, TExprContext& ctx) override; TExprNode::TPtr RecaptureWrite(const TExprNode::TPtr& write, TExprContext& ctx) override; void RegisterMkqlCompiler(NCommon::TMkqlCallableCompilerBase& compiler) override; TMaybe CanWrite(const TExprNode& write, TExprContext& ctx) override; bool CanBlockRead(const NNodes::TExprBase& node, TExprContext& ctx, TTypeAnnotationContext& typesCtx) override; TExprNode::TPtr WrapWrite(const TExprNode::TPtr& write, TExprContext& ctx) override; bool CanFallback() override; void FillSourceSettings(const TExprNode& node, ::google::protobuf::Any& settings, TString& sourceType, size_t, TExprContext&) override; void FillLookupSourceSettings(const TExprNode& node, ::google::protobuf::Any& settings, TString& sourceType) override; void FillSinkSettings(const TExprNode& node, ::google::protobuf::Any& settings, TString& sinkType) override; void FillTransformSettings(const TExprNode& node, ::google::protobuf::Any& settings) override; void Annotate(const TExprNode& node, THashMap& params) override; bool PrepareFullResultTableParams(const TExprNode& root, TExprContext& ctx, THashMap& params, THashMap& secureParams, const TMaybe& order = {}) override; void WriteFullResultTableRef(NYson::TYsonWriter& writer, const TVector& columns, const THashMap& graphParams) override; bool FillSourcePlanProperties(const NNodes::TExprBase& node, TMap& properties) override; bool FillSinkPlanProperties(const NNodes::TExprBase& node, TMap& properties) override; void ConfigurePeepholePipeline(bool beforeDqTransforms, const THashMap& params, TTransformationPipeline* pipeline) override; void NotifyDqTimeout() override; protected: bool CanBlockReadTypes(const TStructExprType* node); }; } // namespace NYql