mirror of
https://github.com/MariaDB/server.git
synced 2025-09-02 09:41:40 +03:00
mysql-5.5.18 merge
This commit is contained in:
@@ -466,3 +466,26 @@ ALTER TABLE t1 COMMENT 'test';
|
||||
ERROR HY000: Table 't1' was locked with a READ lock and can't be updated
|
||||
UNLOCK TABLES;
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# Test for bug #12641342 - "61401: UPDATE PERFORMANCE DEGRADES
|
||||
# GRADUALLY IF A TRIGGER EXISTS".
|
||||
#
|
||||
# One of side-effects of this bug was that a transaction which
|
||||
# involved DML statements requiring prelocking blocked concurrent
|
||||
# FLUSH TABLES WITH READ LOCK for the whole its duration, while
|
||||
# correct behavior in this case is to block FTWRL only for duration
|
||||
# of individual DML statements.
|
||||
DROP TABLE IF EXISTS t1;
|
||||
CREATE TABLE t1 (id INT PRIMARY KEY, value INT);
|
||||
INSERT INTO t1 VALUES (1, 1);
|
||||
CREATE TRIGGER t1_au AFTER UPDATE ON t1 FOR EACH ROW SET @var = "a";
|
||||
BEGIN;
|
||||
UPDATE t1 SET value= value + 1 WHERE id = 1;
|
||||
# Switching to connection 'con1'.
|
||||
# The below FLUSH TABLES WITH READ LOCK should succeed and
|
||||
# should not be blocked by the transaction in default connection.
|
||||
FLUSH TABLES WITH READ LOCK;
|
||||
UNLOCK TABLES;
|
||||
# Switching to connection 'default'.
|
||||
COMMIT;
|
||||
DROP TABLE t1;
|
||||
|
Reference in New Issue
Block a user