1. 08 Aug, 2007 4 commits
  2. 03 Aug, 2007 6 commits
  3. 02 Aug, 2007 2 commits
    • marko's avatar
      branches/zip: Ensure that the dictionary updates are atomic by keeping · 60c44c3a
      marko authored
      the data dictionary locked across the operations.
      
      dict_table_decrement_handle_count(), row_prebuilt_free(): Add the flag
      dict_locked, to prevent the acquisition of dict_sys->mutex.
      
      innobase_rename_table(): Rename commit_flag to lock_and_commit,
      and do not acquire dict_sys->mutex or flush the log unless the flag is set.
      Remove bogus comment about utility threads, because the threads will
      be waken up by the upper-level function ha_innobase::rename_table().
      
      ha_innobase::add_index(): After creating a primary key, hold dict_sys->mutex
      across all dictionary operations.
      60c44c3a
    • marko's avatar
  4. 01 Aug, 2007 10 commits
  5. 21 Jun, 2007 8 commits
  6. 20 Jun, 2007 3 commits
  7. 19 Jun, 2007 2 commits
  8. 18 Jun, 2007 2 commits
    • marko's avatar
      branches/zip: ha_innobase::add_index(): Split some assertions. · b3b01c1c
      marko authored
      Remove the variable parent_trx.
      
      Call innobase_register_stmt() in order to work around a MySQL bug
      in mysql_alter_table(), which, as of
      
      ChangeSet@1.2482.61.2, 2007-06-07 16:37:15+02:00, joerg@trift2. +8 -0
      
      commits the transaction before calling ha_innobase::add_index().
      Without re-registering the statement, the ha_commit_stmt(thd)
      in mysql_alter_table() would not invoke innobase_commit.
      b3b01c1c
    • marko's avatar
      branches/zip: ha_innobase::add_index(): Do not commit the transaction. · 73feaa11
      marko authored
      It should be committed by MySQL after all.  The error in mysql_alter_table()
      will be worked around in r1584.
      73feaa11
  9. 13 Jun, 2007 3 commits
    • marko's avatar
      branches/zip: Remove reads of freed memory in fast index creation. · b864484f
      marko authored
      Because row_drop_table_for_mysql_no_commit() checks with dict_load_table()
      if the table was successfully dropped, we cannot pass table->name to it.
      
      row_merge_drop_table(): Pass a copy of table->name to
      row_drop_table_for_mysql().
      
      row_prebuilt_free(): Do not dereference prebuilt->table->name after a
      successful invocation of row_add_table_to_background_drop_list().  The
      table object may be freed at any time.  Remove the debug message
      "Dropping table".
      b864484f
    • marko's avatar
      branches/zip: Fix a few bugs in fast index creation. No more crashes · d398e717
      marko authored
      occur in mysql-test-run, but mysql-test-run reports some warnings for
      some tests and incorrect results for innodb-index.test.
      
      innobase_start_trx_and_assign_read_view(): Use thd instead of current_thd.
      
      ha_innobase::add_index(): Use ha_thd() instead of current_thd.
      Commit the transaction at the end.
      
      row_merge_rename_index(): Really change the name of the index.  This was
      broken in r1430.
      d398e717
    • marko's avatar
      branches/zip: Merge 1571:1575 from trunk. · e621c1e2
      marko authored
      e621c1e2