Backport of:
------------------------------------------------------------ revno: 2617.31.7 committer: Davi Arnaut <Davi.Arnaut@Sun.COM> branch nick: mysql-6.0-runtime timestamp: Wed 2009-03-25 19:22:00 -0300 message: WL#4284: Transactional DDL locking Post-merge fixes for test cases. mysql-test/include/mix1.inc: Ignore deadlock errors due to the table being altered. mysql-test/r/innodb_mysql.result: Update test case result (WL$4284). mysql-test/suite/parts/r/partition_special_innodb.result: The INSERT and SELECT are not necessary to reproduce the problem as the assertion happens when the table is being altered. Furthermore, the INSERT and SELECT will yield a deadlock error as after the alter the table version is set to zero, which means that any metadata locks on the table must be relinquished, but this won't happen voluntarily in a multi-statement transaction (metadata locks are released on commit or rollback). Reported as Bug#43867. mysql-test/suite/parts/t/partition_special_innodb.test: The INSERT and SELECT are not necessary to reproduce the problem as the assertion happens when the table is being altered. Furthermore, the INSERT and SELECT will yield a deadlock error as after the alter the table version is set to zero, which means that any metadata locks on the table must be relinquished, but this won't happen voluntarily in a multi-statement transaction (metadata locks are released on commit or rollback). Reported as Bug#43867.
This commit is contained in:
parent
a14bbee5ab
commit
356597c0fa
@ -899,6 +899,8 @@ CREATE PROCEDURE p1 ()
|
||||
BEGIN
|
||||
DECLARE i INT DEFAULT 50;
|
||||
DECLARE cnt INT;
|
||||
# Continue even in the presence of ER_LOCK_DEADLOCK.
|
||||
DECLARE CONTINUE HANDLER FOR 1213 BEGIN END;
|
||||
START TRANSACTION;
|
||||
ALTER TABLE t1 ENGINE=InnoDB;
|
||||
COMMIT;
|
||||
|
@ -1105,6 +1105,8 @@ CREATE PROCEDURE p1 ()
|
||||
BEGIN
|
||||
DECLARE i INT DEFAULT 50;
|
||||
DECLARE cnt INT;
|
||||
# Continue even in the presence of ER_LOCK_DEADLOCK.
|
||||
DECLARE CONTINUE HANDLER FOR 1213 BEGIN END;
|
||||
START TRANSACTION;
|
||||
ALTER TABLE t1 ENGINE=InnoDB;
|
||||
COMMIT;
|
||||
|
@ -214,9 +214,4 @@ INSERT INTO t1 VALUES (NULL, 'first row t2');
|
||||
SET autocommit=OFF;
|
||||
ALTER TABLE t1 AUTO_INCREMENT = 10;
|
||||
ERROR HY000: Lock wait timeout exceeded; try restarting transaction
|
||||
INSERT INTO t1 VALUES (NULL, 'second row t2');
|
||||
SELECT a,b FROM t1 ORDER BY a;
|
||||
a b
|
||||
1 first row t2
|
||||
2 second row t2
|
||||
DROP TABLE t1;
|
||||
|
@ -71,9 +71,6 @@ SET autocommit=OFF;
|
||||
--error ER_LOCK_WAIT_TIMEOUT
|
||||
ALTER TABLE t1 AUTO_INCREMENT = 10;
|
||||
|
||||
--connection con1
|
||||
INSERT INTO t1 VALUES (NULL, 'second row t2');
|
||||
SELECT a,b FROM t1 ORDER BY a;
|
||||
--disconnect con2
|
||||
--disconnect con1
|
||||
--connection default
|
||||
|
Loading…
x
Reference in New Issue
Block a user