| 54 | } |
| 55 | |
| 56 | DataModelPartWrapperPtr createPartWrapperFromModel(const MergeTreeMetaBase & storage, const Protos::DataModelPart && part_model, const String && part_name) |
| 57 | { |
| 58 | DataModelPartWrapperPtr part_model_wrapper = createPartWrapperFromModelBasic(std::move(part_model), std::move(part_name)); |
| 59 | |
| 60 | /// Partition and Minmax index |
| 61 | ReadBufferFromString partition_minmax_buf(part_model_wrapper->part_model->partition_minmax()); |
| 62 | if (unlikely(storage.format_version < MERGE_TREE_DATA_MIN_FORMAT_VERSION_WITH_CUSTOM_PARTITIONING)) |
| 63 | throw Exception("MergeTree data format is too old", ErrorCodes::FORMAT_VERSION_TOO_OLD); |
| 64 | |
| 65 | part_model_wrapper->partition->load(storage, partition_minmax_buf); |
| 66 | if (part_model_wrapper->part_model->rows_count() > 0) |
| 67 | { |
| 68 | part_model_wrapper->minmax_idx = std::make_shared<IMergeTreeDataPart::MinMaxIndex>(); |
| 69 | part_model_wrapper->minmax_idx->load(storage, partition_minmax_buf); |
| 70 | } |
| 71 | |
| 72 | return part_model_wrapper; |
| 73 | } |
| 74 | |
| 75 | DataModelPartWrapperPtr createPartWrapperFromModelBasic(const Protos::DataModelPart && part_model, const String && part_name) |
| 76 | { |