blob: ff85a0d67724ac7e6dbd1f9a039327a5a15c2851 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
#pragma once
#include <functional>
#include <QueryPipeline/QueryPipeline.h>
namespace DB
{
class ProcessListEntry;
struct BlockIO
{
BlockIO() = default;
BlockIO(BlockIO &&) = default;
BlockIO & operator= (BlockIO && rhs) noexcept;
~BlockIO();
BlockIO(const BlockIO &) = delete;
BlockIO & operator= (const BlockIO & rhs) = delete;
std::shared_ptr<ProcessListEntry> process_list_entry;
QueryPipeline pipeline;
/// Callbacks for query logging could be set here.
std::function<void(QueryPipeline &)> finish_callback;
std::function<void(bool)> exception_callback;
/// When it is true, don't bother sending any non-empty blocks to the out stream
bool null_format = false;
void onFinish();
void onException();
void onCancelOrConnectionLoss();
/// Set is_all_data_sent in system.processes for this query.
void setAllDataSent() const;
private:
void reset();
};
}
|