From: imeevma@tarantool.org To: korablev@tarantool.org Cc: tarantool-patches@freelists.org Subject: [tarantool-patches] [PATCH v2 3/3] sql: remove VDBE from TXN Date: Thu, 4 Jul 2019 14:42:12 +0300 [thread overview] Message-ID: <af43581133f6888238540348b243c660ba2b4071.1562239051.git.imeevma@gmail.com> (raw) In-Reply-To: <cover.1562239051.git.imeevma@gmail.com> VDBE was added to TXN because the generated identifiers were added to VDBE in the sequence_next() function. Since they are now stored in the VDBE itself, it is not necessary to have it in TXN. Follow-up #4188 --- src/box/sql/vdbe.c | 4 ++-- src/box/sql/vdbe.h | 3 +-- src/box/sql/vdbeInt.h | 2 +- src/box/sql/vdbeaux.c | 10 ++++------ src/box/txn.h | 17 ----------------- 5 files changed, 8 insertions(+), 28 deletions(-) diff --git a/src/box/sql/vdbe.c b/src/box/sql/vdbe.c index 5ecfcf4..3534f48 100644 --- a/src/box/sql/vdbe.c +++ b/src/box/sql/vdbe.c @@ -2927,7 +2927,7 @@ case OP_CheckViewReferences: { * Otherwise, raise an error with appropriate error message. */ case OP_TransactionBegin: { - if (sql_txn_begin(p) != 0) + if (sql_txn_begin() != 0) goto abort_due_to_error; p->auto_commit = false ; break; @@ -2983,7 +2983,7 @@ case OP_TransactionRollback: { */ case OP_TTransaction: { if (!box_txn()) { - if (sql_txn_begin(p) != 0) + if (sql_txn_begin() != 0) goto abort_due_to_error; } else { p->anonymous_savepoint = sql_savepoint(p, NULL); diff --git a/src/box/sql/vdbe.h b/src/box/sql/vdbe.h index 4f94643..fde898d 100644 --- a/src/box/sql/vdbe.h +++ b/src/box/sql/vdbe.h @@ -175,11 +175,10 @@ Vdbe *sqlVdbeCreate(Parse *); * Allocate and initialize SQL-specific struct which completes * original Tarantool's txn struct using region allocator. * - * @param v Vdbe with which associate this transaction. * @retval NULL on OOM, new psql_txn struct on success. **/ struct sql_txn * -sql_alloc_txn(struct Vdbe *v); +sql_alloc_txn(); /** * Prepare given VDBE to execution: initialize structs connected diff --git a/src/box/sql/vdbeInt.h b/src/box/sql/vdbeInt.h index 6bfeecc..30cac07 100644 --- a/src/box/sql/vdbeInt.h +++ b/src/box/sql/vdbeInt.h @@ -440,7 +440,7 @@ u32 sqlVdbeSerialGet(const unsigned char *, u32, Mem *); int sqlVdbeExec(Vdbe *); int sqlVdbeList(Vdbe *); int -sql_txn_begin(Vdbe *p); +sql_txn_begin(); Savepoint * sql_savepoint(Vdbe *p, const char *zName); diff --git a/src/box/sql/vdbeaux.c b/src/box/sql/vdbeaux.c index baeeb46..0912eaf 100644 --- a/src/box/sql/vdbeaux.c +++ b/src/box/sql/vdbeaux.c @@ -77,7 +77,7 @@ sqlVdbeCreate(Parse * pParse) } struct sql_txn * -sql_alloc_txn(struct Vdbe *v) +sql_alloc_txn() { struct sql_txn *txn = region_alloc_object(&fiber()->gc, struct sql_txn); @@ -86,7 +86,6 @@ sql_alloc_txn(struct Vdbe *v) "struct sql_txn"); return NULL; } - txn->vdbe = v; txn->pSavepoint = NULL; txn->fk_deferred_count = 0; return txn; @@ -106,11 +105,10 @@ sql_vdbe_prepare(struct Vdbe *vdbe) * check FK violations, at least now. */ if (txn->psql_txn == NULL) { - txn->psql_txn = sql_alloc_txn(vdbe); + txn->psql_txn = sql_alloc_txn(); if (txn->psql_txn == NULL) return -1; } - txn->psql_txn->vdbe = vdbe; } return 0; } @@ -1997,7 +1995,7 @@ sqlVdbeCheckFk(Vdbe * p, int deferred) } int -sql_txn_begin(Vdbe *p) +sql_txn_begin() { if (in_txn()) { diag_set(ClientError, ER_ACTIVE_TRANSACTION); @@ -2006,7 +2004,7 @@ sql_txn_begin(Vdbe *p) struct txn *ptxn = txn_begin(false); if (ptxn == NULL) return -1; - ptxn->psql_txn = sql_alloc_txn(p); + ptxn->psql_txn = sql_alloc_txn(); if (ptxn->psql_txn == NULL) { box_txn_rollback(); return -1; diff --git a/src/box/txn.h b/src/box/txn.h index a19becc..e51d5a2 100644 --- a/src/box/txn.h +++ b/src/box/txn.h @@ -118,8 +118,6 @@ struct sql_txn { * VDBE to the next in the same transaction. */ uint32_t fk_deferred_count; - /** Current VDBE. */ - struct Vdbe *vdbe; }; /** @@ -397,21 +395,6 @@ void txn_on_stop(struct trigger *trigger, void *event); /** - * Return VDBE that is being currently executed. - * - * @retval VDBE that is being currently executed. - * @retval NULL Either txn or ptxn_sql or vdbe is NULL; - */ -static inline struct Vdbe * -txn_vdbe() -{ - struct txn *txn = in_txn(); - if (txn == NULL || txn->psql_txn == NULL) - return NULL; - return txn->psql_txn->vdbe; -} - -/** * FFI bindings: do not throw exceptions, do not accept extra * arguments */ -- 2.7.4
prev parent reply other threads:[~2019-07-04 11:42 UTC|newest] Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-07-04 11:42 [tarantool-patches] [PATCH v2 0/3] sql: do not show IDs generated by trigger imeevma 2019-07-04 11:42 ` [tarantool-patches] [PATCH v2 1/3] sql: remove unnecessary AUTOINCREMENT ID generation imeevma 2019-07-08 18:54 ` [tarantool-patches] " n.pettik 2019-07-04 11:42 ` [tarantool-patches] [PATCH v2 2/3] sql: do not show IDs generated by trigger imeevma 2019-07-08 18:54 ` [tarantool-patches] " n.pettik 2019-07-04 11:42 ` imeevma [this message]
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=af43581133f6888238540348b243c660ba2b4071.1562239051.git.imeevma@gmail.com \ --to=imeevma@tarantool.org \ --cc=korablev@tarantool.org \ --cc=tarantool-patches@freelists.org \ --subject='Re: [tarantool-patches] [PATCH v2 3/3] sql: remove VDBE from TXN' \ /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