• Marko Mäkelä's avatar
    MDEV-13697 DB_TRX_ID is not always reset · 97e51d24
    Marko Mäkelä authored
    The rollback of the modification of a pre-existing record
    should involve a purge-like operation. Before MDEV-12288
    the only purge-like operation was the removal of a
    delete-marked record.
    
    After MDEV-12288, any rollback of updating an existing record
    must reset the DB_TRX_ID column when it is no longer visible
    in the purge read view.
    
    row_vers_must_preserve_del_marked(): Remove. It is cleaner to
    perform the check directly in row0umod.cc.
    
    row_trx_id_offset(): Auxiliary function to retrieve the byte
    offset of DB_TRX_ID in a clustered index leaf page record.
    
    row_undo_mod_must_purge(): Determine if a record should be purged.
    
    row_undo_mod_clust(): For temporary tables, skip the purge checks.
    When rolling back an update so that the original record was not
    delete-marked, reset DB_TRX_ID if the history is no longer visible.
    97e51d24
row0vers.cc 37.1 KB