1 | #pragma once |
2 | |
3 | #include <Storages/ColumnsDescription.h> |
4 | #include <Storages/IndicesDescription.h> |
5 | #include <Storages/ConstraintsDescription.h> |
6 | #include <Parsers/IAST_fwd.h> |
7 | |
8 | namespace DB |
9 | { |
10 | |
11 | /// Structure represent table metadata stored in memory. |
12 | /// Only one storage engine support all fields -- MergeTree. |
13 | /// Complete table AST can be recreated from this struct. |
14 | struct StorageInMemoryMetadata |
15 | { |
16 | /// Columns of table with their names, types, |
17 | /// defaults, comments, etc. All table engines have columns. |
18 | ColumnsDescription columns; |
19 | /// Table indices. Currently supported for MergeTree only. |
20 | IndicesDescription indices; |
21 | /// Table constraints. Currently supported for MergeTree only. |
22 | ConstraintsDescription constraints; |
23 | /// PARTITION BY expression. Currently supported for MergeTree only. |
24 | ASTPtr partition_by_ast = nullptr; |
25 | /// ORDER BY expression. Required field for all MergeTree tables |
26 | /// even in old syntax MergeTree(partition_key, order_by, ...) |
27 | ASTPtr order_by_ast = nullptr; |
28 | /// PRIMARY KEY expression. If absent, than equal to order_by_ast. |
29 | ASTPtr primary_key_ast = nullptr; |
30 | /// TTL expression for whole table. Supported for MergeTree only. |
31 | ASTPtr ttl_for_table_ast = nullptr; |
32 | /// SAMPLE BY expression. Supported for MergeTree only. |
33 | ASTPtr sample_by_ast = nullptr; |
34 | /// SETTINGS expression. Supported for MergeTree, Buffer and Kafka. |
35 | ASTPtr settings_ast = nullptr; |
36 | }; |
37 | |
38 | } |
39 | |