• Marko Mäkelä's avatar
    Bug#16463505 PESSIMISTIC PAGE_ZIP_AVAILABLE() MAY CAUSE INFINITE PAGE SPLIT · daa28126
    Marko Mäkelä authored
    For a fresh insert, page_zip_available() was counting some fields twice.
    In the worst case, the compressed page size grows by PAGE_ZIP_DIR_SLOT_SIZE
    plus the size of the record that is being inserted. The size of the record
    already includes the fields that will be stored in the uncompressed portion
    of the compressed page.
    
    page_zip_get_trailer_len(): Remove the output parameter entry_size,
    because no caller is interested in it.
    
    page_zip_max_ins_size(), page_zip_available(): Assume that the page grows
    by PAGE_ZIP_DIR_SLOT_SIZE and the record size (which includes the fields
    that would be stored in the uncompressed portion of the page).
    
    rb#2169 approved by Sunny Bains
    daa28126
page0zip.c 135 KB