| 1 | #pragma once |
|---|---|
| 2 | |
| 3 | #include <Parsers/IAST.h> |
| 4 | #include <Storages/MergeTree/MergeTreeDataFormatVersion.h> |
| 5 | #include <Core/Types.h> |
| 6 | |
| 7 | namespace DB |
| 8 | { |
| 9 | |
| 10 | class MergeTreeData; |
| 11 | class WriteBuffer; |
| 12 | class ReadBuffer; |
| 13 | |
| 14 | /** The basic parameters of ReplicatedMergeTree table engine for saving in ZooKeeper. |
| 15 | * Lets you verify that they match local ones. |
| 16 | */ |
| 17 | struct ReplicatedMergeTreeTableMetadata |
| 18 | { |
| 19 | String date_column; |
| 20 | String sampling_expression; |
| 21 | UInt64 index_granularity; |
| 22 | int merging_params_mode; |
| 23 | String sign_column; |
| 24 | String primary_key; |
| 25 | MergeTreeDataFormatVersion data_format_version; |
| 26 | String partition_key; |
| 27 | String sorting_key; |
| 28 | String skip_indices; |
| 29 | String constraints; |
| 30 | String ttl_table; |
| 31 | String ttl_move; |
| 32 | UInt64 index_granularity_bytes; |
| 33 | |
| 34 | ReplicatedMergeTreeTableMetadata() = default; |
| 35 | explicit ReplicatedMergeTreeTableMetadata(const MergeTreeData & data); |
| 36 | |
| 37 | void read(ReadBuffer & in); |
| 38 | static ReplicatedMergeTreeTableMetadata parse(const String & s); |
| 39 | |
| 40 | void write(WriteBuffer & out) const; |
| 41 | String toString() const; |
| 42 | |
| 43 | struct Diff |
| 44 | { |
| 45 | bool sorting_key_changed = false; |
| 46 | String new_sorting_key; |
| 47 | |
| 48 | bool skip_indices_changed = false; |
| 49 | String new_skip_indices; |
| 50 | |
| 51 | bool constraints_changed = false; |
| 52 | String new_constraints; |
| 53 | |
| 54 | bool ttl_table_changed = false; |
| 55 | String new_ttl_table; |
| 56 | |
| 57 | bool ttl_move_changed = false; |
| 58 | String new_ttl_move; |
| 59 | |
| 60 | bool empty() const |
| 61 | { |
| 62 | return !sorting_key_changed && !skip_indices_changed && !ttl_table_changed && !constraints_changed && !ttl_move_changed; |
| 63 | } |
| 64 | }; |
| 65 | |
| 66 | Diff checkAndFindDiff(const ReplicatedMergeTreeTableMetadata & from_zk, bool allow_alter) const; |
| 67 | |
| 68 | private: |
| 69 | bool index_granularity_bytes_found_in_zk = false; |
| 70 | }; |
| 71 | |
| 72 | } |
| 73 |