1 | #pragma once |
---|---|
2 | |
3 | #include <Client/ConnectionPool.h> |
4 | #include <Interpreters/Cluster.h> |
5 | #include <Parsers/IAST.h> |
6 | |
7 | namespace DB |
8 | { |
9 | |
10 | struct Settings; |
11 | class Context; |
12 | class Cluster; |
13 | class Throttler; |
14 | |
15 | namespace ClusterProxy |
16 | { |
17 | |
18 | /// Base class for the implementation of the details of distributed query |
19 | /// execution that are specific to the query type. |
20 | class IStreamFactory |
21 | { |
22 | public: |
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 |