WL#6924: Migrate funcs_1 suite to run with innodb engine
Status: Complete — Priority: Medium
WL#6731 switched the default engine to innodb in MTR and added a line force_myisam_default.inc to all existing tests. This WL will migrate the funcs_1 suite to run with innodb engine instead of myisam where myisam properties are not in the focus of the test.
In the funcs_1 suite 1) Remove the "force_myisam_default.inc" from the .test files in case this does not violate the objective of the test. 2) Make adjustments as far as required by 1) 3) Fix obvious bugs within the testsuite I (mleich) am 99% familiar with this suite and the purpose of any of its tests. Test x checks MyISAM properties and performs these checks on the table X. ==> It must be ensured that table X uses MyISAM after migration. Either - do not remove the "force_myisam_default.inc" or - add --source include/have_myisam.inc and ENGINE = MyISAM to the CREATE TABLE Y. (*) Test y uses table Y for auxiliary data (= It is not the test object). The operations performed on table Y do not require/exploit that this table has MyISAM (or more exact non InnoDB) specific properties. ==> A change that the table Y uses InnoDB instead of <whatever> after migration is tolerable. (*) Test z uses table Z for auxiliary data (= It is not the test object). The operations performed on table Z exploit that this table has MyISAM specific properties. Example: Try to insert two records at once and get hereby some uniqueness violation on the second record. MyISAM: The first record is in the table. InnoDB: None of both records will be in the table ==> A change that the table Z uses InnoDB instead of <whatever> after migration is not tolerable (**). (*) The total runtime of the complete testsuite must not grow too much. (**) If time permits you can modify the test so that the MyISAm specific property is no more exploited.
In order to avoid misunderstandings: 1. Any "have InnoDB as default storage engine" does not imply that the test must be not focused on MyISAM properties. 2. There are tests which use MyISAM intentionally (reason was performance) though they are not focused on checking MyISAM properties at all.
Copyright (c) 2000, 2017, Oracle Corporation and/or its affiliates. All rights reserved.