mariadb/handler
marko 41953325b9 branches/zip: Fix some locking issues, mainly in fast index creation.
This should hopefully address Issue #85.

ha_innobase::add_index(): Lock the data dictionary before invoking
row_merge_rename_indexes() or row_merge_drop_indexes(), because neither
function will commit the transaction.

ha_innobase::final_drop_index(): Commit the transactions before
unlocking the data dictionary.

row_merge_drop_index(), row_merge_drop_indexes(), row_merge_rename_tables(),
row_merge_rename_indexes(): Note and assert that the data dictionary must
have been exclusively locked by the caller, because the transaction will
not be committed.

row_drop_database_for_mysql(): Commit the transaction immediately after
dropping each table.  When MySQL is holding open handles to some tables,
it can otherwise occur than the data dictionary is unlocked while the
transaction has not been committed.  This bug was introduced in r2739,
which changed the semantics of row_drop_table_for_mysql().

row_drop_database_for_mysql(): Postpone mem_free(table_name), so that
an error printout will not dereference freed memory.
2008-10-10 11:44:27 +00:00
..
ha_innodb.cc branches/zip: Merge revisions 2722:2744 from branches/5.1: 2008-10-09 08:48:58 +00:00
ha_innodb.h branches/zip: Fix the handler class method return type. Change ulong to ulint 2008-10-04 06:34:54 +00:00
handler0alter.cc branches/zip: Fix some locking issues, mainly in fast index creation. 2008-10-10 11:44:27 +00:00
i_s.cc branches/zip: 2008-05-06 11:10:09 +00:00
i_s.h branches/zip: Rename the compression-related INFORMATION_SCHEMA tables 2008-03-28 10:31:24 +00:00
mysql_addons.cc branches/zip: Add the necessary #include "univ.i" that was removed in the 2008-02-08 13:50:28 +00:00