1. 07 Dec, 2018 11 commits
  2. 06 Dec, 2018 8 commits
  3. 05 Dec, 2018 9 commits
    • Marko Mäkelä's avatar
      Try to ensure that rollback of inserting metadata record works · b6639a3c
      Marko Mäkelä authored
      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.
      b6639a3c
    • Marko Mäkelä's avatar
      Ensure that page_copy_rec_list cannot fail · ea6a6ca4
      Marko Mäkelä authored
      btr_page_create(): Add the parameter 'bool flexible', similar
      to btr_page_empty(). In this way, btr_root_raise_and_insert()
      and btr_page_split_and_insert() can avoid converting the page
      when splitting it. If a page were converted to flexible format
      during the split, the page split could theoretically fail
      due to the growth of the record header.
      
      Remove some bogus checks for os_has_said_disk_full, to avoid
      dereferencing NULL pointers.
      
      btr_page_split_and_insert(): If needed, convert the page to flexible
      format right before inserting the record. Do not convert pages when
      inserting a metadata record, because we want to be able to roll back
      the transaction.
      
      btr_can_merge_with_page(): Convert the page to flexible format if needed.
      
      btr_lift_page_up(): Preserve the format of the page.
      ea6a6ca4
    • Varun Gupta's avatar
      Added a testcase for mdev-17734 · 17e85702
      Varun Gupta authored
      17e85702
    • Marko Mäkelä's avatar
      Propagate page conversion failures · 02339a63
      Marko Mäkelä authored
      page_copy_rec_list_convert(): On page overflow, delete the records
      that were copied so far, and return an error.
      
      btr_page_reorganize_low(): Change the first parameter type from bool
      to the new type reorganize_t, so that REORGANIZE_CONVERT can be
      distinguished from the special case REORGANIZE_KEEP_FORMAT.
      
      btr_cur_optimistic_delete_func(), btr_cur_pessimistic_delete():
      Invoke REORGANIZE_KEEP_FORMAT when rolling back the insert of
      a metadata record during the rollback of instant ALTER TABLE.
      We must preserve the original format in that case.
      
      page_cur_insert_rec_write_log(): Add a const qualifier.
      
      page_copy_rec_list_end_no_locks(): Propagate the error from
      page_copy_rec_list_convert().
      
      page_copy_rec_list_to_created_page_write_log(),
      page_copy_rec_list_end_to_created_page(): Moved to a different
      compilation unit.
      02339a63
    • Alexander Barkov's avatar
      MDEV-17906 Class Binary_string · bb9b4182
      Alexander Barkov authored
      bb9b4182
    • Marko Mäkelä's avatar
      Handle btr_page_reorganize() failure · 14750eb1
      Marko Mäkelä authored
      btr_cur_optimistic_insert(), btr_cur_optimistic_update():
      Propagate btr_page_reorganize() failure to the caller.
      
      btr_cur_pessimistic_update(): If page format conversion is needed
      and it fails, fall back to btr_cur_pessimistic_insert().
      14750eb1
    • Marko Mäkelä's avatar
      Convert pages before btr_compress() if needed · 8db13fd6
      Marko Mäkelä authored
      btr_insert_into_right_sibling(): Convert the page before insertion if needed.
      
      btr_cur_pessimistic_delete(): Convert the page before btr_compress().
      
      btr_compress(): Assert that the page be in the correct format.
      8db13fd6
    • Alexander Barkov's avatar
      MDEV-17907 Class Static_binary_string · 24d6ec8d
      Alexander Barkov authored
      24d6ec8d
    • Alexander Barkov's avatar
      MDEV-17905 Add class Charset · d6a00d9b
      Alexander Barkov authored
      d6a00d9b
  4. 04 Dec, 2018 12 commits