• Marko Mäkelä's avatar
    Test and fix instant ALTER TABLE...ADD COLUMN crash recovery · 5b06d371
    Marko Mäkelä authored
    trx_t::in_rollback: Make the field available in non-debug builds.
    
    row_undo_ins_remove_clust_rec(): On the rollback of an insert into
    SYS_COLUMNS, revert instant ADD COLUMN in the cache by removing the
    last column from the table and the clustered index.
    
    page_set_instant(): Remove a too strict assertion. A rollback would
    not reset the root page from FIL_PAGE_TYPE_INSTANT to FIL_PAGE_INDEX,
    so the PAGE_INSTANT field could already be set.
    
    rec_init_offsets_comp_ordinary(), rec_copy_prefix_to_buf(),
    row_undo_search_clust_to_pcur(): Adjust too strict assertions.
    
    row_search_on_row_ref(), row_undo_mod_parse_undo_rec(), row_undo_mod(),
    trx_undo_update_rec_get_update(): Handle the 'default row'
    as a special case.
    
    btr_cur_trim(): In an update, trim the tuple as needed. For the
    'default row', handle rollback specially. For user records, omit
    fields that match the 'default row'.
    
    btr_cur_optimistic_delete_func(), btr_cur_pessimistic_delete():
    Skip locking and adaptive hash index for the 'default row'.
    5b06d371
rem0rec.cc 73.3 KB