[PATCH 04/12] alter: use space_index instead of index_find where appropriate
Vladimir Davydov
vdavydov.dev at gmail.com
Sat Apr 7 16:38:01 MSK 2018
Using index_find_xc() in AlterSpaceOp::commit and rollback is confusing,
because these functions may not throw. Let's use space_index instead as
we are sure that the index we are looking for must exist. While we are
at it, add some missing assertions.
---
src/box/alter.cc | 24 ++++++++++++++++--------
1 file changed, 16 insertions(+), 8 deletions(-)
diff --git a/src/box/alter.cc b/src/box/alter.cc
index ec7af24b..36310f1c 100644
--- a/src/box/alter.cc
+++ b/src/box/alter.cc
@@ -1006,8 +1006,9 @@ DropIndex::alter(struct alter_space *alter)
void
DropIndex::commit(struct alter_space *alter, int64_t /* signature */)
{
- struct index *index = index_find_xc(alter->old_space,
- old_index_def->iid);
+ struct index *index = space_index(alter->old_space,
+ old_index_def->iid);
+ assert(index != NULL);
index_commit_drop(index);
}
@@ -1105,6 +1106,7 @@ ModifyIndex::commit(struct alter_space *alter, int64_t signature)
{
struct index *new_index = space_index(alter->new_space,
new_index_def->iid);
+ assert(new_index != NULL);
index_commit_modify(new_index, signature);
}
@@ -1186,8 +1188,9 @@ CreateIndex::alter(struct alter_space *alter)
/**
* Get the new index and build it.
*/
- struct index *new_index = index_find_xc(alter->new_space,
- new_index_def->iid);
+ struct index *new_index = space_index(alter->new_space,
+ new_index_def->iid);
+ assert(new_index != NULL);
space_build_secondary_key_xc(alter->new_space,
alter->new_space, new_index);
}
@@ -1195,16 +1198,18 @@ CreateIndex::alter(struct alter_space *alter)
void
CreateIndex::commit(struct alter_space *alter, int64_t signature)
{
- struct index *new_index = index_find_xc(alter->new_space,
- new_index_def->iid);
+ struct index *new_index = space_index(alter->new_space,
+ new_index_def->iid);
+ assert(new_index != NULL);
index_commit_create(new_index, signature);
}
void
CreateIndex::rollback(struct alter_space *alter)
{
- struct index *new_index = index_find_xc(alter->new_space,
- new_index_def->iid);
+ struct index *new_index = space_index(alter->new_space,
+ new_index_def->iid);
+ assert(new_index != NULL);
index_abort_create(new_index);
}
@@ -1269,8 +1274,10 @@ RebuildIndex::commit(struct alter_space *alter, int64_t signature)
{
struct index *old_index = space_index(alter->old_space,
old_index_def->iid);
+ assert(old_index != NULL);
struct index *new_index = space_index(alter->new_space,
new_index_def->iid);
+ assert(new_index != NULL);
index_commit_drop(old_index);
index_commit_create(new_index, signature);
}
@@ -1280,6 +1287,7 @@ RebuildIndex::rollback(struct alter_space *alter)
{
struct index *new_index = space_index(alter->new_space,
new_index_def->iid);
+ assert(new_index != NULL);
index_abort_create(new_index);
}
--
2.11.0
More information about the Tarantool-patches
mailing list