mirror of
https://github.com/MariaDB/server.git
synced 2025-01-27 17:33:44 +01:00
9c79227c96
MDEV-6560 Assertion `! is_set() ' failed in Diagnostics_area::set_ok_status on killing CREATE OR REPLACE MDEV-6525 Assertion `table->pos_in_locked _tables == __null || table->pos_in_locked_tables->table = table' failed in mark_used_tables_as_free_for_reuse, locking problems and binlogging problems on CREATE OR REPLACE under lock. mysql-test/r/create_or_replace.result: Added test for MDEV-6560 mysql-test/t/create_or_replace.test: Added test for MDEV-6560 mysql-test/valgrind.supp: Added suppression for OpenSuse 12.3 sql/sql_base.cc: More DBUG sql/sql_class.cc: Changed that thd_sqlcom_can_generate_row_events() does not report that CREATE OR REPLACE is generating row events. This is safe as this function is only used by InnoDB/XtraDB to check if a query is generating row events as part of another transaction. As CREATE is always run as it's own transaction, this isn't a problem. This fixed MDEV-6525. sql/sql_table.cc: Remember if reopen_tables() generates an error (which can only happen in case of KILL). This fixed MDEV-6560
31 lines
917 B
Text
31 lines
917 B
Text
include/master-slave.inc
|
|
[connection master]
|
|
#
|
|
# MDEV-6525 ; Problems with CREATE OR REPLACE under lock
|
|
#
|
|
CREATE TABLE t1 (a INT) ENGINE=InnoDB;
|
|
CREATE FUNCTION f1() RETURNS INT RETURN ( SELECT MAX(a) FROM t1 );
|
|
connect con1,localhost,root,,test;
|
|
CREATE TEMPORARY TABLE tmp (b INT) ENGINE=InnoDB;
|
|
LOCK TABLE t1 WRITE;
|
|
SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;
|
|
CREATE OR REPLACE TABLE t1 LIKE tmp;
|
|
SHOW CREATE TABLE t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`b` int(11) DEFAULT NULL
|
|
) ENGINE=InnoDB DEFAULT CHARSET=latin1
|
|
connection default;
|
|
set session lock_wait_timeout=1;
|
|
SELECT f1();
|
|
ERROR HY000: Lock wait timeout exceeded; try restarting transaction
|
|
set session lock_wait_timeout=@@global.lock_wait_timeout;
|
|
SELECT f1();
|
|
connection con1;
|
|
unlock tables;
|
|
connection default;
|
|
ERROR 42S22: Unknown column 'a' in 'field list'
|
|
disconnect con1;
|
|
drop function f1;
|
|
drop table t1;
|
|
include/rpl_end.inc
|