mirror of
https://github.com/MariaDB/server.git
synced 2025-01-23 07:14:17 +01:00
d665e79c5b
for InnoDB tables" Don't use thr_lock.c locks for InnoDB tables. Below is list of changes that were needed to implement this: - HANDLER OPEN acquireis MDL_SHARED_READ instead of MDL_SHARED - HANDLER READ calls external_lock() even if SE is not going to be locked by THR_LOCK - InnoDB lock wait timeouts are now honored which are much shorter by default than server lock wait timeouts (1 year vs 50 seconds) - with @@autocommit= 1 LOCK TABLES disables autocommit implicitely, though user still sees @@autocommt= 1 - the above starts implicit transaction - transactions started by LOCK TABLES are now rolled back on disconnect (previously everything was committed due to autocommit) - transactions started by LOCK TABLES are now rolled back by ROLLBACK (previously everything was committed due to autocommit) - it is now impossible to change BINLOG_FORMAT under LOCK TABLES (at least to statement) due to running transaction - LOCK TABLES WRITE is additionally handled by MDL - ...in contrast LOCK TABLES READ protection against DML is pure InnoDB - combining transactional and non-transactional tables under LOCK TABLES may cause rolled back changes in transactional table and "committed" changes in non-transactional table - user may disable innodb_table_locks, which will cause LOCK TABLES to be noop basically Removed tests for BUG#45143 and BUG#55930 which cover InnoDB + THR_LOCK. To operate properly these tests require code flow to go through THR_LOCK debug sync points, which is not the case after this patch. These tests are removed by WL#6671 as well. An alternative is to port them to different storage engine. |
||
---|---|---|
.. | ||
rpl | ||
tokudb | ||
tokudb_add_index | ||
tokudb_alter_table | ||
tokudb_backup | ||
tokudb_bugs | ||
tokudb_mariadb | ||
tokudb_parts | ||
tokudb_rpl | ||
tokudb_sys_vars | ||
README.tokudb |
The MySQL tests for TokuDB are divided into common tests and tests specific to a particular MySQL distribution. The tests that are common for all MySQL distributions can be found in the svn:tokudb/mysql/tests/mysql-test directory. The tests that are specific to a particular distribution can be found in that distribution's mysql-test directory. For example, tests that are specific to MySQL 5.5.21 are found in the svn:tokudb/mysql.com/mysql-5.5.21/mysql-test directory. When we run tests on a particular MySQL distribution, we run the union of the common tests and the tests that are in that distributions mysql-test directory. The union is formed by overlaying the common tests with the distribution specific tests. Here is an example. There are a bunch of alter table tests in that should be common to all MySQL distributions. These tests are in the svn:tokudb/mysql/tests/mysql-test/suite/tokudb.alter_table directory. However, the ai_di.test has behaviour that is different on MySQL 5.5 than previous MySQL distributions. There is another version of this test in the MySQL 5.5.21 source directory. This version replaces the common test since it has the same test name. It is easy to disable a test. Just add the test name to the "disabled.def" file in the test directory. We use the run.mysql.tests.bash script from the mysql/scripts directory to run the tests.