mariadb/mysql-test/suite/rpl/t/rename.test
Monty da71c1bad7 MDEV-16229 Replication aborts with ER_VIEW_SELECT_TMPTABLE after half-failed RENAME
Problem was that detection of temporary tables was all wrong for
RENAME TABLE.
(Temporary tables where opened by top level call to
open_temporary_tables(), which can't detect if a temporary table
was renamed to something and then reused).

Fixed by adding proper parsing of rename list to check against
the current name of a table at each rename stage.
Also change do_rename_temporary() to check against the current
state of temporary tables, not according to the state of start
of RENAME TABLE.
2018-05-22 23:05:48 +03:00

33 lines
702 B
Text

--source include/have_binlog_format_mixed.inc
--source include/master-slave.inc
--echo #
--echo # MDEV-16229 Replication aborts with ER_VIEW_SELECT_TMPTABLE after
--echo # half-failed RENAME
--echo #
CREATE TABLE t1 (a INT);
CREATE TEMPORARY TABLE t1 (b INT);
RENAME TABLE t1 TO tmp, tmp TO t1;
SHOW CREATE TABLE t1;
--error ER_VIEW_SELECT_TMPTABLE
CREATE VIEW v AS SELECT * FROM t1;
RENAME TABLE t1 TO tmp, t1 TO t2;
SHOW CREATE TABLE tmp;
SHOW CREATE TABLE t2;
--error ER_VIEW_SELECT_TMPTABLE
CREATE VIEW v AS SELECT * FROM tmp;
CREATE VIEW v AS SELECT * FROM t2;
--sync_slave_with_master
# Cleanup
--connection master
DROP VIEW v;
DROP TABLE tmp;
DROP TABLE t2;
--source include/rpl_end.inc