[Tarantool-patches] [PATCH v3 14/20] box: increment schema_version on ddl operations
Sergey Ostanevich
sergos at tarantool.org
Wed Dec 25 17:33:58 MSK 2019
Hi!
Thanks for the patch, LGTM.
Sergos
On 20 Dec 15:47, Nikita Pettik wrote:
> Some DDL operations such as SQL trigger alter, check and foreign
> constraint alter don't result in schema version change. On the other
> hand, we are going to rely on schema version to determine expired
> prepared statements: for instance, if FK constraint has been created
> after DML statement preparation, the latter may ignore FK constraint
> (instead of proper "statement has expired" error). Let's fix it and
> account schema change on each DDL operation.
>
> Need for #2592
> ---
> src/box/alter.cc | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/src/box/alter.cc b/src/box/alter.cc
> index bef25b605..f33c1dfd2 100644
> --- a/src/box/alter.cc
> +++ b/src/box/alter.cc
> @@ -4773,6 +4773,7 @@ on_replace_dd_trigger(struct trigger * /* trigger */, void *event)
>
> txn_stmt_on_rollback(stmt, on_rollback);
> txn_stmt_on_commit(stmt, on_commit);
> + ++schema_version;
> return 0;
> }
>
> @@ -5283,6 +5284,7 @@ on_replace_dd_fk_constraint(struct trigger * /* trigger*/, void *event)
> space_reset_fk_constraint_mask(child_space);
> space_reset_fk_constraint_mask(parent_space);
> }
> + ++schema_version;
> return 0;
> }
>
> @@ -5528,6 +5530,7 @@ on_replace_dd_ck_constraint(struct trigger * /* trigger*/, void *event)
>
> if (trigger_run(&on_alter_space, space) != 0)
> return -1;
> + ++schema_version;
> return 0;
> }
>
> --
> 2.15.1
>
More information about the Tarantool-patches
mailing list