#pragma once #include #include #include namespace DB { namespace ClusterProxy { class SelectQueryConstructor final : public IQueryConstructor { public: SelectQueryConstructor(const QueryProcessingStage::Enum & processed_stage, const Tables & external_tables); BlockInputStreamPtr createLocal(ASTPtr query_ast, const Context & context, const Cluster::Address & address) override; BlockInputStreamPtr createRemote(IConnectionPool * pool, const std::string & query, const Settings & settings, ThrottlerPtr throttler, const Context & context) override; BlockInputStreamPtr createRemote(ConnectionPoolsPtr & pools, const std::string & query, const Settings & settings, ThrottlerPtr throttler, const Context & context) override; bool isInclusive() const override; private: const QueryProcessingStage::Enum & processed_stage; const Tables & external_tables; }; } }