Hi!
Thanks for your review.
Yes, i definitely missed diag_set with sequence_by_id. Will be fixed in v5.
Also i will reconsider combining child & parent space search.
Sincerely,
Ilya Kosarev
Суббота, 9 ноября 2019, 23:01 +03:00 от Sergey Ostanevich <sergos@tarantool.org>:
Hi!
LGTM, just couple of nits below you can add to a follow-up.
SergosNote, that here we will miss the diag_set for non-zero value.diff --git a/src/box/alter.cc b/src/box/alter.cc
index e56d7c6cc..69a749326 100644
--- a/src/box/alter.cc
+++ b/src/box/alter.cc
@@ -4117,14 +4167,18 @@ on_replace_dd_sequence_data(struct trigger * /* trigger */, void *event)
struct tuple *old_tuple = stmt->old_tuple;
struct tuple *new_tuple = stmt->new_tuple;
- uint32_t id = tuple_field_u32_xc(old_tuple ?: new_tuple,
- BOX_SEQUENCE_DATA_FIELD_ID);
- struct sequence *seq = sequence_cache_find(id);
+ uint32_t id;
+ if (tuple_field_u32(old_tuple ?: new_tuple, BOX_SEQUENCE_DATA_FIELD_ID,
+ &id) != 0)
+ return -1;
+ struct sequence *seq = sequence_by_id(id);
if (seq == NULL)
return -1;
Perhaps a question of further patches for sequence_by_id() - but I didn't find it in logShall we return after the first error? Will they affect each other?@@ -4958,10 +5034,10 @@ on_replace_dd_fk_constraint(struct trigger * /* trigger*/, void *event)
fk_constraint_def_new_from_tuple(old_tuple,
ER_DROP_FK_CONSTRAINT);
auto fk_def_guard = make_scoped_guard([=] { free(fk_def); });
- struct space *child_space =
- space_cache_find_xc(fk_def->child_id);
- struct space *parent_space =
- space_cache_find_xc(fk_def->parent_id);
+ struct space *child_space = space_cache_find(fk_def->child_id);
+ struct space *parent_space = space_cache_find(fk_def->parent_id);
+ if (child_space == NULL or parent_space == NULL)
+ return -1;