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 814205f306cad8a4b3e55785616ea69a027fef9d.
This commit is contained in:
parent
b32bc70e34
commit
69b33fca8c
@ -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…
x
Reference in New Issue
Block a user