• Marko Mäkelä's avatar
    MDEV-16065 Assertion failed in btr_pcur_restore_position_func on UPDATE · 73a10cbc
    Marko Mäkelä authored
    btr_pcur_store_position(): Assert that the 'default row' record never
    is the only record in a page. (If that would happen, an empty
    root page would be re-created in the non-instant format, not containing
    the special record.) When the cursor is positioned on the page infimum,
    never use the 'default row' as the BTR_PCUR_BEFORE reference.
    (This is additional cleanup, not fixing the bug.)
    
    rec_copy_prefix_to_buf(): When converting a record prefix to
    the non-instant-add format, copy the original number of null flags.
    Rename the variable instant_len to instant_omit, and introduce a
    few more variables to make the code easiser to read.
    
    Note: In purge, rec_copy_prefix_to_buf() is also used for storing the
    persistent cursor position on a 'default row' record. The stored record
    reference will be garbage, but row_search_on_row_ref() will do special
    handling to reposition the cursor on the 'default row', based on
    ref->info_bits.
    
    innodb.dml_purge: Also cover the 'default row'.
    73a10cbc
btr0pcur.cc 17.9 KB