Commit 5062251a authored by Marko Mäkelä's avatar Marko Mäkelä

row_purge_parse_undo_rec(): Set node->ref for the metadata record

FIXME: This should apply to 10.3 as well. Write a test case for 10.3.
parent c0f49945
......@@ -88,7 +88,7 @@ header=0x010000030074 (id=0x696e66696d756d00)
header=0x010008030000 (id=0x73757072656d756d00)
t2 clustered index root page(type 18):
N_RECS=6; LEVEL=0
header=0x01000003008f (id=0x696e66696d756d00)
header=0x01000003008f (id=0x0000000000000000)
header=0x3000100c00d4 (id=0x80000000,
DB_TRX_ID=0x000000000000,
DB_ROLL_PTR=0x80000000000000,
......@@ -118,7 +118,7 @@ header=0x0000380b0074 (id=0x8000015b,
DB_ROLL_PTR=0x80000000000000,
c2=0x8000814d,
c3=0x206574206d616c6f72756d)
header=0x070008030000 (id=0x73757072656d756d00)
header=0x070008030000 (id=0x000000000000000100)
UNLOCK TABLES;
DELETE FROM t2;
InnoDB 0 transactions not purged
......
......@@ -141,11 +141,6 @@ for (my $offset= 0x65; $offset;
for (my $i= 0; $i < $n_fields; $i++) {
my $end= unpack("n", substr($page, $offset-8-2*$i, 2));
print ",\n " if $i;
# Work around a bug in the code!
if (!(~unpack("C",substr($page,$offset-6,1)) & 0x30)) {
substr($page,$offset+$start,6) = pack("x[6]") if $i == 1;
substr($page,$offset+$start,7) = pack("Cx[6]",128) if $i == 2;
}
if ($i > 2 && !(~unpack("C",substr($page,$offset-6,1)) & 0x30)) {
if ($i == 3) {
print "BLOB=";
......
......@@ -1148,10 +1148,13 @@ row_purge_parse_undo_rec(
/* Read to the partial row the fields that occur in indexes */
if (!(node->cmpl_info & UPD_NODE_NO_ORD_CHANGE)) {
ut_ad(!(node->update->info_bits & REC_INFO_MIN_REC_FLAG));
ptr = trx_undo_rec_get_partial_row(
ptr, clust_index, node->update, &node->row,
type == TRX_UNDO_UPD_DEL_REC,
node->heap);
} else if (node->update->info_bits & REC_INFO_MIN_REC_FLAG) {
node->ref = &trx_undo_metadata;
}
return(true);
......
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