mirror of
https://github.com/MariaDB/server.git
synced 2025-02-16 02:15:33 +01:00
![Monty](/assets/img/avatar_default.png)
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.
33 lines
702 B
Text
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
|