diff options
author | Konstantin Osipov <kostja@sun.com> | 2009-12-11 15:24:23 +0300 |
---|---|---|
committer | Konstantin Osipov <kostja@sun.com> | 2009-12-11 15:24:23 +0300 |
commit | 5a4f8e214c9d1ce67ea50ec360932e932d909e98 (patch) | |
tree | fcbe22f09de95c36f360e6f090d07d24c22fcdc6 /mysql-test/t/merge.test | |
parent | 3097c22afdcd3dce204c7587bdadd2a2872eb3c0 (diff) | |
download | mariadb-git-5a4f8e214c9d1ce67ea50ec360932e932d909e98.tar.gz |
Backport of:
------------------------------------------------------------
2599.161.3 Ingo Struewing 2009-07-21
Bug#20667 - Truncate table fails for a write locked table
TRUNCATE TABLE was not allowed under LOCK TABLES.
The patch removes this restriction. mysql_truncate()
does now handle that case.
mysql-test/r/merge.result:
Bug#20667 - Truncate table fails for a write locked table
Updated test result.
mysql-test/r/truncate.result:
Bug#20667 - Truncate table fails for a write locked table
Updated test result.
mysql-test/r/truncate_coverage.result:
Bug#20667 - Truncate table fails for a write locked table
New test result.
mysql-test/t/merge.test:
Bug#20667 - Truncate table fails for a write locked table
Updated test case due to now working TRUNCATE under LOCK TABLES.
Added some SELECTs to show that child tables are truncated.
mysql-test/t/truncate.test:
Bug#20667 - Truncate table fails for a write locked table
Added test cases for TRUNCATE under LOCK TABLE.
mysql-test/t/truncate_coverage.test:
Bug#20667 - Truncate table fails for a write locked table
New test file. Coverage tests for TRUNCATE.
sql/sql_delete.cc:
Bug#20667 - Truncate table fails for a write locked table
Added branches for thd->locked_tables_mode.
sql/sql_parse.cc:
Bug#20667 - Truncate table fails for a write locked table
Deleted rejection of TRUNCATE in case of LOCK TABLES.
Diffstat (limited to 'mysql-test/t/merge.test')
-rw-r--r-- | mysql-test/t/merge.test | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/mysql-test/t/merge.test b/mysql-test/t/merge.test index b9e6813a4df..c3499037e97 100644 --- a/mysql-test/t/merge.test +++ b/mysql-test/t/merge.test @@ -675,12 +675,16 @@ SELECT * FROM t3; --echo # Truncate MERGE table under locked tables. LOCK TABLE t1 WRITE, t2 WRITE, t3 WRITE; INSERT INTO t1 VALUES (1); ---error ER_LOCK_OR_ACTIVE_TRANSACTION TRUNCATE TABLE t3; SELECT * FROM t3; +UNLOCK TABLES; +SELECT * FROM t1; +SELECT * FROM t2; --echo # --echo # Truncate child table under locked tables. ---error ER_LOCK_OR_ACTIVE_TRANSACTION +LOCK TABLE t1 WRITE, t2 WRITE, t3 WRITE; +INSERT INTO t1 VALUES (1); +INSERT INTO t2 VALUES (2); TRUNCATE TABLE t1; SELECT * FROM t3; UNLOCK TABLES; @@ -706,14 +710,18 @@ SELECT * FROM t3; INSERT INTO t1 VALUES (1); CREATE TABLE t4 (c1 INT, INDEX(c1)); LOCK TABLE t4 WRITE; ---error ER_LOCK_OR_ACTIVE_TRANSACTION TRUNCATE TABLE t3; SELECT * FROM t3; +SELECT * FROM t1; +SELECT * FROM t2; --echo # --echo # Truncate temporary child table under locked tables. ---error ER_LOCK_OR_ACTIVE_TRANSACTION +INSERT INTO t1 VALUES (1); +INSERT INTO t2 VALUES (2); TRUNCATE TABLE t1; SELECT * FROM t3; +SELECT * FROM t1; +SELECT * FROM t2; UNLOCK TABLES; DROP TABLE t1, t2, t3, t4; |