Commit 60e9ce2f authored by marko's avatar marko

btr_store_big_rec_extern_fields(): Write the (space_id, page_no) of the

record on every compressed BLOB page header, so that compressed BLOBs
can be relocated or the chain of BLOB pages can be validated.
parent e2c305f3
......@@ -3734,6 +3734,27 @@ btr_store_big_rec_extern_fields(
/* Initialize the unused "prev page" pointer */
mlog_write_ulint(page + FIL_PAGE_PREV,
FIL_NULL, MLOG_4BYTES, &mtr);
/* Write a back pointer to the record
into the otherwise unused area. This
information could be useful in
debugging. Later, we might want to
implement the possibility to relocate
BLOB pages. Then, we would need to be
able to adjust the BLOB pointer in the
record. We do not store the heap
number of the record, because it can
change in page_zip_reorganize() or
btr_page_reorganize(). */
mlog_write_ulint(page
+ FIL_PAGE_FILE_FLUSH_LSN,
space_id,
MLOG_4BYTES, &mtr);
mlog_write_ulint(page
+ FIL_PAGE_FILE_FLUSH_LSN + 4,
rec_page_no,
MLOG_4BYTES, &mtr);
mlog_write_ulint(page
/* Zero out the unused part of the page. */
memset(page + page_zip->size
- c_stream.avail_out,
......
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