Problem Statement ------------------- MySQL 5.5 changed the default storage engine from MyISAM to innodb . A change in storage engine has a big impact on the test suite. All the result files would change and lot of investigation is required to validate the new result files. In order to avoid changing the test suite it was decided to change MTR instead to start the server with MyISAM as the default. As a result of the above change the main MySQL functional test suite is running with MyISAM as the storage engine and test coverage on innodb is limited. Even the new tests and suites continue to run with MyISAM unless the tests specifically mention innodb as the storage engine Goal ------ The goal of this WL is to change MTR such that it starts the server with Innodb unless MyISAM explicitly specified in the test
Requirements -------------- R01 - MTR by default should start the server with the default storage engine, innodb R02 - The existing tests that do not explicitly specify any engine should continue to run with MyISAM until the result files are migrated to innodb R03 - Existing tests that explicity specify an engine should continue to run with the specified engine R04 - All suites and tests added to MTR after wl6731 have been pushed to trunk should run with the default storage engine of the server unless the test explicitly specifies another storage engine R05 - Tests that specify engine=innodb when creating tables, should no longer do that since it is now redundant, unless the tests runs the server with another engine as default
The code in the above branch has the following changes: 1. The default MyISAM has been changed to Innodb in mtr, the change can be found in mtr_cases.pm 2. All existing test cases except the ones that run Innodb has been changed to use MyISAM, a new quote # "This line and the line below is a temporary line for tests that do not need MyISAM in future, but need to be kept for tests that need it.\n--source include/force_default_myisam.inc" -- has been added to test cases. 3. A new file include/have_myisam.inc in source for future use and is empty. A new empty file include/force_default_myisam.inc has been added to be included in tests that require MyISAM. The idea is to keep the quote in point 2 for test cases which is still running MyISAM and remove it when it moves to Innodb, for test cases which will be running MyISAM even in future needs to keep this line. R01 - MTR by default should start the server with the default storage engine, innodb R01 has been satisfied. R02 - The existing tests that do not explicitly specify any engine should continue to run with MyISAM until the result files are migrated to innodb R02 satisfied. R03 - Existing tests that explicity specify an engine should continue to run with the specified engine R03 satisfied. RO4 - All new suites and tests should run with innodb unless the test explicitly specifies that it should run with another storage engine. R04 satisfied.