Commit 69b33fca authored by Marko Mäkelä's avatar Marko Mäkelä

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 814205f3.
parent b32bc70e
...@@ -1027,6 +1027,11 @@ row_purge_parse_undo_rec( ...@@ -1027,6 +1027,11 @@ row_purge_parse_undo_rec(
return false; return false;
case TRX_UNDO_INSERT_METADATA: case TRX_UNDO_INSERT_METADATA:
case TRX_UNDO_INSERT_REC: 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; break;
default: default:
#ifdef UNIV_DEBUG #ifdef UNIV_DEBUG
...@@ -1112,9 +1117,7 @@ row_purge_parse_undo_rec( ...@@ -1112,9 +1117,7 @@ row_purge_parse_undo_rec(
node->table = NULL; node->table = NULL;
err_exit: err_exit:
rw_lock_s_unlock(dict_operation_lock); rw_lock_s_unlock(dict_operation_lock);
if (table_id) { node->skip(table_id, trx_id);
node->skip(table_id, trx_id);
}
return(false); return(false);
} }
......
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