1 | #pragma once |
---|---|
2 | |
3 | #include <Core/Types.h> |
4 | #include <Storages/MutationCommands.h> |
5 | #include <Storages/MergeTree/MergeTreePartInfo.h> |
6 | |
7 | |
8 | namespace DB |
9 | { |
10 | |
11 | /// A mutation entry for non-replicated MergeTree storage engines. |
12 | /// Stores information about mutation in file mutation_*.txt. |
13 | struct MergeTreeMutationEntry |
14 | { |
15 | time_t create_time = 0; |
16 | MutationCommands commands; |
17 | |
18 | String path_prefix; |
19 | String file_name; |
20 | bool is_temp = false; |
21 | |
22 | Int64 block_number = 0; |
23 | |
24 | String latest_failed_part; |
25 | MergeTreePartInfo latest_failed_part_info; |
26 | time_t latest_fail_time = 0; |
27 | String latest_fail_reason; |
28 | |
29 | /// Create a new entry and write it to a temporary file. |
30 | MergeTreeMutationEntry(MutationCommands commands_, const String & path_prefix_, Int64 tmp_number); |
31 | MergeTreeMutationEntry(const MergeTreeMutationEntry &) = delete; |
32 | MergeTreeMutationEntry(MergeTreeMutationEntry &&) = default; |
33 | |
34 | /// Commit entry and rename it to a permanent file. |
35 | void commit(Int64 block_number_); |
36 | |
37 | void removeFile(); |
38 | |
39 | /// Load an existing entry. |
40 | MergeTreeMutationEntry(const String & path_prefix_, const String & file_name_); |
41 | |
42 | ~MergeTreeMutationEntry(); |
43 | }; |
44 | |
45 | } |
46 |