mariadb/mysql-test/suite/maria/lock.test
Michael Widenius a1bc393630 Fixed MDEV-366: Assertion `share->reopen == 1' failed in maria_extra on DROP TABLE which is locked twice
mysql-test/suite/maria/lock.result:
  Added test case
mysql-test/suite/maria/lock.test:
  Added test case
sql/sql_table.cc:
  One can't call HA_EXTRA_FORCE_REOPEN on something that may be opened twice.
  It's safe to remove the call in this case as we will call HA_EXTRA_PREPARE_FOR_DROP for the table anyway.
  (One nice side effect is that drop is a bit faster as we are not flushing the cache to disk before the drop anymore)
2012-08-15 14:37:55 +03:00

52 lines
1 KiB
Text

#
# Testing of potential problems in Aria with locking
#
-- source include/have_maria.inc
drop table if exists t1,t2;
#
# Test for Bug#973039
# Assertion `share->in_trans == 0' failed in maria_close on DROP TABLE
# under LOCK
#
# Test DROP TABLE
CREATE TABLE t1 (i INT) ENGINE=Aria;
CREATE TABLE t2 (i INT) ENGINE=Aria;
LOCK TABLE t1 WRITE, t2 WRITE;
# Also fails with FLUSH TABLE t1 and with REPAIR TABLE t1 USE_FRM
DROP TABLE t1;
UNLOCK TABLES;
DROP TABLE t2;
#Test FLUSH TABLE
CREATE TABLE t1 (i INT) ENGINE=Aria;
CREATE TABLE t2 (i INT) ENGINE=Aria;
LOCK TABLE t1 WRITE, t2 WRITE;
FLUSH TABLE t1;
select * from t1;
unlock tables;
drop table t1,t2;
# Test REPAIR ... USE_FRM and unlock tables last
CREATE TABLE t1 (i INT) ENGINE=Aria;
CREATE TABLE t2 (i INT) ENGINE=Aria;
LOCK TABLE t1 WRITE, t2 WRITE;
repair table t1 use_frm;
select * from t1;
drop table t2;
unlock tables;
drop table t1;
#
# MDEV-366: lock table twice with LOCK TABLES and then drop it
#
CREATE TABLE t1 (i INT) ENGINE=Aria;
LOCK TABLES t1 WRITE, t1 AS t1a WRITE;
DROP TABLE t1;