mariadb/mysql-test/suite/innodb/t
Dmitry Lenev d076be2a32 Fix for bug #11762012 - "54553: INNODB ASSERTS IN
HA_INNOBASE::UPDATE_ROW, TEMPORARY TABLE, TABLE LOCK".

Attempt to update an InnoDB temporary table under LOCK TABLES
led to assertion failure in both debug and production builds
if this temporary table was explicitly locked for READ. The 
same scenario works fine for MyISAM temporary tables.

The assertion failure was caused by discrepancy between lock 
that was requested on the rows of temporary table at LOCK TABLES
time and by update operation. Since SQL-layer requested a 
read-lock at LOCK TABLES time InnoDB engine assumed that upcoming
statements which are going to be executed under LOCK TABLES will 
only read table and therefore should acquire only S-lock.
An update operation broken this assumption by requesting X-lock.

Possible approaches to fixing this problem are:

1) Skip locking of temporary tables as locking doesn't make any
   sense for connection-local objects.
2) Prohibit changing of temporary table locked by LOCK TABLES ... 
   READ.

Unfortunately both of these approaches have drawbacks which make 
them unviable for stable versions of server.

So this patch takes another approach and changes code in such way
that LOCK TABLES for a temporary table will always request write
lock. In 5.1 version of this patch switch from read lock to write
lock is done inside of InnoDBs handler methods as doing it on 
SQL-layer causes compatibility troubles with FLUSH TABLES WITH
READ LOCK.
2011-05-26 17:14:47 +04:00
..
disabled.def Bug #38999: Re-enable innodb_multi_update.test 2010-06-10 15:56:23 +03:00
innodb-autoinc-44030.test
innodb-autoinc-optimize.test Move some InnoDB tests to mysql-test/suite/innodb. 2010-06-03 12:50:32 +03:00
innodb-autoinc.test Bug#39828 : Autoinc wraps around when offset and increment > 1 2010-12-13 14:48:12 +03:00
innodb-lock.test
innodb-master.opt
innodb-replace.test
innodb-semi-consistent-master.opt
innodb-semi-consistent.test
innodb-ucs2.test Move some InnoDB tests to mysql-test/suite/innodb. 2010-06-03 12:50:32 +03:00
innodb.test
innodb_autoinc_lock_mode_zero-master.opt Move some InnoDB tests to mysql-test/suite/innodb. 2010-06-03 12:50:32 +03:00
innodb_autoinc_lock_mode_zero.test Move some InnoDB tests to mysql-test/suite/innodb. 2010-06-03 12:50:32 +03:00
innodb_bug21704.test
innodb_bug30423.test Fix Bug#30423 "InnoDBs treatment of NULL in index stats causes bad 2011-01-14 09:02:28 -08:00
innodb_bug30919-master.opt Move some InnoDB tests to mysql-test/suite/innodb. 2010-06-03 12:50:32 +03:00
innodb_bug30919.test Move some InnoDB tests to mysql-test/suite/innodb. 2010-06-03 12:50:32 +03:00
innodb_bug34053.test
innodb_bug34300.test
innodb_bug35220.test
innodb_bug38231.test
innodb_bug39438-master.opt
innodb_bug39438.test
innodb_bug40565.test
innodb_bug42101-nonzero-master.opt
innodb_bug42101-nonzero.test
innodb_bug42101.test
innodb_bug42419.test Move some InnoDB tests to mysql-test/suite/innodb. 2010-06-03 12:50:32 +03:00
innodb_bug44369.test
innodb_bug45357.test
innodb_bug46000.test
innodb_bug47621.test
innodb_bug47777.test
innodb_bug48024.test
innodb_bug49164.test
innodb_bug51920.test
innodb_bug52663-master.opt
innodb_bug52663.test
innodb_bug53674-master.opt
innodb_bug53674.test
innodb_bug53756-master.opt Add innodb_bug53756-master.opt for innodb_bug53756 test. 2010-07-05 19:26:38 -07:00
innodb_bug53756.test Bug #11762804 55442: MYSQLD DEBUG CRASHES WHILE RUNNING MYISAM_CRASH_BEFORE_FLUSH_KEYS.TEST 2011-03-15 16:06:59 +01:00
innodb_bug54044.test Change the table name in innodb_bug54044 to lower case to avoid 2010-06-29 00:13:18 -07:00
innodb_bug56143.test Suppress InnoDB warning about long semaphore wait if running under Valgrind 2011-01-12 17:53:05 +02:00
innodb_bug56680.test Bug #56680 wrong InnoDB results from a case-insensitive covering index 2010-10-19 08:58:53 +03:00
innodb_bug56716.test Bug#56716 InnoDB locks a record gap without locking the table 2010-10-04 13:05:21 +03:00
innodb_bug57252.test Fix Bug#57252 disabling innobase_stats_on_metadata disables ANALYZE 2010-10-18 13:48:11 +03:00
innodb_bug57255.test Speed up innodb_bug57255.test 2010-12-14 11:38:19 +02:00
innodb_bug59410.test Add the testcase for Bug#59410 to 5.1/builtin 2011-04-05 11:08:36 +03:00
innodb_bug59641.test Bug #11766513 - 59641: Prepared XA transaction in system after hard crash 2011-04-07 21:12:54 +03:00
innodb_bug60049-master.opt Add a test for suspected Bug#60049. 2011-02-15 12:12:27 +02:00
innodb_bug60049.test Allow 30 seconds for slow shutdown in the Bug #60049 test. 2011-02-17 22:25:33 +02:00
innodb_gis.test Move some InnoDB tests to mysql-test/suite/innodb. 2010-06-03 12:50:32 +03:00
innodb_lock_wait_timeout_1-master.opt Move some InnoDB tests to mysql-test/suite/innodb. 2010-06-03 12:50:32 +03:00
innodb_lock_wait_timeout_1.test Move some InnoDB tests to mysql-test/suite/innodb. 2010-06-03 12:50:32 +03:00
innodb_misc1-master.opt
innodb_misc1.test
innodb_multi_update.test Fixed following problems: 2010-12-14 12:33:03 +03:00
innodb_mysql-master.opt Move some InnoDB tests to mysql-test/suite/innodb. 2010-06-03 12:50:32 +03:00
innodb_mysql.test Fix for bug #11762012 - "54553: INNODB ASSERTS IN 2011-05-26 17:14:47 +04:00
innodb_mysql_rbk-master.opt Move some InnoDB tests to mysql-test/suite/innodb. 2010-06-03 12:50:32 +03:00
innodb_mysql_rbk.test Move some InnoDB tests to mysql-test/suite/innodb. 2010-06-03 12:50:32 +03:00
innodb_notembedded.test Move some InnoDB tests to mysql-test/suite/innodb. 2010-06-03 12:50:32 +03:00
innodb_timeout_rollback-master.opt Move some InnoDB tests to mysql-test/suite/innodb. 2010-06-03 12:50:32 +03:00
innodb_timeout_rollback.test Move some InnoDB tests to mysql-test/suite/innodb. 2010-06-03 12:50:32 +03:00
innodb_trx_weight.test