WL#6922: Migrate binlog suite to run with innodb storage engine
Status: Complete — Priority: Medium
We have switched the default engine to innodb in MTR and added a line --source include/force_myisam_default.inc to all existing tests. This WL will migrate the binlog suite to run with innodb engine User Documentation ================== None required.
In the binlog and i_binlog suites remove the line --source include/force_myisam_default.inc from the .test files that are not required to run with MyISAM
The following tests failed: i_binlog.binlog_stm_mix_innodb_disabled i_binlog.binlog_row_innodb_disabled binlog.binlog_stm_insert_select binlog.binlog_row_insert_select binlog.binlog_stm_row binlog.binlog_stm_blackhole binlog.binlog_stm_drop_tbl binlog.binlog_row_drop_tbl binlog.binlog_database binlog.binlog_stm_ps binlog.binlog_unsafe binlog.binlog_stm_drop_tmp_tbl binlog.binlog_row_drop_tmp_tbl The above tests can be categorised as below: 1. MyISAM Only tests >>binlog_stm_mix_innodb_disabled >>binlog_row_innodb_disabled These two tests check that when InnoDB is disabled (using --skip-innodb) and binlog enabled, events are still logged to binary log. The server will not start with innodb as default storage engine (http://dev.mysql.com/doc/refman/5.7/en/innodb-parameters.html#option_mysqld_innodb) when skip-innodb option being used. >>binlog_stm_insert_select >>binlog_row_insert_select These two tests are to check if a partly-completed INSERT SELECT in a MyISAM table goes into the binlog. This test has different behaivior with innodb as default. Therefore test is MyISAM specific. >>binlog_stm_row In MyISAM INSERT INTO .. SELECT FROM takes a read lock on the source table whereas in InnoDB row-level locking is used. >>binlog_stm_blackhole In this test there is a difference in the result of fulltext search between myisam and innodb. (results for same queries being different for FTS between the two engines) FIX: The line --source include/force_myisam_default.inc retained. Also added --source include/have_myisam.inc before the above mentioned line. 2. Engine Independent tests >>binlog_stm_drop_tbl >>binlog_row_drop_tbl >>binlog_database >>binlog_stm_ps >>binlog_unsafe The above four tests are not engine specific and fail due the contents of binlog events -master-bin.000001 # Query # # COMMIT +master-bin.000001 # Xid # # COMMIT /* XID */ FIX: Added one variable '$mask_binlog_commit_events' in show_events.inc file, checking if we need to mask binlog/relaylog events or not. Then initialize and uninitialize the same variable in failing testcases, as show below: +--let $mask_binlog_commit_events= 1 source include/show_binlog_events.inc; +--let $mask_binlog_commit_events= 0 >>binlog_stm_drop_tmp_tbl >>binlog_row_drop_tmp_tbl The above two tests failed due to result content mismatch in show binlog events.(Result file updated)
Copyright (c) 2000, 2019, Oracle Corporation and/or its affiliates. All rights reserved.