Before the speedc test was interrupted, 121,765 B-tree pages were written.
buf_flush_init_for_writing(): Do not compress other than B-tree pages
outside the system tablespace. Report non-B-tree pages.
page_zip_decompress(): Clear the unused heap space on the uncompressed page,
so that the whole buffer for the uncompressed page will be initialized and
page_zip_validate() will always succeed.
page_zip_dir_decode(): Correct the handling of the free list.
page_zip_set_extra_bytes(): Remove off-by-one error in the first loop.
page_zip_apply_log(): Replace parameter end with size, and let end=data+size.
page_zip_decompress(): Properly handle pages where the first user record has
more than REC_N_NEW_EXTRA_BYTES extra bytes.
page_delete_rec_list_end(): Remove page_zip_temp. This operation will be
done completely in-place on page_zip. If page_zip is specified, clear the
data bytes and the info and status bits of deleted records and clear the
removed directory slots.
page_dir_delete_slot(): Clear the last directory slot, which will be removed.
decompresses properly.
page_mem_free(): Adjust the temporary condition for zeroing data.
page_zip_compress(): Do not accept Z_STREAM_END from non-final deflate().
Tighten the assertion on c_stream.avail_in.
page_zip_dir_sort(): Note that the high bound is not inclusive.
page_zip_dir_decode(): Remove off-by-one error in page_zip_dir_sort() call.
page_zip_set_extra_bytes(): Add the termination condition that was forgotten
from the second for loop. Simplify the code a little.
page_zip_decompress(): Do not accept Z_STREAM_END from non-final inflate().
Tighten the assertion on d_stream.avail_out. Increment heap_status correctly.
A page with multiple records or deleted records still does not compress
or decompress properly.
buf_flush_init_for_writing(): Initialize block->page_zip properly so that all
assertions in page0zip can be enabled.
page_zip_decompress(): Note that corrupt data should not lead to assertions.
page_zip_dir_set(): Correct the interface. Fix off-by-one error.
page_zip_dir_get(): Fix off-by-one error.
page0zip.c: Replace n_heap with n_dense and add comments about
the infimum and supremum records whenever we subtract 2 from heap_no.
Fix some programming errors.
buf0flu.c: Allocate the temporary buffer from buf_frame_alloc().
page_zip_simple_validate(): Do not assert page_zip->m_start >= PAGE_DATA.
page_zip_compress(): Replace some assertions with page_zip_simple_validate(),
and do not assert anything about page_zip->data contents.
page_zip_validate(): Do not compare the page trailer bytes.
page_zip_write(): Assert that the entire page headers match and
that page_zip->m_start >= PAGE_DATA.
page_dir_set_n_slots(): Add debug assertion that there will be enough space
available in the modification log of the compressed page.
page_trailer_get_len(): Simplify the formula. Make more use of the function.
page_set_max_trx_id(), page_update_max_trx_id(): Add parameter page_zip.
Check that page_zip_decompress() is never called after modifying the
header or trailer of the compressed page, i.e., that page_zip_decompress()
will restore the uncompressed page as it was before the failed operation.
page_header_reset_last_insert(): Add page_zip parameter.
rec_get_next_ptr(): Return a pointer to the same page, or NULL.
page_dir_delete_slot(): Fix off-by-one errors.
Add page_zip parameter to page_dir_slot_set_rec().
Improve the documentation of the page_zip parameters in page0page.
Add function page_trailer_get_len().
Implement page_zip_write_header().
Add page_zip parameter to btr_page_set_ functions.
Allow page_copy_rec_list_end() to be called with invalid new_page_zip
if the page has been newly created.