1. 27 Nov, 2018 3 commits
    • Marko Mäkelä's avatar
      MDEV-17849 Undo tablespace truncation recovery fails to shrink file · e82e216e
      Marko Mäkelä authored
      fil_space_t::add(): Replaces fil_node_create(), fil_node_create_low().
      Let the caller pass fil_node_t::handle, to avoid having to close and
      re-open files.
      
      fil_node_t::read_page0(): Refactored from fil_node_open_file().
      Read the first page of a data file.
      
      fil_node_open_file(): Open the file only once.
      
      srv_undo_tablespace_open(): Set the file handle for the opened
      undo tablespace. This should ensure that ut_ad(file->is_open())
      no longer fails in recv_add_trim().
      
      xtrabackup_backup_func(): Remove some dead code.
      
      xb_fil_cur_open(): Open files only if needed. Undo tablespaces
      should already have been opened.
      e82e216e
    • Marko Mäkelä's avatar
      eb636461
    • Marko Mäkelä's avatar
      MDEV-17851 Assertion failure srv_undo_tablespaces > 1 · b9824074
      Marko Mäkelä authored
      trx_assign_rseg_low(): Skip dedicated undo tablespaces if
      innodb_undo_tablespaces=0 has been set after the database was created.
      b9824074
  2. 26 Nov, 2018 5 commits
    • Marko Mäkelä's avatar
      MDEV-17816: Follow-up fix · 861038f2
      Marko Mäkelä authored
      When dropping a partially created table due to failure,
      use SQLCOM_TRUNCATE instead of SQLCOM_DROP_DB, so that
      no foreign key constraints will be touched. If any
      constraints were added as part of the creation, they would
      be reverted as part of the transaction rollback.
      
      We need an explicit call to row_drop_table_for_mysql(),
      because InnoDB does not do proper undo logging for CREATE TABLE,
      but would only drop the table at the end of the rollback.
      This would not work if the transaction combines both
      RENAME and CREATE, like TRUNCATE now does.
      861038f2
    • Marko Mäkelä's avatar
      MDEV-17831 TRUNCATE TABLE removes ROW_FORMAT=COMPRESSED · 971e1d86
      Marko Mäkelä authored
      If a table had a KEY_BLOCK_SIZE attribute, but no ROW_FORMAT,
      it would be created as ROW_FORMAT=COMPRESSED in InnoDB.
      However, TRUNCATE TABLE would lose the KEY_BLOCK_SIZE attribute
      and create the table with the innodb_default_row_format (DYNAMIC).
      
      This is a regression that was introduced by MDEV-13564.
      
      update_create_info_from_table(): Copy also KEY_BLOCK_SIZE.
      971e1d86
    • Jan Lindström's avatar
      9669536c
    • Marko Mäkelä's avatar
      MDEV-17816 Crash in TRUNCATE TABLE when table creation fails · 2a31b828
      Marko Mäkelä authored
      The error handling in the MDEV-13564 TRUNCATE TABLE was broken
      when an error occurred during table creation.
      
      row_create_index_for_mysql(): Do not drop the table on error.
      
      fts_create_one_common_table(), fts_create_one_index_table():
      Do drop the table on error.
      
      create_index(), create_table_info_t::create_table():
      Let the caller handle the index creation errors.
      
      ha_innobase::create(): If create_table_info_t::create_table()
      fails, drop the incomplete table, roll back the transaction,
      and finally return an error to the caller.
      2a31b828
    • Marko Mäkelä's avatar
      MDEV-14409 Assertion `page_rec_is_leaf(rec)' failed in lock_rec_validate_page · a81fceaf
      Marko Mäkelä authored
      lock_rec_queue_validate(): Assert page_rec_is_leaf(rec), except when
      the record is a page infimum or supremum.
      
      lock_rec_validate_page(): Relax the assertion that failed.
      The assertion was reachable when the record lock bitmap was empty.
      
      lock_rec_insert_check_and_lock(): Assert page_is_leaf().
      a81fceaf
  3. 22 Nov, 2018 5 commits
  4. 21 Nov, 2018 2 commits
  5. 20 Nov, 2018 2 commits
  6. 19 Nov, 2018 14 commits
  7. 17 Nov, 2018 1 commit
  8. 16 Nov, 2018 3 commits
  9. 15 Nov, 2018 5 commits