mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-12-01 20:12:02 +00:00
Fix minmax partition index during merge in case of empty part in future parts
It is possible to get empty part in future parts, during merging, that can be created in case of there is information about this part in zookeeper, but no replicas has it (StorageReplicatedMergeTree::createEmptyPartInsteadOfLost()) And this may incorrectly initialize min value, which will be updated after one more merge (since during that merge there will be no more information about empty part) or OPTIMIZE.
This commit is contained in:
parent
ae214ffc5b
commit
82e0e9d27c
@ -501,7 +501,14 @@ bool MergeTask::VerticalMergeStage::finalizeVerticalMergeForAllColumns() const
|
||||
bool MergeTask::MergeProjectionsStage::mergeMinMaxIndexAndPrepareProjections() const
|
||||
{
|
||||
for (const auto & part : global_ctx->future_part->parts)
|
||||
global_ctx->new_data_part->minmax_idx->merge(*part->minmax_idx);
|
||||
{
|
||||
/// Skip empty parts,
|
||||
/// (that can be created in StorageReplicatedMergeTree::createEmptyPartInsteadOfLost())
|
||||
/// since they can incorrectly set min,
|
||||
/// that will be changed after one more merge/OPTIMIZE.
|
||||
if (!part->isEmpty())
|
||||
global_ctx->new_data_part->minmax_idx->merge(*part->minmax_idx);
|
||||
}
|
||||
|
||||
/// Print overall profiling info. NOTE: it may duplicates previous messages
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user