Commit 5bcbe404 authored by unknown's avatar unknown

trx0trx.ic, trx0trx.h:

  Fix bug in the Bug #3300 bug fix


innobase/include/trx0trx.h:
  Fix bug in the Bug #3300 bug fix
innobase/include/trx0trx.ic:
  Fix bug in the Bug #3300 bug fix
parent 8561600a
...@@ -29,16 +29,16 @@ trx_reset_new_rec_lock_info( ...@@ -29,16 +29,16 @@ trx_reset_new_rec_lock_info(
/*========================*/ /*========================*/
trx_t* trx); /* in: transaction struct */ trx_t* trx); /* in: transaction struct */
/***************************************************************** /*****************************************************************
Registers that we have set a new record lock on an index. This can only be Registers that we have set a new record lock on an index. We only have
called twice after calling trx_reset_new_rec_lock_info(), since we only have space to store 2 indexes! If this is called more than twice after
space to store 2 indexes! */ trx_reset_new_rec_lock_info(), then this function does nothing. */
UNIV_INLINE UNIV_INLINE
void void
trx_register_new_rec_lock( trx_register_new_rec_lock(
/*======================*/ /*======================*/
trx_t* trx, /* in: transaction struct */ trx_t* trx, /* in: transaction struct */
dict_index_t* index); /* in: trx sets a new record lock on this 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. */ Checks if trx has set a new record lock on an index. */
UNIV_INLINE UNIV_INLINE
......
...@@ -52,16 +52,16 @@ trx_reset_new_rec_lock_info( ...@@ -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 Registers that we have set a new record lock on an index. We only have
called twice after calling trx_reset_new_rec_lock_info(), since we only have space to store 2 indexes! If this is called more than twice after
space to store 2 indexes! */ trx_reset_new_rec_lock_info(), then this function does nothing. */
UNIV_INLINE UNIV_INLINE
void void
trx_register_new_rec_lock( trx_register_new_rec_lock(
/*======================*/ /*======================*/
trx_t* trx, /* in: transaction struct */ trx_t* trx, /* in: transaction struct */
dict_index_t* index) /* in: trx sets a new record lock on this dict_index_t* index) /* in: trx sets a new record lock on this
index*/ index */
{ {
if (trx->new_rec_locks[0] == NULL) { if (trx->new_rec_locks[0] == NULL) {
trx->new_rec_locks[0] = index; trx->new_rec_locks[0] = index;
...@@ -69,7 +69,15 @@ trx_register_new_rec_lock( ...@@ -69,7 +69,15 @@ trx_register_new_rec_lock(
return; 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; trx->new_rec_locks[1] = index;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment