mirror of
https://github.com/MariaDB/server.git
synced 2025-01-21 06:22:28 +01:00
branches/innodb+: ibuf_insert_low(): Do not call
page_update_max_trx_id() when buffering op == IBUF_OP_DELETE. This addresses Issue #319, an assertion failure because trx_id is zero in page_update_max_trx_id() when attempting to buffer a purge operation. (This was a harmless debug assertion failure, because page_update_max_trx_id() would never update to zero.) For the purge transaction, trx->id is always zero. The purge transaction is the only caller of IBUF_OP_DELETE, and PAGE_MAX_TRX_ID is really about existing records. Therefore, there is no need to update the PAGE_MAX_TRX_ID when purging records.
This commit is contained in:
parent
37312683cc
commit
c5f5f7a636
1 changed files with 2 additions and 2 deletions
|
@ -3467,7 +3467,7 @@ bitmap_fail:
|
|||
err = btr_cur_optimistic_insert(BTR_NO_LOCKING_FLAG, cursor,
|
||||
ibuf_entry, &ins_rec,
|
||||
&dummy_big_rec, 0, thr, &mtr);
|
||||
if (err == DB_SUCCESS) {
|
||||
if (err == DB_SUCCESS && op != IBUF_OP_DELETE) {
|
||||
/* Update the page max trx id field */
|
||||
page_update_max_trx_id(btr_cur_get_block(cursor), NULL,
|
||||
thr_get_trx(thr)->id, &mtr);
|
||||
|
@ -3487,7 +3487,7 @@ bitmap_fail:
|
|||
cursor,
|
||||
ibuf_entry, &ins_rec,
|
||||
&dummy_big_rec, 0, thr, &mtr);
|
||||
if (err == DB_SUCCESS) {
|
||||
if (err == DB_SUCCESS && op != IBUF_OP_DELETE) {
|
||||
/* Update the page max trx id field */
|
||||
page_update_max_trx_id(btr_cur_get_block(cursor), NULL,
|
||||
thr_get_trx(thr)->id, &mtr);
|
||||
|
|
Loading…
Reference in a new issue