mirror of
https://github.com/MariaDB/server.git
synced 2025-01-21 06:22:28 +01:00
700a361a6a
------------------------------------------------------------ 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.
70 lines
1.4 KiB
Text
70 lines
1.4 KiB
Text
SET DEBUG_SYNC='RESET';
|
|
DROP TABLE IF EXISTS t1;
|
|
#
|
|
# Bug#20667 - Truncate table fails for a write locked table
|
|
#
|
|
CREATE TABLE t1 (c1 INT);
|
|
INSERT INTO t1 VALUES (1);
|
|
#
|
|
# connection con1
|
|
START TRANSACTION;
|
|
INSERT INTO t1 VALUES (2);
|
|
#
|
|
# connection default
|
|
LOCK TABLE t1 WRITE;
|
|
SET DEBUG_SYNC='mdl_upgrade_shared_lock_to_exclusive SIGNAL waiting';
|
|
TRUNCATE TABLE t1;
|
|
#
|
|
# connection con1
|
|
SET DEBUG_SYNC='now WAIT_FOR waiting';
|
|
KILL QUERY @id;
|
|
COMMIT;
|
|
#
|
|
# connection default
|
|
ERROR 70100: Query execution was interrupted
|
|
UNLOCK TABLES;
|
|
DROP TABLE t1;
|
|
SET DEBUG_SYNC='RESET';
|
|
CREATE TABLE t1 (c1 INT);
|
|
INSERT INTO t1 VALUES (1);
|
|
#
|
|
# connection con1
|
|
START TRANSACTION;
|
|
INSERT INTO t1 VALUES (2);
|
|
#
|
|
# connection default
|
|
LOCK TABLE t1 WRITE;
|
|
SET DEBUG_SYNC='mdl_upgrade_shared_lock_to_exclusive SIGNAL waiting';
|
|
TRUNCATE TABLE t1;
|
|
#
|
|
# connection con1
|
|
SET DEBUG_SYNC='now WAIT_FOR waiting';
|
|
COMMIT;
|
|
#
|
|
# connection default
|
|
ERROR 42S02: Table 'test.t1' doesn't exist
|
|
UNLOCK TABLES;
|
|
DROP TABLE t1;
|
|
ERROR 42S02: Unknown table 't1'
|
|
SET DEBUG_SYNC='RESET';
|
|
CREATE TABLE t1 (c1 INT);
|
|
INSERT INTO t1 VALUES (1);
|
|
#
|
|
# connection con1
|
|
START TRANSACTION;
|
|
INSERT INTO t1 VALUES (2);
|
|
#
|
|
# connection default
|
|
SET DEBUG_SYNC='mdl_acquire_exclusive_locks_wait SIGNAL waiting';
|
|
TRUNCATE TABLE t1;
|
|
#
|
|
# connection con1
|
|
SET DEBUG_SYNC='now WAIT_FOR waiting';
|
|
KILL QUERY @id;
|
|
COMMIT;
|
|
#
|
|
# connection default
|
|
ERROR 70100: Query execution was interrupted
|
|
UNLOCK TABLES;
|
|
DROP TABLE t1;
|
|
SET DEBUG_SYNC='RESET';
|