From b9132f7f6958327d67b107833a59f9cf512f9397 Mon Sep 17 00:00:00 2001 From: Nikita Taranov Date: Tue, 16 Jan 2024 00:52:26 +0100 Subject: [PATCH] add check in read pool --- .../MergeTreeReadPoolParallelReplicas.cpp | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/src/Storages/MergeTree/MergeTreeReadPoolParallelReplicas.cpp b/src/Storages/MergeTree/MergeTreeReadPoolParallelReplicas.cpp index 69e64d5ea980..47436ed14075 100644 --- a/src/Storages/MergeTree/MergeTreeReadPoolParallelReplicas.cpp +++ b/src/Storages/MergeTree/MergeTreeReadPoolParallelReplicas.cpp @@ -1,3 +1,4 @@ +#include #include @@ -67,15 +68,11 @@ MergeTreeReadTaskPtr MergeTreeReadPoolParallelReplicas::getTask(size_t /*task_id auto & current_task = buffered_ranges.front(); - size_t part_idx = 0; - for (size_t index = 0; index < per_part_infos.size(); ++index) - { - if (per_part_infos[index]->data_part->info == current_task.info) - { - part_idx = index; - break; - } - } + auto part_it + = std::ranges::find_if(per_part_infos, [¤t_task](const auto & part) { return part->data_part->info == current_task.info; }); + if (part_it == per_part_infos.end()) + throw Exception(ErrorCodes::LOGICAL_ERROR, "Assignment contains an unknown part (current_task: {})", current_task.describe()); + const size_t part_idx = std::distance(per_part_infos.begin(), part_it); MarkRanges ranges_to_read; size_t current_sum_marks = 0;