1#pragma once
2
3#include <Client/ConnectionPool.h>
4#include <Interpreters/Cluster.h>
5#include <Parsers/IAST.h>
6
7namespace DB
8{
9
10struct Settings;
11class Context;
12class Cluster;
13class Throttler;
14
15namespace ClusterProxy
16{
17
18/// Base class for the implementation of the details of distributed query
19/// execution that are specific to the query type.
20class IStreamFactory
21{
22public:
23 virtual ~IStreamFactory() {}
24
25 virtual void createForShard(
26 const Cluster::ShardInfo & shard_info,
27 const String & query, const ASTPtr & query_ast,
28 const Context & context, const ThrottlerPtr & throttler,
29 BlockInputStreams & res) = 0;
30};
31
32}
33
34}
35