diff options
Diffstat (limited to 'innobase/include/trx0trx.ic')
-rw-r--r-- | innobase/include/trx0trx.ic | 18 |
1 files changed, 13 insertions, 5 deletions
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; } |