diff options
-rw-r--r-- | innobase/include/trx0trx.h | 8 | ||||
-rw-r--r-- | innobase/include/trx0trx.ic | 18 |
2 files changed, 17 insertions, 9 deletions
diff --git a/innobase/include/trx0trx.h b/innobase/include/trx0trx.h index 1b118a86467..c45024c3d59 100644 --- a/innobase/include/trx0trx.h +++ b/innobase/include/trx0trx.h @@ -29,16 +29,16 @@ trx_reset_new_rec_lock_info( /*========================*/ trx_t* trx); /* in: transaction struct */ /***************************************************************** -Registers that we have set a new record lock on an index. This can only be -called twice after calling trx_reset_new_rec_lock_info(), since we only have -space to store 2 indexes! */ +Registers that we have set a new record lock on an index. We only have +space to store 2 indexes! If this is called more than twice after +trx_reset_new_rec_lock_info(), then this function does nothing. */ UNIV_INLINE void trx_register_new_rec_lock( /*======================*/ trx_t* trx, /* in: transaction struct */ dict_index_t* index); /* in: trx sets a new record lock on this - index*/ + index */ /***************************************************************** Checks if trx has set a new record lock on an index. */ UNIV_INLINE diff --git a/innobase/include/trx0trx.ic b/innobase/include/trx0trx.ic index d23165b74e8..0404104aafe 100644 --- a/innobase/include/trx0trx.ic +++ b/innobase/include/trx0trx.ic @@ -52,16 +52,16 @@ trx_reset_new_rec_lock_info( } /***************************************************************** -Registers that we have set a new record lock on an index. This can only be -called twice after calling trx_reset_new_rec_lock_info(), since we only have -space to store 2 indexes! */ +Registers that we have set a new record lock on an index. We only have +space to store 2 indexes! If this is called more than twice after +trx_reset_new_rec_lock_info(), then this function does nothing. */ UNIV_INLINE void trx_register_new_rec_lock( /*======================*/ trx_t* trx, /* in: transaction struct */ dict_index_t* index) /* in: trx sets a new record lock on this - index*/ + index */ { if (trx->new_rec_locks[0] == NULL) { trx->new_rec_locks[0] = index; @@ -69,7 +69,15 @@ trx_register_new_rec_lock( return; } - ut_a(trx->new_rec_locks[1] == NULL); + if (trx->new_rec_locks[0] == index) { + + return; + } + + if (trx->new_rec_locks[1] != NULL) { + + return; + } trx->new_rec_locks[1] = index; } |