summaryrefslogtreecommitdiff
path: root/mysql-test/t/innodb_mysql_lock.test
diff options
context:
space:
mode:
Diffstat (limited to 'mysql-test/t/innodb_mysql_lock.test')
-rw-r--r--mysql-test/t/innodb_mysql_lock.test75
1 files changed, 1 insertions, 74 deletions
diff --git a/mysql-test/t/innodb_mysql_lock.test b/mysql-test/t/innodb_mysql_lock.test
index b3c52a1b1cf..39ea7e5df88 100644
--- a/mysql-test/t/innodb_mysql_lock.test
+++ b/mysql-test/t/innodb_mysql_lock.test
@@ -19,24 +19,20 @@ connect (con1,localhost,root,,);
connect (con2,localhost,root,,);
connect (con3,localhost,root,,);
---echo # Connection 1
connection con1;
set @@autocommit=0;
CREATE TABLE t1(s1 INT UNIQUE) ENGINE=innodb;
INSERT INTO t1 VALUES (1);
---echo # Connection 2
connection con2;
set @@autocommit=0;
INSERT INTO t1 VALUES (2);
--send INSERT INTO t1 VALUES (1)
---echo # Connection 3
connection con3;
set @@autocommit=0;
--send DROP TABLE t1
---echo # Connection 1
connection con1;
let $wait_condition=
SELECT COUNT(*) = 1 FROM information_schema.processlist
@@ -68,6 +64,7 @@ set @@autocommit=1;
connection default;
disconnect con1;
+disconnect con2;
disconnect con3;
@@ -85,7 +82,6 @@ begin;
update t1 set c3=c3+1 where c2=3;
--echo #
---echo # Switching to connection 'con37346'.
connect (con37346,localhost,root,,test,,);
connection con37346;
--echo # The below ALTER TABLE statement should wait till transaction
@@ -95,7 +91,6 @@ connection con37346;
--send alter table t1 add column c4 int;
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Wait until the above ALTER TABLE gets blocked because this
--echo # connection holds SW metadata lock on table to be altered.
@@ -113,69 +108,15 @@ update t1 set c3=c3+1 where c2=4;
commit;
--echo #
---echo # Switching to connection 'con37346'.
connection con37346;
--echo # Reaping ALTER TABLE.
--reap
--echo #
---echo # Switching to connection 'default'.
connection default;
disconnect con37346;
drop table t1;
-
---echo #
---echo # Bug #42147 Concurrent DML and LOCK TABLE ... READ for InnoDB
---echo # table cause warnings in errlog
---echo #
-
---echo #
---echo # Note that this test for now relies on a global suppression of
---echo # the warning "Found lock of type 6 that is write and read locked"
---echo # This suppression rule can be removed once Bug#42147 is properly
---echo # fixed. See bug page for more info.
---echo #
-
---disable_warnings
-DROP TABLE IF EXISTS t1;
---enable_warnings
-
-CREATE TABLE t1 (i INT) engine= innodb;
-
---echo # Connection 2
---echo # Get user-level lock
-connection con2;
-SELECT get_lock('bug42147_lock', 60);
-
---echo # Connection 1
-connection default;
---send INSERT INTO t1 SELECT get_lock('bug42147_lock', 60)
-
---echo # Connection 2
-connection con2;
-let $wait_condition=
- SELECT COUNT(*) > 0 FROM information_schema.processlist
- WHERE state = 'User lock'
- AND info = 'INSERT INTO t1 SELECT get_lock(\'bug42147_lock\', 60)';
---source include/wait_condition.inc
-LOCK TABLES t1 READ;
-SELECT release_lock('bug42147_lock');
-
---echo # Connection 1
-connection default;
---reap
-
---echo # Connection 2
-connection con2;
-UNLOCK TABLES;
-
---echo # Connection 1
-connection default;
-disconnect con2;
-DROP TABLE t1;
-
-
--echo #
--echo # Bug#53798 OPTIMIZE TABLE breaks repeatable read
--echo #
@@ -187,18 +128,15 @@ DROP TABLE IF EXISTS t1;
CREATE TABLE t1 (a INT) engine=innodb;
INSERT INTO t1 VALUES (1), (2), (3);
---echo # Connection con1
connect (con1, localhost, root);
START TRANSACTION WITH CONSISTENT SNAPSHOT;
SELECT * FROM t1;
---echo # Connection default
connection default;
--echo # This should block
--echo # Sending:
--send OPTIMIZE TABLE t1
---echo # Connection con1
connection con1;
let $wait_condition=SELECT COUNT(*)=1 FROM information_schema.processlist
WHERE state='Waiting for table metadata lock' AND info='OPTIMIZE TABLE t1';
@@ -206,7 +144,6 @@ let $wait_condition=SELECT COUNT(*)=1 FROM information_schema.processlist
SELECT * FROM t1;
COMMIT;
---echo # Connection default
connection default;
--echo # Reaping OPTIMIZE TABLE t1
--reap
@@ -230,18 +167,15 @@ CREATE VIEW v1 AS SELECT 1 FROM t1;
connect (con2, localhost, root);
connect (con3, localhost, root);
---echo # Connection con3
connection con3;
LOCK TABLE t1 WRITE;
---echo # Connection default
connection default;
START TRANSACTION;
# This should block due to t1 being locked.
--echo # Sending:
--send SELECT * FROM v1
---echo # Connection con2
connection con2;
--echo # Waiting for 'SELECT * FROM v1' to sync in.
let $wait_condition=
@@ -252,7 +186,6 @@ let $wait_condition=
--echo # Sending:
--send ALTER VIEW v1 AS SELECT 2 FROM t2
---echo # Connection con3
connection con3;
--echo # Waiting for 'ALTER VIEW v1 AS SELECT 2 FROM t2' to sync in.
let $wait_condition=
@@ -263,19 +196,16 @@ let $wait_condition=
# Unlock t1 allowing SELECT * FROM v1 to proceed.
UNLOCK TABLES;
---echo # Connection default;
connection default;
--echo # Reaping: SELECT * FROM v1
--reap
SELECT * FROM v1;
COMMIT;
---echo # Connection con2
connection con2;
--echo # Reaping: ALTER VIEW v1 AS SELECT 2 FROM t2
--reap
---echo # Connection default
connection default;
DROP TABLE t1, t2;
DROP VIEW v1;
@@ -294,14 +224,12 @@ DROP TABLE IF EXISTS t1;
--connect (con1,localhost,root)
---echo # Connection default
connection default;
CREATE TABLE t1 (id INT PRIMARY KEY, value INT) ENGINE = InnoDB;
INSERT INTO t1 VALUES (1, 12345);
START TRANSACTION;
SELECT * FROM t1;
---echo # Connection con1
--connection con1
SET lock_wait_timeout=1;
# Test with two timeouts, as the first version of this patch
@@ -311,7 +239,6 @@ ALTER TABLE t1 ADD INDEX idx(value);
--error ER_LOCK_WAIT_TIMEOUT
ALTER TABLE t1 ADD INDEX idx(value);
---echo # Connection default
--connection default
SELECT * FROM t1;
COMMIT;