From 5331b7b8e2c59a7bac4e0f2de1cc026ad2aa4469 Mon Sep 17 00:00:00 2001 From: Tomasz Grabiec Date: Wed, 13 Dec 2017 10:56:16 +0100 Subject: [PATCH] mvcc: Implement partition_entry::upgrade() using squashed() To reduce duplication of version merging logic. --- partition_version.cc | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/partition_version.cc b/partition_version.cc index a99b02315a..6b6c9094ff 100644 --- a/partition_version.cc +++ b/partition_version.cc @@ -461,17 +461,7 @@ mutation_partition partition_entry::squashed(const schema& s) void partition_entry::upgrade(schema_ptr from, schema_ptr to) { - auto new_version = current_allocator().construct(mutation_partition(to)); - new_version->partition().set_static_row_continuous(_version->partition().static_row_continuous()); - try { - for (auto&& v : _version->all_elements()) { - new_version->partition().apply(*to, v.partition(), *from); - } - } catch (...) { - current_allocator().destroy(new_version); - throw; - } - + auto new_version = current_allocator().construct(squashed(from, to)); auto old_version = &*_version; set_version(new_version); remove_or_mark_as_unique_owner(old_version);