[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