From 6f673407ff48fe4e19851ff80af7c8825adc7299 Mon Sep 17 00:00:00 2001 From: CurtizJ Date: Wed, 18 Dec 2019 19:27:49 +0300 Subject: [PATCH] polymorphic parts (development) cleanup --- .../MergeTree/IMergeTreeDataPartWriter.cpp | 1 - .../MergeTree/IMergeTreeDataPartWriter.h | 1 - .../MergeTree/MergeTreeIndexGranularity.h | 2 +- .../MergeTreeIndexGranularityInfo.cpp | 26 ++++++++++++++++++ .../MergeTree/MergeTreeIndexGranularityInfo.h | 27 ++----------------- .../MergeTree/MergeTreePartsMover.cpp | 2 +- .../Storages/MergeTree/MergeTreeReadPool.cpp | 2 +- .../MergeTree/MergeTreeReaderCompact.h | 3 +-- dbms/src/Storages/MergeTree/MergeTreeWriter.h | 13 --------- dbms/src/Storages/StorageMergeTree.cpp | 1 + 10 files changed, 33 insertions(+), 45 deletions(-) delete mode 100644 dbms/src/Storages/MergeTree/MergeTreeWriter.h diff --git a/dbms/src/Storages/MergeTree/IMergeTreeDataPartWriter.cpp b/dbms/src/Storages/MergeTree/IMergeTreeDataPartWriter.cpp index e96ba1b299f..0a0ec3d6422 100644 --- a/dbms/src/Storages/MergeTree/IMergeTreeDataPartWriter.cpp +++ b/dbms/src/Storages/MergeTree/IMergeTreeDataPartWriter.cpp @@ -7,7 +7,6 @@ namespace DB namespace { - // constexpr auto DATA_FILE_EXTENSION = ".bin"; constexpr auto INDEX_FILE_EXTENSION = ".idx"; } diff --git a/dbms/src/Storages/MergeTree/IMergeTreeDataPartWriter.h b/dbms/src/Storages/MergeTree/IMergeTreeDataPartWriter.h index 75219f080b5..b958376ba43 100644 --- a/dbms/src/Storages/MergeTree/IMergeTreeDataPartWriter.h +++ b/dbms/src/Storages/MergeTree/IMergeTreeDataPartWriter.h @@ -8,7 +8,6 @@ #include #include #include -// #include #include diff --git a/dbms/src/Storages/MergeTree/MergeTreeIndexGranularity.h b/dbms/src/Storages/MergeTree/MergeTreeIndexGranularity.h index 053eebccb25..7a17ddfa132 100644 --- a/dbms/src/Storages/MergeTree/MergeTreeIndexGranularity.h +++ b/dbms/src/Storages/MergeTree/MergeTreeIndexGranularity.h @@ -5,7 +5,7 @@ namespace DB { -/// Class contains information about index granularity in rows ofIMergeTreeDataPart +/// Class contains information about index granularity in rows of MergeTreeDataPart /// Inside it contains vector of partial sums of rows after mark: /// |-----|---|----|----| /// | 5 | 8 | 12 | 16 | diff --git a/dbms/src/Storages/MergeTree/MergeTreeIndexGranularityInfo.cpp b/dbms/src/Storages/MergeTree/MergeTreeIndexGranularityInfo.cpp index f29b276c2bd..460ed4df3ed 100644 --- a/dbms/src/Storages/MergeTree/MergeTreeIndexGranularityInfo.cpp +++ b/dbms/src/Storages/MergeTree/MergeTreeIndexGranularityInfo.cpp @@ -81,4 +81,30 @@ void MergeTreeIndexGranularityInfo::setNonAdaptive() index_granularity_bytes = 0; } +std::string getAdaptiveMrkExtension(MergeTreeDataPartType part_type) +{ + switch(part_type) + { + case MergeTreeDataPartType::WIDE: + return ".mrk2"; + case MergeTreeDataPartType::COMPACT: + return ".mrk3"; + default: + throw Exception("Unknown part type", ErrorCodes::UNKNOWN_PART_TYPE); + } +} + +size_t getAdaptiveMrkSize(MergeTreeDataPartType part_type, size_t columns_num) +{ + switch(part_type) + { + case MergeTreeDataPartType::WIDE: + return sizeof(UInt64) * 3; + case MergeTreeDataPartType::COMPACT: + return sizeof(UInt64) * (columns_num * 2 + 1); + default: + throw Exception("Unknown part type", ErrorCodes::UNKNOWN_PART_TYPE); + } +} + } diff --git a/dbms/src/Storages/MergeTree/MergeTreeIndexGranularityInfo.h b/dbms/src/Storages/MergeTree/MergeTreeIndexGranularityInfo.h index ae91d604b34..a51bed5bf69 100644 --- a/dbms/src/Storages/MergeTree/MergeTreeIndexGranularityInfo.h +++ b/dbms/src/Storages/MergeTree/MergeTreeIndexGranularityInfo.h @@ -63,30 +63,7 @@ private: constexpr inline auto getNonAdaptiveMrkExtension() { return ".mrk"; } constexpr inline auto getNonAdaptiveMrkSize() { return sizeof(MarkInCompressedFile) * 2; } -inline std::string getAdaptiveMrkExtension(MergeTreeDataPartType part_type) -{ - switch(part_type) - { - case MergeTreeDataPartType::WIDE: - return ".mrk2"; - case MergeTreeDataPartType::COMPACT: - return ".mrk3"; - default: - throw Exception("Unknown part type", ErrorCodes::UNKNOWN_PART_TYPE); - } -} - -inline size_t getAdaptiveMrkSize(MergeTreeDataPartType part_type, size_t columns_num) -{ - switch(part_type) - { - case MergeTreeDataPartType::WIDE: - return sizeof(UInt64) * 3; - case MergeTreeDataPartType::COMPACT: - return sizeof(UInt64) * (columns_num * 2 + 1); - default: - throw Exception("Unknown part type", ErrorCodes::UNKNOWN_PART_TYPE); - } -} +std::string getAdaptiveMrkExtension(MergeTreeDataPartType part_type); +size_t getAdaptiveMrkSize(MergeTreeDataPartType part_type, size_t columns_num); } diff --git a/dbms/src/Storages/MergeTree/MergeTreePartsMover.cpp b/dbms/src/Storages/MergeTree/MergeTreePartsMover.cpp index 8476dc0794a..84617dfb687 100644 --- a/dbms/src/Storages/MergeTree/MergeTreePartsMover.cpp +++ b/dbms/src/Storages/MergeTree/MergeTreePartsMover.cpp @@ -77,7 +77,7 @@ bool MergeTreePartsMover::selectPartsForMove( const AllowedMovingPredicate & can_move, const std::lock_guard & /* moving_parts_lock */) { - auto data_parts = data->getDataPartsVector(); + MergeTreeData::DataPartsVector data_parts = data->getDataPartsVector(); if (data_parts.empty()) return false; diff --git a/dbms/src/Storages/MergeTree/MergeTreeReadPool.cpp b/dbms/src/Storages/MergeTree/MergeTreeReadPool.cpp index 7093bef21e4..3bbefa3ade7 100644 --- a/dbms/src/Storages/MergeTree/MergeTreeReadPool.cpp +++ b/dbms/src/Storages/MergeTree/MergeTreeReadPool.cpp @@ -33,7 +33,7 @@ MergeTreeReadPool::MergeTreeReadPool( for (auto & part_ranges : parts_ranges) std::reverse(std::begin(part_ranges.ranges), std::end(part_ranges.ranges)); - /// parts don't contain duplicateIMergeTreeDataPart's. + /// parts don't contain duplicate MergeTreeDataPart's. const auto per_part_sum_marks = fillPerPartInfo(parts_, check_columns_); fillPerThreadInfo(threads_, sum_marks_, per_part_sum_marks, parts_, min_marks_for_concurrent_read_); } diff --git a/dbms/src/Storages/MergeTree/MergeTreeReaderCompact.h b/dbms/src/Storages/MergeTree/MergeTreeReaderCompact.h index ef51555bee4..bd47d13e5ea 100644 --- a/dbms/src/Storages/MergeTree/MergeTreeReaderCompact.h +++ b/dbms/src/Storages/MergeTree/MergeTreeReaderCompact.h @@ -41,8 +41,7 @@ private: void initMarksLoader(); void seekToStart(); - void seekToMark(size_t row, size_t col); - const MarkInCompressedFile & getMark(size_t row, size_t col); + void seekToMark(size_t row_index, size_t column_index); void readData(const String & name, const IDataType & type, IColumn & column, size_t from_mark, size_t column_position, size_t rows_to_read); diff --git a/dbms/src/Storages/MergeTree/MergeTreeWriter.h b/dbms/src/Storages/MergeTree/MergeTreeWriter.h deleted file mode 100644 index 5176b153a6d..00000000000 --- a/dbms/src/Storages/MergeTree/MergeTreeWriter.h +++ /dev/null @@ -1,13 +0,0 @@ -#include - -namespace DB -{ - -class MergeTreeWriter -{ - -}; - -using MergeTreeWriterPtr = std::shared_ptr; - -} diff --git a/dbms/src/Storages/StorageMergeTree.cpp b/dbms/src/Storages/StorageMergeTree.cpp index a3f621f621e..daffbbd149f 100644 --- a/dbms/src/Storages/StorageMergeTree.cpp +++ b/dbms/src/Storages/StorageMergeTree.cpp @@ -307,6 +307,7 @@ void StorageMergeTree::alter( context.getDatabase(current_database_name)->alterTable(context, current_table_name, new_columns, new_indices, new_constraints, storage_modifier); + /// Reinitialize primary key because primary key column types might have changed. setProperties(new_order_by_ast, new_primary_key_ast, new_columns, new_indices, new_constraints);