mariadb/mysql-test
marko d0d9299177 branches/zip: Fast index creation: Remove the ROW_PREBUILT_OBSOLETE nonsense.
Active transactions must not switch table or index definitions on the fly,
for several reasons, including the following:

 * copied indexes do not carry any history or locking information;
   that is, rollbacks, read views, and record locking would be broken

 * huge potential for race conditions, inconsistent reads and writes,
   loss of data, and corruption

Instead of trying to track down if the table was changed during a transaction,
acquire appropriate locks that protect the creation and dropping of indexes.

innodb-index.test: Test the locking of CREATE INDEX and DROP INDEX.  Test
that consistent reads work across dropped indexes.

lock_rec_insert_check_and_lock(): Relax the lock_table_has() assertion.
When inserting a record into an index, the table must be at least IX-locked.
However, when an index is being created, an IS-lock on the table is
sufficient.

row_merge_lock_table(): Add the parameter enum lock_mode mode, which must
be LOCK_X or LOCK_S.

row_merge_drop_table(): Assert that n_mysql_handles_opened == 0.
Unconditionally drop the table.

ha_innobase::add_index(): Acquire an X or S lock on the table, as appropriate.
After acquiring an X lock, assert that n_mysql_handles_opened == 1.
Remove the comments about dropping tables in the background.

ha_innobase::final_drop_index(): Acquire an X lock on the table.

dict_table_t: Remove version_number, to_be_dropped, and prebuilts.
ins_node_t: Remove table_version_number.

enum lock_mode: Move the definition from lock0lock.h to lock0types.h.

ROW_PREBUILT_OBSOLETE, row_update_prebuilt(), row_prebuilt_table_obsolete():
Remove.

row_prebuilt_t: Remove the declaration from row0types.h.

row_drop_table_for_mysql_no_commit(): Always print a warning if a table
was added to the background drop queue.
2007-12-17 15:49:59 +00:00
..
ctype_innodb_like.inc Import 5.0 code. 2005-10-27 07:29:40 +00:00
have_innodb.inc branches/zip: Merge 1575:1664 from trunk. 2007-08-01 11:18:43 +00:00
innodb-index-master.opt branches/zip: Fast index creation: Remove the ROW_PREBUILT_OBSOLETE nonsense. 2007-12-17 15:49:59 +00:00
innodb-index.inc branches/zip: 2007-11-21 10:47:08 +00:00
innodb-index.result branches/zip: Fast index creation: Remove the ROW_PREBUILT_OBSOLETE nonsense. 2007-12-17 15:49:59 +00:00
innodb-index.test branches/zip: Fast index creation: Remove the ROW_PREBUILT_OBSOLETE nonsense. 2007-12-17 15:49:59 +00:00
innodb-index_ucs2.result branches/zip: 2007-11-21 11:23:05 +00:00
innodb-index_ucs2.test branches/zip: 2007-11-21 11:23:05 +00:00
innodb-lock.result Import 5.0 code. 2005-10-27 07:29:40 +00:00
innodb-lock.test branches/zip: Merge revisions 1322:1402 from trunk. 2007-04-02 05:39:41 +00:00
innodb-master.opt branches/zip: Merge revisions 265:459 from trunk. 2006-04-12 09:32:17 +00:00
innodb-replace.result branches/zip: Merge revisions 1322:1402 from trunk. 2007-04-02 05:39:41 +00:00
innodb-replace.test branches/zip: Merge revisions 1322:1402 from trunk. 2007-04-02 05:39:41 +00:00
innodb-semi-consistent-master.opt branches/zip: Merge 1937:2015 from trunk. 2007-10-24 10:59:54 +00:00
innodb-semi-consistent.result branches/zip: Merge 1937:2015 from trunk. 2007-10-24 10:59:54 +00:00
innodb-semi-consistent.test branches/zip: Merge 1937:2015 from trunk. 2007-10-24 10:59:54 +00:00
innodb.result branches/zip: Merge r2154 from trunk: 2007-12-04 08:37:43 +00:00
innodb.test branches/zip: Merge r2154 from trunk: 2007-12-04 08:37:43 +00:00
innodb_information_schema.result branches/zip: 2007-11-21 12:01:36 +00:00
innodb_information_schema.test branches/zip: INFORMATION_SCHEMA.INNODB_LOCKS: Quote lock_table, lock_index. 2007-11-21 08:46:11 +00:00
innodb_trx_weight.inc branches/zip: Merge 1553:1556 from trunk. 2007-06-08 07:05:17 +00:00
innodb_trx_weight.result branches/zip: Merge 1493:1533 from trunk. 2007-05-29 08:48:16 +00:00
innodb_trx_weight.test branches/zip: Merge 1575:1664 from trunk. 2007-08-01 11:18:43 +00:00