1. 28 Nov, 2018 1 commit
  2. 27 Nov, 2018 4 commits
  3. 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
  4. 22 Nov, 2018 5 commits
  5. 21 Nov, 2018 2 commits
  6. 20 Nov, 2018 2 commits
  7. 19 Nov, 2018 14 commits
  8. 17 Nov, 2018 1 commit
  9. 16 Nov, 2018 3 commits
  10. 15 Nov, 2018 3 commits
    • Oleksandr Byelkin's avatar
      Merge branch '10.1' into 10.2 · f74649b5
      Oleksandr Byelkin authored
      f74649b5
    • Oleksandr Byelkin's avatar
      Merge branch '10.0' into 10.1 · a77f80b7
      Oleksandr Byelkin authored
      a77f80b7
    • Marko Mäkelä's avatar
      MDEV-17726 Assertion `sqlcom != SQLCOM_TRUNCATE' failed in... · c6838cc6
      Marko Mäkelä authored
      MDEV-17726 Assertion `sqlcom != SQLCOM_TRUNCATE' failed in ha_innobase::delete_table after truncating temporary table
      
      THD::close_temporary_tables(): Assign lex->sql_command so that
      the debug assertion will not fail in ha_innobase::delete_table().
      
      Alternatively, we could ensure that thd_killed() holds inside
      ha_innobase::delete_table().
      
      There should be no impact for the non-debug build. The thd_sql_command()
      inside ha_innobase::delete_table() only affects the treatment of
      persistent FOREIGN KEY metadata. There is no persistent metadata
      nor foreign key constraints for temporary tables.
      
      No test case was added, because the failure is nondeterministic.
      c6838cc6