From 921d32485bb0ca1dea638b0b0741f4a023ce419d Mon Sep 17 00:00:00 2001 From: CurtizJ Date: Fri, 22 Nov 2019 16:58:18 +0300 Subject: [PATCH] polymorphic parts (development) --- dbms/src/Storages/MergeTree/IMergeTreeReader.h | 1 - .../MergeTree/MergeTreeDataMergerMutator.cpp | 17 ++++++----------- .../Storages/MergeTree/MergeTreeDataWriter.cpp | 1 + 3 files changed, 7 insertions(+), 12 deletions(-) diff --git a/dbms/src/Storages/MergeTree/IMergeTreeReader.h b/dbms/src/Storages/MergeTree/IMergeTreeReader.h index 92b5dcbae98..df92f89b4e6 100644 --- a/dbms/src/Storages/MergeTree/IMergeTreeReader.h +++ b/dbms/src/Storages/MergeTree/IMergeTreeReader.h @@ -76,7 +76,6 @@ protected: const MergeTreeData & storage; MarkRanges all_mark_ranges; - friend class MergeTreeRangeReader::DelayedStream; }; diff --git a/dbms/src/Storages/MergeTree/MergeTreeDataMergerMutator.cpp b/dbms/src/Storages/MergeTree/MergeTreeDataMergerMutator.cpp index bf813a96c26..3526a5ff1ea 100644 --- a/dbms/src/Storages/MergeTree/MergeTreeDataMergerMutator.cpp +++ b/dbms/src/Storages/MergeTree/MergeTreeDataMergerMutator.cpp @@ -564,20 +564,15 @@ MergeTreeData::MutableDataPartPtr MergeTreeDataMergerMutator::mergePartsToTempor all_columns, data.sorting_key_expr, data.skip_indices, data.merging_params, gathering_columns, gathering_column_names, merging_columns, merging_column_names); - size_t total_bytes = 0; - size_t total_rows = 0; - for (const auto & part : future_part.parts) - { - total_bytes += part->bytes_on_disk; - total_rows += part->rows_count; - } - MergeTreeData::MutableDataPartPtr new_data_part = data.createPart( - future_part.name, future_part.part_info, + future_part.name, + future_part.part_info, space_reservation->getDisk(), - total_bytes, total_rows, + merge_entry->total_size_bytes_compressed, + merge_entry->total_rows_count, TMP_PREFIX + future_part.name); + new_data_part->setColumns(all_columns); new_data_part->partition.assign(future_part.getPartition()); new_data_part->is_temp = true; @@ -964,7 +959,7 @@ MergeTreeData::MutableDataPartPtr MergeTreeDataMergerMutator::mutatePartToTempor future_part.name, source_part->getType(), future_part.part_info, space_reservation->getDisk(), "tmp_mut_" + future_part.name); - + new_data_part->is_temp = true; new_data_part->ttl_infos = source_part->ttl_infos; new_data_part->index_granularity_info = source_part->index_granularity_info; diff --git a/dbms/src/Storages/MergeTree/MergeTreeDataWriter.cpp b/dbms/src/Storages/MergeTree/MergeTreeDataWriter.cpp index e74d446cfdf..c51bd3b4dda 100644 --- a/dbms/src/Storages/MergeTree/MergeTreeDataWriter.cpp +++ b/dbms/src/Storages/MergeTree/MergeTreeDataWriter.cpp @@ -265,6 +265,7 @@ MergeTreeData::MutableDataPartPtr MergeTreeDataWriter::writeTempPart(BlockWithPa auto compression_codec = data.global_context.chooseCompressionCodec(0, 0); NamesAndTypesList columns = data.getColumns().getAllPhysical().filter(block.getNames()); + new_data_part->setColumns(columns); MergedBlockOutputStream out(new_data_part, columns, compression_codec);