From: Nikita Pettik <korablev@tarantool.org> To: tarantool-patches@dev.tarantool.org Cc: v.shpilevoy@tarantool.org Subject: [Tarantool-patches] [PATCH 12/15] box: increment schema_version on ddl operations Date: Thu, 7 Nov 2019 04:04:52 +0300 [thread overview] Message-ID: <20191107010455.64457-13-korablev@tarantool.org> (raw) In-Reply-To: <20191107010455.64457-1-korablev@tarantool.org> 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 941b638ea..3b7f79b5a 100644 --- a/src/box/alter.cc +++ b/src/box/alter.cc @@ -4110,6 +4110,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; } /** @@ -4565,6 +4566,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; } /** Create an instance of check constraint definition by tuple. */ @@ -4777,6 +4779,7 @@ on_replace_dd_ck_constraint(struct trigger * /* trigger*/, void *event) txn_stmt_on_commit(stmt, on_commit); trigger_run_xc(&on_alter_space, space); + ++schema_version; } /** A trigger invoked on replace in the _func_index space. */ -- 2.15.1
next prev parent reply other threads:[~2019-11-07 1:05 UTC|newest] Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-11-07 1:04 [Tarantool-patches] [PATCH 00/15] sql: prepared statements Nikita Pettik 2019-11-07 1:04 ` [Tarantool-patches] [PATCH 01/15] sql: remove sql_prepare_v2() Nikita Pettik 2019-11-07 1:04 ` [Tarantool-patches] [PATCH 02/15] sql: refactor sql_prepare() and sqlPrepare() Nikita Pettik 2019-11-07 1:04 ` [Tarantool-patches] [PATCH 03/15] sql: move sql_prepare() declaration to box/execute.h Nikita Pettik 2019-11-07 1:04 ` [Tarantool-patches] [PATCH 04/15] sql: rename sqlPrepare() to sql_compile() Nikita Pettik 2019-11-07 1:04 ` [Tarantool-patches] [PATCH 05/15] sql: move sql_finalize() to execute.h Nikita Pettik 2019-11-07 1:04 ` [Tarantool-patches] [PATCH 06/15] port: increase padding of struct port Nikita Pettik 2019-11-07 1:04 ` [Tarantool-patches] [PATCH 07/15] port: add dump format and request type to port_sql Nikita Pettik 2019-11-07 1:04 ` [Tarantool-patches] [PATCH 08/15] sql: resurrect sql_bind_parameter_count() function Nikita Pettik 2019-11-07 1:04 ` [Tarantool-patches] [PATCH 09/15] sql: resurrect sql_bind_parameter_name() Nikita Pettik 2019-11-07 1:04 ` [Tarantool-patches] [PATCH 10/15] sql: add sql_schema_version() Nikita Pettik 2019-11-07 1:04 ` [Tarantool-patches] [PATCH 11/15] sql: introduce sql_stmt_sizeof() function Nikita Pettik 2019-11-07 1:04 ` Nikita Pettik [this message] 2019-11-07 1:04 ` [Tarantool-patches] [PATCH 13/15] sql: introduce cache for prepared statemets Nikita Pettik 2019-11-10 23:40 ` Konstantin Osipov 2019-11-11 10:53 ` Nikita Pettik 2019-11-11 18:35 ` Konstantin Osipov 2019-11-12 7:54 ` Georgy Kirichenko 2019-11-12 8:50 ` Konstantin Osipov 2019-11-12 9:30 ` Georgy Kirichenko 2019-11-07 1:04 ` [Tarantool-patches] [PATCH 14/15] box: introduce prepared statements Nikita Pettik 2019-11-10 23:42 ` Konstantin Osipov 2019-11-07 1:04 ` [Tarantool-patches] [PATCH 15/15] netbox: " Nikita Pettik
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20191107010455.64457-13-korablev@tarantool.org \ --to=korablev@tarantool.org \ --cc=tarantool-patches@dev.tarantool.org \ --cc=v.shpilevoy@tarantool.org \ --subject='Re: [Tarantool-patches] [PATCH 12/15] box: increment schema_version on ddl operations' \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox