| 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 |  | 
|---|