Skip to content

Commit 5eebe8c

Browse files
Merge pull request #10659 from ClickHouse/fix_multiple_simultaneous_alters
Fix alter-mutations assignment
2 parents 089354e + d47d28d commit 5eebe8c

File tree

1 file changed

+10
-3
lines changed

1 file changed

+10
-3
lines changed

src/Storages/MergeTree/ReplicatedMergeTreeQueue.cpp

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1861,10 +1861,17 @@ std::optional<std::pair<Int64, int>> ReplicatedMergeTreeMergePredicate::getDesir
18611861
for (auto [mutation_version, mutation_status] : in_partition->second)
18621862
{
18631863
max_version = mutation_version;
1864-
if (mutation_version > current_version && mutation_status->entry->alter_version != -1)
1864+
if (mutation_status->entry->isAlterMutation())
18651865
{
1866-
alter_version = mutation_status->entry->alter_version;
1867-
break;
1866+
/// We want to assign mutations for part which version is bigger
1867+
/// than part current version. But it doesn't make sence to assign
1868+
/// more fresh versions of alter-mutations if previous alter still
1869+
/// not done because alters execute one by one in strict order.
1870+
if (mutation_version > current_version || !mutation_status->is_done)
1871+
{
1872+
alter_version = mutation_status->entry->alter_version;
1873+
break;
1874+
}
18681875
}
18691876
}
18701877

0 commit comments

Comments
 (0)