--source include/have_innodb.inc --source include/not_embedded.inc call mtr.add_suppression("InnoDB: In RENAME TABLE table `test`.`t4` is referenced in foreign key constraints which are not compatible with the new table definition."); CREATE DATABASE test_jfg; CREATE DATABASE test_jfg2; CREATE TABLE test_jfg.test (a int unsigned PRIMARY KEY) ENGINE=InnoDB; RENAME TABLE test_jfg.test TO test_jfg2.test; SELECT REPLACE(filename,'\\','/') path FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESPACES WHERE filename LIKE '%test%'; DROP DATABASE test_jfg; --source include/restart_mysqld.inc DROP DATABASE test_jfg2; CREATE DATABASE abc_def; CREATE DATABASE abc_def2; CREATE TABLE abc_def.test (a int unsigned PRIMARY KEY) ENGINE=InnoDB; RENAME TABLE abc_def.test TO abc_def2.test1; SELECT REPLACE(filename,'\\','/') path FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESPACES WHERE filename LIKE '%test%'; DROP DATABASE abc_def; --source include/restart_mysqld.inc DROP DATABASE abc_def2; call mtr.add_suppression("InnoDB: (Operating system error|Error number \\d+ means|Cannot rename file)"); CREATE TABLE t1 (a INT) ENGINE=InnoDB; --replace_result "\\" "/" --error ER_ERROR_ON_RENAME RENAME TABLE t1 TO non_existing_db.t1; --let SEARCH_PATTERN= \[ERROR\] InnoDB: Cannot rename file '.*t1\.ibd' to '.*non_existing_db let SEARCH_FILE= $MYSQLTEST_VARDIR/log/mysqld.1.err; --source include/search_pattern_in_file.inc # Cleanup DROP TABLE t1; --echo # --echo # MDEV-25509 Atomic DDL: Assertion `err != DB_DUPLICATE_KEY' --echo # fails after previous error upon multi-RENAME --echo # SET FOREIGN_KEY_CHECKS= OFF; CREATE TABLE t1 (pk INT PRIMARY KEY, f INT, FOREIGN KEY (f) REFERENCES t4 (x)) ENGINE=InnoDB; ALTER TABLE t1 DROP KEY f; CREATE TABLE t2 (a INT) ENGINE=InnoDB; --error ER_ERROR_ON_RENAME RENAME TABLE t1 TO t3, t3 TO t4; RENAME TABLE t2 TO t3; DROP TABLE t3, t1; SET FOREIGN_KEY_CHECKS=DEFAULT;