1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-30 11:22:14 +03:00
Files
mariadb/mysql-test/suite/innodb/t/undo_upgrade.test
2023-11-08 16:46:47 +01:00

79 lines
2.5 KiB
Plaintext

--source include/have_innodb.inc
--source include/innodb_page_size.inc
--source include/not_embedded.inc
--echo #
--echo # MDEV-19229 Allow innodb_undo_tablespaces to be changed
--echo # after database creation
--echo #
call mtr.add_suppression("Found .* prepared XA transactions");
call mtr.add_suppression("InnoDB: Plugin initialization aborted");
call mtr.add_suppression("Plugin 'InnoDB' init function returned error");
call mtr.add_suppression("Plugin 'InnoDB' registration as a STORAGE ENGINE failed");
call mtr.add_suppression("InnoDB: Cannot change innodb_undo_tablespaces=\\d+ because previous shutdown was not with innodb_fast_shutdown=0");
let $MYSQLD_DATADIR= `select @@datadir`;
CREATE TABLE t1(f1 INT NOT NULL)ENGINE=InnoDB;
--echo # case 1: XA transaction alone left
--source include/wait_all_purged.inc
XA START 'zombie';
INSERT INTO t1 VALUES(2);
XA END 'zombie';
XA PREPARE 'zombie';
--source include/restart_mysqld.inc
--echo # Display 4 undo tablespaces
select @@global.innodb_undo_tablespaces;
--echo # Should list 4 undo log tablespaces
list_files $MYSQLD_DATADIR undo*;
XA COMMIT 'zombie';
--echo # case 2: Successful innodb_undo_tablespace upgrade
SET GLOBAL innodb_fast_shutdown=0;
let $restart_parameters=--innodb_undo_tablespaces=2;
--source include/restart_mysqld.inc
--echo # Display 2 undo tablespaces
SELECT @@global.innodb_undo_tablespaces;
--echo # Should list 2 undo log tablespaces
list_files $MYSQLD_DATADIR undo*;
DROP TABLE t1;
--source include/wait_all_purged.inc
--echo # case 3: Reduce the innodb_undo_tablespace to 0
let $restart_parameters=--innodb_undo_tablespaces=0;
--source include/restart_mysqld.inc
--echo # Display 0 undo tablespace
SELECT @@global.innodb_undo_tablespaces;
--echo # Shouldn't list any undo log tablespaces
list_files $MYSQLD_DATADIR undo*;
--echo # case 4: Change undo tablespace when force_recovery < 5
let $restart_parameters=--innodb_undo_tablespaces=2 --innodb_force_recovery=4;
--source include/restart_mysqld.inc
--echo # Display 2 undo tablespace
SELECT @@global.innodb_undo_tablespaces;
--echo # Should list 2 undo log tablespaces
list_files $MYSQLD_DATADIR undo*;
--echo # case 5: Fail to change undo tablespace when force_recovery > 4
let $restart_parameters=--innodb_undo_tablespaces=4 --innodb_force_recovery=5;
--source include/restart_mysqld.inc
--echo # Display 2 undo tablespace
SELECT @@global.innodb_undo_tablespaces;
--echo # Should list 2 undo log tablespaces, not 4
list_files $MYSQLD_DATADIR undo*;