Browse Source

MDEV-18878: After-merge fixes

In 10.3, all records will be processed by purge due to MDEV-12288.
But, the insert undo records do not contain a transaction identifier.

row_purge_parse_undo_rec(): Use node->trx_id=TRX_ID_MAX for the
insert undo records. We cannot skip table lookups for these records
after DISCARD TABLESPACE other than by 'detaching' the table from
the undo logs by updating SYS_TABLES.ID on both DISCARD TABLESPACE
and IMPORT TABLESPACE.

Also, remove a redundant condition that was introduced
in the merge commit 814205f306.
pull/1220/head
Marko Mäkelä 7 years ago
parent
commit
69b33fca8c
  1. 9
      storage/innobase/row/row0purge.cc

9
storage/innobase/row/row0purge.cc

@ -1027,6 +1027,11 @@ row_purge_parse_undo_rec(
return false;
case TRX_UNDO_INSERT_METADATA:
case TRX_UNDO_INSERT_REC:
/* These records do not store any transaction identifier.
FIXME: Update SYS_TABLES.ID on both DISCARD TABLESPACE
and IMPORT TABLESPACE to get rid of the repeated lookups! */
node->trx_id = TRX_ID_MAX;
break;
default:
#ifdef UNIV_DEBUG
@ -1112,9 +1117,7 @@ inaccessible:
node->table = NULL;
err_exit:
rw_lock_s_unlock(dict_operation_lock);
if (table_id) {
node->skip(table_id, trx_id);
}
node->skip(table_id, trx_id);
return(false);
}

Loading…
Cancel
Save