Try to ensure that rollback of inserting metadata record works
We must use the original page format for inserting metadata records. This is because in case the instant ALTER TABLE operation needs to be rolled back (due to crash recovery), all pages must remain in the original format. btr_cur_optimistic_insert(): Avoid reorganize for inserting the metadata record. btr_cur_optimistic_update(): Initialize rec,offsets correctly after possible page format conversion. innobase_instant_try(): Do not store NULL values for those metadata record columns that were originally declared NOT NULL. dict_index_t::get_n_nullable(): Refer to dict_col_t::was_not_null() in order to keep the original format intact. lock_move_reorganize_page(): Allow the two pages to be in different formats. rec_convert_dtuple_to_rec_comp(), rec_convert_dtuple_to_rec_comp(): Also observe the DATA_WAS_NOT_NULL flag.
Showing
Please register or sign in to comment