2009-07-13 18:11:16 +03:00
|
|
|
--source include/have_innodb.inc
|
|
|
|
|
|
|
|
--echo #
|
|
|
|
--echo # Bug #40113: Embedded SELECT inside UPDATE or DELETE can timeout
|
|
|
|
--echo # without error
|
|
|
|
--echo #
|
|
|
|
|
|
|
|
CREATE TABLE t1 (a int, b int, PRIMARY KEY (a,b)) ENGINE=InnoDB;
|
|
|
|
|
|
|
|
INSERT INTO t1 (a,b) VALUES (1070109,99);
|
|
|
|
|
|
|
|
CREATE TABLE t2 (b int, a int, PRIMARY KEY (b)) ENGINE=InnoDB;
|
|
|
|
|
|
|
|
INSERT INTO t2 (b,a) VALUES (7,1070109);
|
|
|
|
|
|
|
|
SELECT * FROM t1;
|
|
|
|
|
|
|
|
BEGIN;
|
|
|
|
|
|
|
|
SELECT b FROM t2 WHERE b=7 FOR UPDATE;
|
|
|
|
|
|
|
|
CONNECT (addconroot, localhost, root,,);
|
|
|
|
CONNECTION addconroot;
|
|
|
|
|
|
|
|
BEGIN;
|
|
|
|
|
|
|
|
--error ER_LOCK_WAIT_TIMEOUT
|
|
|
|
SELECT b FROM t2 WHERE b=7 FOR UPDATE;
|
|
|
|
|
|
|
|
--error ER_LOCK_WAIT_TIMEOUT
|
|
|
|
INSERT INTO t1 (a) VALUES ((SELECT a FROM t2 WHERE b=7));
|
|
|
|
|
|
|
|
--error ER_LOCK_WAIT_TIMEOUT
|
|
|
|
UPDATE t1 SET a='7000000' WHERE a=(SELECT a FROM t2 WHERE b=7);
|
|
|
|
|
|
|
|
--error ER_LOCK_WAIT_TIMEOUT
|
|
|
|
DELETE FROM t1 WHERE a=(SELECT a FROM t2 WHERE b=7);
|
|
|
|
|
|
|
|
SELECT * FROM t1;
|
|
|
|
|
|
|
|
CONNECTION default;
|
|
|
|
DISCONNECT addconroot;
|
|
|
|
|
|
|
|
DROP TABLE t2, t1;
|
|
|
|
|
2009-10-28 17:49:56 +03:00
|
|
|
--echo # End of 5.0 tests
|
|
|
|
|
|
|
|
--echo #
|
|
|
|
--echo # Bug#46539 Various crashes on INSERT IGNORE SELECT + SELECT
|
|
|
|
--echo # FOR UPDATE
|
|
|
|
--echo #
|
|
|
|
--disable_warnings
|
|
|
|
drop table if exists t1;
|
|
|
|
--enable_warnings
|
|
|
|
create table t1 (a int primary key auto_increment,
|
|
|
|
b int, index(b)) engine=innodb;
|
|
|
|
insert into t1 (b) values (1), (2), (3), (4), (5), (6), (7), (8), (9), (10);
|
|
|
|
set autocommit=0;
|
|
|
|
begin;
|
|
|
|
select * from t1 where b=5 for update;
|
|
|
|
connect (con1, localhost, root,,);
|
|
|
|
connection con1;
|
|
|
|
--error ER_LOCK_WAIT_TIMEOUT
|
|
|
|
insert ignore into t1 (b) select a as b from t1;
|
|
|
|
connection default;
|
|
|
|
--echo # Cleanup
|
|
|
|
--echo #
|
|
|
|
disconnect con1;
|
|
|
|
commit;
|
|
|
|
set autocommit=default;
|
|
|
|
drop table t1;
|
|
|
|
|
|
|
|
--echo #
|
|
|
|
--echo # End of 5.1 tests
|
|
|
|
--echo #
|