summaryrefslogtreecommitdiff
path: root/mysql-test/t
diff options
context:
space:
mode:
authorSergey Vojtovich <svoj@mariadb.org>2016-03-25 20:51:22 +0400
committerSergey Vojtovich <svoj@mariadb.org>2016-03-31 10:11:16 +0400
commit282497dd6d1049b4fb963641504c2733752845a7 (patch)
tree7288d17c29fbbe9ac47ec51f6988fb954f59a361 /mysql-test/t
parent5052e2479e873461bebfcedbc674bbaf57d3c968 (diff)
downloadmariadb-git-282497dd6d1049b4fb963641504c2733752845a7.tar.gz
MDEV-6720 - enable connection log in mysqltest by default
Diffstat (limited to 'mysql-test/t')
-rw-r--r--mysql-test/t/alter_table.test4
-rw-r--r--mysql-test/t/alter_user.test3
-rw-r--r--mysql-test/t/analyze_stmt_privileges.test1
-rw-r--r--mysql-test/t/analyze_stmt_privileges2.test1
-rw-r--r--mysql-test/t/auth_rpl.test3
-rw-r--r--mysql-test/t/bug39022.test7
-rw-r--r--mysql-test/t/check.test2
-rw-r--r--mysql-test/t/commit.test32
-rw-r--r--mysql-test/t/consistent_snapshot.test10
-rw-r--r--mysql-test/t/ctype_errors.test2
-rw-r--r--mysql-test/t/ddl_i18n_koi8r.test32
-rw-r--r--mysql-test/t/ddl_i18n_utf8.test29
-rw-r--r--mysql-test/t/debug_sync.test12
-rw-r--r--mysql-test/t/delayed.test28
-rw-r--r--mysql-test/t/events_bugs.test22
-rw-r--r--mysql-test/t/filesort_debug.test3
-rw-r--r--mysql-test/t/flush-innodb-notembedded.test10
-rw-r--r--mysql-test/t/flush-innodb.test44
-rw-r--r--mysql-test/t/flush.test36
-rw-r--r--mysql-test/t/flush_block_commit.test18
-rw-r--r--mysql-test/t/flush_block_commit_notembedded.test8
-rw-r--r--mysql-test/t/flush_read_lock.test145
-rw-r--r--mysql-test/t/flush_read_lock_kill.test6
-rw-r--r--mysql-test/t/func_misc.test16
-rw-r--r--mysql-test/t/grant.test64
-rw-r--r--mysql-test/t/grant2.test17
-rw-r--r--mysql-test/t/grant4.test2
-rw-r--r--mysql-test/t/information_schema.test52
-rw-r--r--mysql-test/t/innodb_mysql_lock.test28
-rw-r--r--mysql-test/t/innodb_mysql_lock2.test8
-rw-r--r--mysql-test/t/innodb_mysql_sync.test47
-rw-r--r--mysql-test/t/kill.test37
-rw-r--r--mysql-test/t/kill_processlist-6619.test1
-rw-r--r--mysql-test/t/kill_query-6728.test1
-rw-r--r--mysql-test/t/lock.test5
-rw-r--r--mysql-test/t/lock_multi.test78
-rw-r--r--mysql-test/t/lock_sync.test35
-rw-r--r--mysql-test/t/log_state.test6
-rw-r--r--mysql-test/t/mdl_sync.test510
-rw-r--r--mysql-test/t/merge-big.test5
-rw-r--r--mysql-test/t/merge.test8
-rw-r--r--mysql-test/t/myisam_debug.test2
-rw-r--r--mysql-test/t/myisam_recover.test9
-rw-r--r--mysql-test/t/mysqlbinlog_row_big.test3
-rw-r--r--mysql-test/t/mysqldump-max.test9
-rw-r--r--mysql-test/t/mysqltest.test5
-rw-r--r--mysql-test/t/not_embedded_server.test3
-rw-r--r--mysql-test/t/partition_debug_sync.test12
-rw-r--r--mysql-test/t/partition_innodb.test13
-rw-r--r--mysql-test/t/partition_innodb_plugin.test9
-rw-r--r--mysql-test/t/partition_innodb_semi_consistent.test10
-rw-r--r--mysql-test/t/partition_innodb_stmt.test4
-rw-r--r--mysql-test/t/partition_sync.test10
-rw-r--r--mysql-test/t/plugin_auth_qa_1.test52
-rw-r--r--mysql-test/t/query_cache_28249.test11
-rw-r--r--mysql-test/t/query_cache_debug.test23
-rw-r--r--mysql-test/t/read_only.test29
-rw-r--r--mysql-test/t/read_only_innodb.test5
-rw-r--r--mysql-test/t/schema.test21
-rw-r--r--mysql-test/t/show_check.test12
-rw-r--r--mysql-test/t/show_grants_with_plugin-7985.test1
-rw-r--r--mysql-test/t/sp-lock.test119
-rw-r--r--mysql-test/t/sp-security.test34
-rw-r--r--mysql-test/t/sp_notembedded.test4
-rw-r--r--mysql-test/t/sp_sync.test12
-rw-r--r--mysql-test/t/ssl_connect.test2
-rw-r--r--mysql-test/t/status.test6
-rw-r--r--mysql-test/t/trans_read_only.test3
-rw-r--r--mysql-test/t/trigger-compat.test2
-rw-r--r--mysql-test/t/trigger-trans.test3
-rw-r--r--mysql-test/t/trigger_notembedded.test64
-rw-r--r--mysql-test/t/truncate_coverage.test40
-rw-r--r--mysql-test/t/variables.test2
-rw-r--r--mysql-test/t/view.test8
-rw-r--r--mysql-test/t/view_grant.test35
-rw-r--r--mysql-test/t/wait_timeout.test19
-rw-r--r--mysql-test/t/xa.test10
77 files changed, 14 insertions, 1970 deletions
diff --git a/mysql-test/t/alter_table.test b/mysql-test/t/alter_table.test
index df4958bd2bc..8f4b3ee2fb7 100644
--- a/mysql-test/t/alter_table.test
+++ b/mysql-test/t/alter_table.test
@@ -1473,12 +1473,10 @@ INSERT INTO t1 VALUES (1,1), (2,2);
START TRANSACTION;
INSERT INTO t1 VALUES (3,3);
---echo # Connection con1
connect (con1, localhost, root);
--echo # Sending:
--send ALTER TABLE t1 DISABLE KEYS
---echo # Connection default
connection default;
--echo # Waiting until ALTER TABLE is blocked.
let $wait_condition=
@@ -1489,14 +1487,12 @@ let $wait_condition=
UPDATE t1 SET b = 4;
COMMIT;
---echo # Connection con1
connection con1;
--echo # Reaping: ALTER TABLE t1 DISABLE KEYS
--reap
disconnect con1;
--source include/wait_until_disconnected.inc
---echo # Connection default
connection default;
DROP TABLE t1;
diff --git a/mysql-test/t/alter_user.test b/mysql-test/t/alter_user.test
index e32d0c29f2e..ca444f70a70 100644
--- a/mysql-test/t/alter_user.test
+++ b/mysql-test/t/alter_user.test
@@ -1,6 +1,4 @@
--source include/not_embedded.inc
---enable_connect_log
-
select * from mysql.user where user = 'root' and host = 'localhost';
--echo # Test syntax
@@ -79,4 +77,3 @@ alter user foo with MAX_QUERIES_PER_HOUR 10
MAX_USER_CONNECTIONS 40;
select * from mysql.user where user = 'foo';
drop user foo;
---disable_connect_log
diff --git a/mysql-test/t/analyze_stmt_privileges.test b/mysql-test/t/analyze_stmt_privileges.test
index b565f17c0f7..32ff4ddfb7e 100644
--- a/mysql-test/t/analyze_stmt_privileges.test
+++ b/mysql-test/t/analyze_stmt_privileges.test
@@ -5,7 +5,6 @@
--echo # MDEV-7025 and MDEV-7027 ANALYZE SELECT/INSERT/UPDATE/DELETE from a
--echo # view does not check access permissions on the underlying table
--echo #
---enable_connect_log
create database db;
use db;
create table t1 (i int, c varchar(8));
diff --git a/mysql-test/t/analyze_stmt_privileges2.test b/mysql-test/t/analyze_stmt_privileges2.test
index 9a0299be535..e3274882ba6 100644
--- a/mysql-test/t/analyze_stmt_privileges2.test
+++ b/mysql-test/t/analyze_stmt_privileges2.test
@@ -23,7 +23,6 @@
# Save the initial number of concurrent sessions
--source include/count_sessions.inc
---enable_connect_log
set GLOBAL sql_mode="";
set LOCAL sql_mode="";
diff --git a/mysql-test/t/auth_rpl.test b/mysql-test/t/auth_rpl.test
index 0ff024c73e7..9b2c4357cf0 100644
--- a/mysql-test/t/auth_rpl.test
+++ b/mysql-test/t/auth_rpl.test
@@ -10,13 +10,11 @@
# First stop the slave to guarantee that nothing is replicated.
#
--connection slave
---echo [connection slave]
--source include/stop_slave.inc
#
# Create an replication account on the master.
#
--connection master
---echo [connection master]
CREATE USER 'plug_user' IDENTIFIED WITH 'test_plugin_server' AS 'plug_user';
GRANT REPLICATION SLAVE ON *.* TO plug_user;
FLUSH PRIVILEGES;
@@ -25,7 +23,6 @@ FLUSH PRIVILEGES;
# Now go to slave and change the replication user.
#
--connection slave
---echo [connection slave]
--let $master_user= query_get_value(SHOW SLAVE STATUS, Master_User, 1)
CHANGE MASTER TO
MASTER_USER= 'plug_user',
diff --git a/mysql-test/t/bug39022.test b/mysql-test/t/bug39022.test
index 6056dbf0e7b..8d1deb163d7 100644
--- a/mysql-test/t/bug39022.test
+++ b/mysql-test/t/bug39022.test
@@ -18,20 +18,16 @@ connect (thread1, localhost, root,,);
connect (thread2, localhost, root,,);
connection thread1;
---echo # in thread1
START TRANSACTION;
connection thread2;
---echo # in thread2
REPLACE INTO t2 VALUES (-17);
SELECT d FROM t2,t1 WHERE d=(SELECT MAX(a) FROM t1 WHERE t1.a > t2.d) LOCK IN SHARE MODE;
connection thread1;
---echo # in thread1
REPLACE INTO t1(a,b) VALUES (67,20);
connection thread2;
---echo # in thread2
COMMIT;
START TRANSACTION;
REPLACE INTO t1(a,b) VALUES (65,-50);
@@ -40,21 +36,18 @@ send;
SELECT d FROM t2,t1 WHERE d=(SELECT MAX(a) FROM t1 WHERE t1.a > t2.d) LOCK IN SHARE MODE; #waits
connection thread1;
---echo # in thread1
--echo # should not crash
--error ER_LOCK_DEADLOCK
SELECT d FROM t2,t1 WHERE d=(SELECT MAX(a) FROM t1 WHERE t1.a > t2.d) LOCK IN SHARE MODE; #crashes
connection thread2;
---echo # in thread2
REAP;
disconnect thread2;
--source include/wait_until_disconnected.inc
connection thread1;
---echo # in thread1;
disconnect thread1;
--source include/wait_until_disconnected.inc
diff --git a/mysql-test/t/check.test b/mysql-test/t/check.test
index 966d41adfbd..6a7b7253a59 100644
--- a/mysql-test/t/check.test
+++ b/mysql-test/t/check.test
@@ -67,12 +67,10 @@ DROP TABLE IF EXISTS t1;
CREATE TABLE t1(a INT);
LOCK TABLE t1 WRITE;
---echo # Connection con1
connect(con1, localhost, root);
SET lock_wait_timeout= 1;
CHECK TABLE t1;
---echo # Connection default
connection default;
UNLOCK TABLES;
DROP TABLE t1;
diff --git a/mysql-test/t/commit.test b/mysql-test/t/commit.test
index c2051358073..762397dfa23 100644
--- a/mysql-test/t/commit.test
+++ b/mysql-test/t/commit.test
@@ -15,7 +15,6 @@ connect (con1,localhost,root,,);
# provided
# init
---echo connection default;
connection default;
SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ;
@@ -63,13 +62,11 @@ START TRANSACTION;
SELECT * FROM t1;
SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;
---echo connection con1
connection con1;
START TRANSACTION;
INSERT INTO t1 VALUES (1000);
COMMIT;
---echo connection default
connection default;
--echo We should not be able to read the '1000'
SELECT * FROM t1;
@@ -99,29 +96,24 @@ SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ;
# transaction will have the same tran. iso. level
# as the first.
#
---echo connection default
connection default;
SET TRANSACTION ISOLATION LEVEL READ COMMITTED;
START TRANSACTION;
---echo connection con1
connection con1;
START TRANSACTION;
INSERT INTO t1 VALUES (1001);
COMMIT;
---echo connection default
connection default;
SELECT COUNT(*) FROM t1 WHERE s1 = 1001;
--echo Should be 1
COMMIT AND CHAIN;
---echo connection con1
connection con1;
INSERT INTO t1 VALUES (1002);
COMMIT;
---echo connection default
connection default;
SELECT COUNT(*) FROM t1 WHERE s1 = 1002;
--echo Should be 1
@@ -133,29 +125,24 @@ COMMIT;
#
# Verify isolation level with ROLLBACK AND CHAIN
#
---echo connection default
connection default;
SET TRANSACTION ISOLATION LEVEL READ COMMITTED;
START TRANSACTION;
---echo connection con1
connection con1;
START TRANSACTION;
INSERT INTO t1 VALUES (1001);
COMMIT;
---echo connection default
connection default;
SELECT COUNT(*) FROM t1 WHERE s1 = 1001;
--echo Should be 1
ROLLBACK AND CHAIN;
---echo connection con1
connection con1;
INSERT INTO t1 VALUES (1002);
COMMIT;
---echo connection default
connection default;
SELECT COUNT(*) FROM t1 WHERE s1 = 1002;
--echo Should be 1
@@ -176,40 +163,33 @@ COMMIT;
#
SET @@completion_type=1;
---echo connection default
connection default;
SET TRANSACTION ISOLATION LEVEL READ COMMITTED;
START TRANSACTION;
---echo connection con1
connection con1;
START TRANSACTION;
INSERT INTO t1 VALUES (1001);
COMMIT;
---echo connection default
connection default;
SELECT * FROM t1 WHERE s1 >= 1000;
--echo Should see 1001
COMMIT AND NO CHAIN;
--echo default transaction is now in REPEATABLE READ
---echo connection con1
connection con1;
INSERT INTO t1 VALUES (1002);
COMMIT;
---echo connection default
connection default;
SELECT * FROM t1 WHERE s1 >= 1000;
--echo Should see 1001 and 1002
---echo connection con1
connection con1;
INSERT INTO t1 VALUES (1003);
COMMIT;
---echo connection default
connection default;
SELECT * FROM t1 WHERE s1 >= 1000;
--echo Should see 1001 and 1002, but NOT 1003
@@ -225,42 +205,35 @@ COMMIT;
# Verify that ROLLBACK AND NO CHAIN overrides the value
# of @@completion_type
#
---echo connection default
connection default;
SET @@completion_type=1;
COMMIT AND NO CHAIN;
SET TRANSACTION ISOLATION LEVEL READ COMMITTED;
START TRANSACTION;
---echo connection con1
connection con1;
START TRANSACTION;
INSERT INTO t1 VALUES (1001);
COMMIT;
---echo connection default
connection default;
SELECT * FROM t1 WHERE s1 >= 1000;
--echo Should see 1001
ROLLBACK AND NO CHAIN;
--echo default transaction is now in REPEATABLE READ
---echo connection con1
connection con1;
INSERT INTO t1 VALUES (1002);
COMMIT;
---echo connection default
connection default;
SELECT * FROM t1 WHERE s1 >= 1000;
--echo Should see 1001 and 1002
---echo connection con1
connection con1;
INSERT INTO t1 VALUES (1003);
COMMIT;
---echo connection default
connection default;
SELECT * FROM t1 WHERE s1 >= 1000;
--echo Should see 1001 and 1002, but NOT 1003
@@ -281,7 +254,6 @@ COMMIT;
# SET TRANSACTION. (Note that this is _not_
# in accordance with ISO 9075.)
#
---echo connection default
connection default;
SET TRANSACTION ISOLATION LEVEL READ COMMITTED;
@@ -289,12 +261,10 @@ SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ;
START TRANSACTION;
SELECT * FROM t1;
---echo connection con1
connection con1;
INSERT INTO t1 VALUES (1000);
COMMIT;
---echo connection default
connection default;
SELECT * FROM t1;
--echo Should get same result as above (i.e should not read '1000')
@@ -320,12 +290,10 @@ INSERT INTO t1 VALUES (1000);
SELECT * FROM t1;
--echo Should read '1000'
---echo connection con1
connection con1;
INSERT INTO t1 VALUES (1001);
COMMIT;
---echo connection default
connection default;
SELECT * FROM t1;
--echo Should only read the '1000' as this transaction is now in REP READ
diff --git a/mysql-test/t/consistent_snapshot.test b/mysql-test/t/consistent_snapshot.test
index fb1f3bc007c..a481e757bed 100644
--- a/mysql-test/t/consistent_snapshot.test
+++ b/mysql-test/t/consistent_snapshot.test
@@ -7,25 +7,20 @@
DROP TABLE IF EXISTS t1;
--enable_warnings
---echo # Establish connection con1 (user=root)
connect (con1,localhost,root,,);
---echo # Establish connection con2 (user=root)
connect (con2,localhost,root,,);
--echo ### Test 1:
--echo ### - While a consistent snapshot transaction is executed,
--echo ### no external inserts should be visible to the transaction.
---echo # Switch to connection con1
connection con1;
CREATE TABLE t1 (a INT) ENGINE=innodb;
START TRANSACTION WITH CONSISTENT SNAPSHOT;
---echo # Switch to connection con2
connection con2;
INSERT INTO t1 VALUES(1);
---echo # Switch to connection con1
connection con1;
SELECT * FROM t1; # if consistent snapshot was set as expected, we
# should see nothing.
@@ -38,11 +33,9 @@ COMMIT;
DELETE FROM t1;
START TRANSACTION; # Now we omit WITH CONSISTENT SNAPSHOT
---echo # Switch to connection con2
connection con2;
INSERT INTO t1 VALUES(1);
---echo # Switch to connection con1
connection con1;
SELECT * FROM t1; # if consistent snapshot was not set, as expected, we
# should see 1.
@@ -56,17 +49,14 @@ START TRANSACTION WITH CONSISTENT SNAPSHOT;
DELETE FROM t1;
COMMIT WORK AND CHAIN;
---echo # Switch to connection con2
connection con2;
INSERT INTO t1 VALUES(1);
---echo # Switch to connection con1
connection con1;
SELECT * FROM t1; # if consistent snapshot was not set, as expected, we
# should see 1.
COMMIT;
---echo # Switch to connection default + close connections con1 and con2
connection default;
disconnect con1;
disconnect con2;
diff --git a/mysql-test/t/ctype_errors.test b/mysql-test/t/ctype_errors.test
index 681223dae64..b228a3b9f19 100644
--- a/mysql-test/t/ctype_errors.test
+++ b/mysql-test/t/ctype_errors.test
@@ -50,13 +50,11 @@ connection default;
--echo #
connect (con1,localhost,root,,test);
---echo # Connection con1
SET lc_messages=ru_RU;
SET NAMES latin1;
--error ER_PARSE_ERROR
--query SELECT '01234567890123456789012345678901234\'
disconnect con1;
---echo # Connection default
connection default;
--echo End of 5.5 tests
diff --git a/mysql-test/t/ddl_i18n_koi8r.test b/mysql-test/t/ddl_i18n_koi8r.test
index 0a62a8ba0f8..5e2417fab4d 100644
--- a/mysql-test/t/ddl_i18n_koi8r.test
+++ b/mysql-test/t/ddl_i18n_koi8r.test
@@ -116,8 +116,6 @@ ALTER DATABASE mysqltest1 COLLATE cp866_general_ci|
# - Change connection to flush cache;
--connect (con2,localhost,root,,)
---echo
---echo ---> connection: con2
# - Switch environment variables and trigger loading views;
@@ -178,8 +176,6 @@ DROP DATABASE mysqltest1|
# - Change connection to flush cache;
--connect (con3,localhost,root,,)
---echo
---echo ---> connection: con3
# - Switch environment variables and trigger loading views;
@@ -208,9 +204,6 @@ set names koi8r|
#
--connection default
---echo
---echo ---> connection: default
-
--disconnect con2
--disconnect con3
@@ -378,8 +371,6 @@ ALTER DATABASE mysqltest2 COLLATE cp866_general_ci|
# - Change connection to flush SP-cache;
--connect (con2,localhost,root,,mysqltest1)
---echo
---echo ---> connection: con2
# - Switch environment variables and trigger loading stored procedures;
@@ -458,8 +449,6 @@ DROP DATABASE mysqltest2|
# - Change connection to flush SP-cache;
--connect (con3,localhost,root,,mysqltest1)
---echo
---echo ---> connection: con3
# - Switch environment variables and trigger loading stored procedures;
@@ -485,9 +474,6 @@ set names koi8r|
#
--connection default
---echo
---echo ---> connection: default
-
--disconnect con2
--disconnect con3
@@ -654,8 +640,6 @@ ALTER TABLE mysqltest2.t1 DROP COLUMN fake|
# (connect using NULL database);
--connect (con2,localhost,root,,)
---echo
---echo ---> connection: con2
SET @@character_set_client= cp1251|
SET @@character_set_results= cp1251|
@@ -744,8 +728,6 @@ ALTER TABLE mysqltest2.t1 DROP COLUMN fake|
# (connect using NULL database);
--connect (con3,localhost,root,,)
---echo
---echo ---> connection: con3
SET @@character_set_client= cp1251|
SET @@character_set_results= cp1251|
@@ -772,9 +754,6 @@ use mysqltest1|
#
--connection default
---echo
---echo ---> connection: default
-
--disconnect con2
--disconnect con3
@@ -914,8 +893,6 @@ ALTER DATABASE mysqltest2 COLLATE cp866_general_ci|
# - Change connection to flush cache;
--connect (con2,localhost,root,,mysqltest1)
---echo
---echo ---> connection: con2
# - Switch environment variables and trigger loading stored procedures;
@@ -996,8 +973,6 @@ DROP DATABASE mysqltest2|
# - Change connection to flush cache;
--connect (con3,localhost,root,,mysqltest1)
---echo
---echo ---> connection: con3
# - Switch environment variables and trigger loading stored procedures;
@@ -1135,19 +1110,12 @@ SHOW CREATE TABLE mysqltest2.t2|
delimiter ;|
--connection con2
---echo
---echo ---> connection: con2
--disconnect con2
--source include/wait_until_disconnected.inc
--connection con3
---echo
---echo ---> connection: con3
--disconnect con3
--source include/wait_until_disconnected.inc
--connection default
---echo
---echo ---> connection: default
USE test;
DROP DATABASE mysqltest1;
DROP DATABASE mysqltest2;
-
diff --git a/mysql-test/t/ddl_i18n_utf8.test b/mysql-test/t/ddl_i18n_utf8.test
index 023047b952e..9fecad87515 100644
--- a/mysql-test/t/ddl_i18n_utf8.test
+++ b/mysql-test/t/ddl_i18n_utf8.test
@@ -116,8 +116,6 @@ ALTER DATABASE mysqltest1 COLLATE cp866_general_ci|
# - Change connection to flush cache;
--connect (con2,localhost,root,,)
---echo
---echo ---> connection: con2
# - Switch environment variables and trigger loading views;
@@ -178,8 +176,6 @@ DROP DATABASE mysqltest1|
# - Change connection to flush cache;
--connect (con3,localhost,root,,)
---echo
---echo ---> connection: con3
# - Switch environment variables and trigger loading views;
@@ -208,8 +204,6 @@ set names utf8|
#
--connection default
---echo
---echo ---> connection: default
--disconnect con2
--disconnect con3
@@ -378,8 +372,6 @@ ALTER DATABASE mysqltest2 COLLATE cp866_general_ci|
# - Change connection to flush SP-cache;
--connect (con2,localhost,root,,mysqltest1)
---echo
---echo ---> connection: con2
# - Switch environment variables and trigger loading stored procedures;
@@ -458,8 +450,6 @@ DROP DATABASE mysqltest2|
# - Change connection to flush SP-cache;
--connect (con3,localhost,root,,mysqltest1)
---echo
---echo ---> connection: con3
# - Switch environment variables and trigger loading stored procedures;
@@ -485,8 +475,6 @@ set names utf8|
#
--connection default
---echo
---echo ---> connection: default
--disconnect con2
--disconnect con3
@@ -654,8 +642,6 @@ ALTER TABLE mysqltest2.t1 DROP COLUMN fake|
# (connect using NULL database);
--connect (con2,localhost,root,,)
---echo
---echo ---> connection: con2
SET @@character_set_client= cp1251|
SET @@character_set_results= cp1251|
@@ -744,8 +730,6 @@ ALTER TABLE mysqltest2.t1 DROP COLUMN fake|
# (connect using NULL database);
--connect (con3,localhost,root,,)
---echo
---echo ---> connection: con3
SET @@character_set_client= cp1251|
SET @@character_set_results= cp1251|
@@ -772,8 +756,6 @@ use mysqltest1|
#
--connection default
---echo
---echo ---> connection: default
--disconnect con2
--disconnect con3
@@ -914,8 +896,6 @@ ALTER DATABASE mysqltest2 COLLATE cp866_general_ci|
# - Change connection to flush cache;
--connect (con2,localhost,root,,mysqltest1)
---echo
---echo ---> connection: con2
# - Switch environment variables and trigger loading stored procedures;
@@ -996,8 +976,6 @@ DROP DATABASE mysqltest2|
# - Change connection to flush cache;
--connect (con3,localhost,root,,mysqltest1)
---echo
---echo ---> connection: con3
# - Switch environment variables and trigger loading stored procedures;
@@ -1135,19 +1113,12 @@ SHOW CREATE TABLE mysqltest2.t2|
delimiter ;|
--connection con2
---echo
---echo ---> connection: con2
--disconnect con2
--source include/wait_until_disconnected.inc
--connection con3
---echo
---echo ---> connection: con3
--disconnect con3
--source include/wait_until_disconnected.inc
--connection default
---echo
---echo ---> connection: default
USE test;
DROP DATABASE mysqltest1;
DROP DATABASE mysqltest2;
-
diff --git a/mysql-test/t/debug_sync.test b/mysql-test/t/debug_sync.test
index ebeeec61632..aead6f3ac2e 100644
--- a/mysql-test/t/debug_sync.test
+++ b/mysql-test/t/debug_sync.test
@@ -330,23 +330,19 @@ SHOW VARIABLES LIKE 'DEBUG_SYNC';
#
CREATE USER mysqltest_1@localhost;
GRANT SUPER ON *.* TO mysqltest_1@localhost;
---echo connection con1, mysqltest_1
connect (con1,localhost,mysqltest_1,,);
SET DEBUG_SYNC= 'RESET';
disconnect con1;
---echo connection default
connection default;
DROP USER mysqltest_1@localhost;
#
CREATE USER mysqltest_2@localhost;
GRANT ALL ON *.* TO mysqltest_2@localhost;
REVOKE SUPER ON *.* FROM mysqltest_2@localhost;
---echo connection con1, mysqltest_2
connect (con1,localhost,mysqltest_2,,);
--error ER_SPECIFIC_ACCESS_DENIED_ERROR
SET DEBUG_SYNC= 'RESET';
disconnect con1;
---echo connection default
connection default;
DROP USER mysqltest_2@localhost;
@@ -361,21 +357,17 @@ DROP TABLE IF EXISTS t1;
#
# Test.
CREATE TABLE t1 (c1 INT);
- --echo connection con1
connect (con1,localhost,root,,);
SET DEBUG_SYNC= 'before_lock_tables_takes_lock
SIGNAL opened WAIT_FOR flushed';
send INSERT INTO t1 VALUES(1);
---echo connection default
connection default;
SET DEBUG_SYNC= 'now WAIT_FOR opened';
SET DEBUG_SYNC= 'after_flush_unlock SIGNAL flushed';
FLUSH TABLE t1;
- --echo connection con1
connection con1;
reap;
disconnect con1;
---echo connection default
connection default;
DROP TABLE t1;
@@ -391,23 +383,19 @@ DROP TABLE IF EXISTS t1;
# Test.
CREATE TABLE t1 (c1 INT);
LOCK TABLE t1 READ;
- --echo connection con1
connect (con1,localhost,root,,);
# Retain action after use. First used by general_log.
SET DEBUG_SYNC= 'wait_for_lock SIGNAL locked EXECUTE 2';
send INSERT INTO t1 VALUES (1);
---echo connection default
connection default;
# Wait until INSERT waits for lock.
SET DEBUG_SYNC= 'now WAIT_FOR locked';
# let INSERT continue.
UNLOCK TABLES;
- --echo connection con1
connection con1;
--echo retrieve INSERT result.
reap;
disconnect con1;
---echo connection default
connection default;
DROP TABLE t1;
diff --git a/mysql-test/t/delayed.test b/mysql-test/t/delayed.test
index 2886dff8f91..85f28de128b 100644
--- a/mysql-test/t/delayed.test
+++ b/mysql-test/t/delayed.test
@@ -315,7 +315,6 @@ insert into t1 values (1,1);
lock table t1 read;
connect (update,localhost,root,,);
connection update;
---echo connection: update
--send insert delayed into t1 values (2,2);
connection default;
let $wait_condition=
@@ -323,10 +322,8 @@ let $wait_condition=
where command = "Delayed insert" and state = "Waiting for table level lock";
--source include/wait_condition.inc
connect (select,localhost,root,,);
---echo connection: select
select * from t1;
connection default;
---echo connection: default
select * from t1;
connection default;
disconnect update;
@@ -421,17 +418,14 @@ CREATE TABLE t3 (a INT);
--echo # Test 1: Using LOCK TABLE
---echo # Connection con1
connect (con1, localhost, root);
LOCK TABLE t1 WRITE;
---echo # Connection default
connection default;
LOCK TABLE t2 WRITE;
--echo # Sending:
--send INSERT DELAYED INTO t1 VALUES (1)
---echo # Connection con1
connection con1;
--echo # Wait until INSERT DELAYED is blocked on table 't1'.
let $wait_condition=
@@ -443,7 +437,6 @@ let $wait_condition=
INSERT DELAYED INTO t2 VALUES (1);
UNLOCK TABLES;
---echo # Connection default
connection default;
--echo # Reaping: INSERT DELAYED INTO t1 VALUES (1)
--reap
@@ -454,12 +447,10 @@ UNLOCK TABLES;
START TRANSACTION;
SELECT * FROM t1 WHERE a=0;
---echo # Connection con1
connection con1;
--echo # Sending:
--send ALTER TABLE t1 MODIFY a INT UNSIGNED;
---echo # Connection default
connection default;
--echo # Wait until ALTER TABLE is blocked on table 't1'.
let $wait_condition=
@@ -471,24 +462,20 @@ let $wait_condition=
INSERT DELAYED INTO t1 VALUES (3);
COMMIT;
---echo # Connection con1
connection con1;
--echo # Reaping: ALTER TABLE t1 COMMENT 'test'
--reap
--echo # Test 3: Using RENAME TABLE
---echo # Connection default
connection default;
START TRANSACTION;
INSERT INTO t2 VALUES (1);
---echo # Connection con1
connection con1;
--echo # Sending:
--send RENAME TABLE t1 to t5, t2 to t4
---echo # Connection default
connection default;
--echo # Wait until RENAME TABLE is blocked on table 't1'.
let $wait_condition=
@@ -500,12 +487,10 @@ let $wait_condition=
INSERT DELAYED INTO t1 VALUES (4);
COMMIT;
---echo # Connection con1
connection con1;
--echo # Reaping: RENAME TABLE t1 to t5, t2 to t4
--reap
---echo # Connection default
connection default;
--echo # Reverting the renames
RENAME TABLE t5 to t1, t4 to t2;
@@ -515,11 +500,9 @@ RENAME TABLE t5 to t1, t4 to t2;
START TRANSACTION;
INSERT INTO t2 VALUES (1);
---echo # Connection con2
connect (con2, localhost, root);
--send LOCK TABLE t1 WRITE, t2 WRITE
---echo # Connection con1
connection con1;
--echo # Wait until LOCK TABLE is blocked on table 't2'.
let $wait_condition=
@@ -529,7 +512,6 @@ let $wait_condition=
--source include/wait_condition.inc
--send INSERT DELAYED INTO t1 VALUES (5)
---echo # Connection default
connection default;
--echo # Wait until INSERT DELAYED is blocked on table 't1'.
let $wait_condition=
@@ -541,18 +523,15 @@ let $wait_condition=
INSERT DELAYED INTO t1 VALUES (6);
COMMIT;
---echo # Connection con2
connection con2;
--echo # Reaping: LOCK TABLE t1 WRITE, t2 WRITE
--reap
UNLOCK TABLES;
---echo # Connection con1
connection con1;
--echo # Reaping: INSERT DELAYED INTO t1 VALUES (5)
--reap
---echo # Connection default
connection default;
--echo # Test 5: LOCK TABLES + INSERT DELAYED in one connection.
@@ -567,16 +546,13 @@ INSERT DELAYED INTO t2 VALUES (8);
UNLOCK TABLES;
SET AUTOCOMMIT= 1;
---echo # Connection con2
connection con2;
disconnect con2;
--source include/wait_until_disconnected.inc
---echo # Connection con1
connection con1;
disconnect con1;
--source include/wait_until_disconnected.inc
---echo # Connection default
connection default;
DROP TABLE t1, t2, t3;
--enable_ps_protocol
@@ -596,12 +572,10 @@ create table tm(a int) engine=merge union=(t1, t2);
begin;
select * from t1;
---echo # Connection 'con1'.
connection con1;
--echo # Sending:
--send alter table t1 comment 'test'
---echo # Connection 'default'.
connection default;
--echo # Wait until ALTER TABLE blocks and starts waiting
--echo # for connection 'default'. It should wait with a
@@ -619,13 +593,11 @@ insert delayed into tm values (1);
--echo # Unblock ALTER TABLE.
commit;
---echo # Connection 'con1'.
connection con1;
--echo # Reaping ALTER TABLE:
--reap
disconnect con1;
--source include/wait_until_disconnected.inc
---echo # Connection 'default'.
connection default;
drop tables tm, t1, t2;
diff --git a/mysql-test/t/events_bugs.test b/mysql-test/t/events_bugs.test
index cace397e92a..76288c8fbae 100644
--- a/mysql-test/t/events_bugs.test
+++ b/mysql-test/t/events_bugs.test
@@ -919,7 +919,6 @@ GRANT create, insert, select, event ON events_test.* TO evtest1@localhost;
GRANT select,insert ON test.* TO evtest1@localhost;
SHOW GRANTS FOR evtest1@localhost;
---echo connection e1;
--replace_result $MASTER_MYPORT MASTER_MYPORT $MASTER_MYSOCK MASTER_MYSOCK
connect (e1,localhost,evtest1,ev1,events_test,$MASTER_MYPORT,$MASTER_MYSOCK);
DELIMITER |;
@@ -951,7 +950,6 @@ SELECT COUNT(*) > 0 FROM events_test.event_log;
--source include/wait_condition.inc
SELECT COUNT(*) > 0 AS "Expect 1" FROM events_test.event_log;
#
---echo connection default;
connection default;
DROP USER evtest1@localhost;
# 2. If we meet BUG#28924 again than a server crash happens within the next
@@ -1025,10 +1023,6 @@ SET GLOBAL READ_ONLY = 1;
--echo
---echo #
---echo # Connection: u1_con (mysqltest_u1@localhost/events_test).
---echo #
-
--connect(u1_con,localhost,mysqltest_u1,,events_test)
--echo
@@ -1050,10 +1044,6 @@ DROP EVENT e1;
# Check that the super user still can create/update/drop events.
---echo #
---echo # Connection: root_con (root@localhost/events_test).
---echo #
-
--connect(root_con,localhost,root,,events_test)
--echo
@@ -1079,10 +1069,6 @@ SET GLOBAL READ_ONLY = 0;
--echo
---echo #
---echo # Connection: u1_con (mysqltest_u1@localhost/test).
---echo #
-
--connection u1_con
--echo
@@ -1101,10 +1087,6 @@ WHERE event_schema = 'events_test';
--echo
---echo #
---echo # Connection: root_con (root@localhost/events_test).
---echo #
-
--connection root_con
--echo
@@ -1170,10 +1152,6 @@ SET GLOBAL READ_ONLY = 0;
--echo
---echo #
---echo # Connection: default
---echo #
-
--disconnect u1_con
--disconnect root_con
--connection default
diff --git a/mysql-test/t/filesort_debug.test b/mysql-test/t/filesort_debug.test
index c375334ad29..86795298f07 100644
--- a/mysql-test/t/filesort_debug.test
+++ b/mysql-test/t/filesort_debug.test
@@ -32,7 +32,6 @@ DROP FUNCTION f1;
connect (con1, localhost, root);
connect (con2, localhost, root);
---echo # connection 1
connection con1;
CREATE TABLE t1(f0 int auto_increment primary key, f1 int);
INSERT INTO t1(f1) VALUES (0),(1),(2),(3),(4),(5);
@@ -43,14 +42,12 @@ SET DEBUG_SYNC='filesort_start SIGNAL filesort_started WAIT_FOR filesort_killed'
--echo # Sending: (not reaped since connection is killed later)
--send SELECT * FROM t1 ORDER BY f1 ASC, f0
---echo # connection 2
connection con2;
let $ignore= `SELECT @id := $ID`;
SET DEBUG_SYNC='now WAIT_FOR filesort_started';
KILL @id;
SET DEBUG_SYNC='now SIGNAL filesort_killed';
---echo # connection default
connection default;
disconnect con1;
disconnect con2;
diff --git a/mysql-test/t/flush-innodb-notembedded.test b/mysql-test/t/flush-innodb-notembedded.test
index 15bfeb53475..1f73ba50fc4 100644
--- a/mysql-test/t/flush-innodb-notembedded.test
+++ b/mysql-test/t/flush-innodb-notembedded.test
@@ -14,54 +14,44 @@ GRANT RELOAD, SELECT ON *.* TO user3@localhost;
GRANT SELECT, LOCK TABLES ON *.* TO user4@localhost;
GRANT RELOAD, LOCK TABLES ON *.* TO user5@localhost;
---echo # Connection con1 as user1
--connect(con1, localhost, user1)
FLUSH TABLE db1.t1 FOR EXPORT;
UNLOCK TABLES;
--disconnect con1
--source include/wait_until_disconnected.inc
---echo # Connection default
--connection default
---echo # Connection con1 as user2
--connect(con1, localhost, user2)
--error ER_SPECIFIC_ACCESS_DENIED_ERROR
FLUSH TABLE db1.t1 FOR EXPORT;
--disconnect con1
--source include/wait_until_disconnected.inc
---echo # Connection default
--connection default
---echo # Connection con1 as user3
--connect(con1, localhost, user3)
--error ER_DBACCESS_DENIED_ERROR
FLUSH TABLE db1.t1 FOR EXPORT;
--disconnect con1
--source include/wait_until_disconnected.inc
---echo # Connection default
--connection default
---echo # Connection con1 as user4
--connect(con1, localhost, user4)
--error ER_SPECIFIC_ACCESS_DENIED_ERROR
FLUSH TABLE db1.t1 FOR EXPORT;
--disconnect con1
--source include/wait_until_disconnected.inc
---echo # Connection default
--connection default
---echo # Connection con1 as user5
--connect(con1, localhost, user5)
--error ER_TABLEACCESS_DENIED_ERROR
FLUSH TABLE db1.t1 FOR EXPORT;
--disconnect con1
--source include/wait_until_disconnected.inc
---echo # Connection default
--connection default
DROP USER user1@localhost, user2@localhost, user3@localhost,
user4@localhost, user5@localhost;
diff --git a/mysql-test/t/flush-innodb.test b/mysql-test/t/flush-innodb.test
index acf9493693a..bf7b79bb5a3 100644
--- a/mysql-test/t/flush-innodb.test
+++ b/mysql-test/t/flush-innodb.test
@@ -109,18 +109,15 @@ DROP VIEW v1;
CREATE TABLE t1 (a INT PRIMARY KEY, b INT) engine= InnoDB;
CREATE TABLE t2 (a INT) engine= InnoDB;
---echo # Connection con1
--connect (con1, localhost, root)
START TRANSACTION;
INSERT INTO t1 VALUES (1, 1);
---echo # Connection default
--connection default
--echo # Should be blocked
--echo # Sending:
--send FLUSH TABLES t1 FOR EXPORT
---echo # Connection con1
--connection con1
let $wait_condition=
SELECT COUNT(*) = 1 FROM information_schema.processlist
@@ -129,12 +126,10 @@ let $wait_condition=
--source include/wait_condition.inc
COMMIT;
---echo # Connection default
--connection default
--echo # Reaping: FLUSH TABLES t1 FOR EXPORT
--reap
---echo # Connection con1
--connection con1
--echo # Should not be blocked
INSERT INTO t2 VALUES (1);
@@ -142,7 +137,6 @@ INSERT INTO t2 VALUES (1);
--echo # Sending:
--send INSERT INTO t1 VALUES (2, 2)
---echo # Connection default
--connection default
let $wait_condition=
SELECT COUNT(*) = 1 FROM information_schema.processlist
@@ -151,7 +145,6 @@ let $wait_condition=
--source include/wait_condition.inc
UNLOCK TABLES;
---echo # Connection con1
--connection con1
--echo # Reaping: INSERT INTO t1 VALUES (2, 2);
--reap
@@ -162,18 +155,15 @@ UNLOCK TABLES;
START TRANSACTION;
SELECT * FROM t1;
---echo # Connection default
--connection default
--echo # Should not be blocked
FLUSH TABLES t1 FOR EXPORT;
---echo # Connection con1
--connection con1
COMMIT;
--echo # Should not be blocked
SELECT * FROM t1;
---echo # Connection default
--connection default
UNLOCK TABLES;
@@ -183,12 +173,10 @@ UNLOCK TABLES;
START TRANSACTION;
SELECT * FROM t1;
---echo # Connection con2
--connect (con2, localhost, root)
--echo # Sending:
--send ALTER TABLE t1 ADD INDEX i1(b)
---echo # Connection con1
--connection con1
let $wait_condition=
SELECT COUNT(*) = 1 FROM information_schema.processlist
@@ -198,7 +186,6 @@ let $wait_condition=
--echo # Should be blocked
--send FLUSH TABLE t1 FOR EXPORT
---echo # Connection default
--connection default
let $wait_condition=
SELECT COUNT(*) = 1 FROM information_schema.processlist
@@ -207,27 +194,22 @@ let $wait_condition=
--source include/wait_condition.inc
COMMIT;
---echo # Connection con2
--connection con2
--echo # Reaping ALTER TABLE ...
--reap
---echo # Connection con1
--connection con1
--echo # Reaping FLUSH TABLE t1 FOR EXPORT
--reap
UNLOCK TABLES;
---echo # Connection default
--connection default
FLUSH TABLE t1 FOR EXPORT;
---echo # Connection con2
--connection con2
--echo # Should be blocked
--send DROP TABLE t1
---echo # Connection default
--connection default
let $wait_condition=
SELECT COUNT(*) = 1 FROM information_schema.processlist
@@ -236,14 +218,12 @@ let $wait_condition=
--source include/wait_condition.inc
UNLOCK TABLES;
---echo # Connection con2
--connection con2
--echo # Reaping DROP TABLE t1
--reap
--disconnect con2
--source include/wait_until_disconnected.inc
---echo # Connection default
--connection default
DROP TABLE t2;
@@ -253,13 +233,11 @@ DROP TABLE t2;
CREATE TABLE t1(a INT) engine= InnoDB;
FLUSH TABLES WITH READ LOCK;
---echo # Connection con1
--connection con1
--echo # This should not block
FLUSH TABLE t1 FOR EXPORT;
UNLOCK TABLES;
---echo # Connection default
--connection default
UNLOCK TABLES;
DROP TABLE t1;
@@ -272,12 +250,10 @@ CREATE TABLE t1(a INT) engine= MEMORY;
FLUSH TABLE t1 FOR EXPORT;
DROP TABLE t1;
---echo # Connection con1
--connection con1
--disconnect con1
--source include/wait_until_disconnected.inc
---echo # Connection defalt
--connection default
--echo # Test 7: Check privileges required.
@@ -291,11 +267,9 @@ DROP TABLE t1;
CREATE TABLE t1 (a INT) engine= InnoDB;
CREATE TABLE t2 (a INT) engine= InnoDB;
---echo # Connection con1
--connect (con1, localhost, root)
FLUSH TABLE t1 FOR EXPORT;
---echo # Connection default
--connection default
--echo # This should not block
FLUSH TABLE t2 FOR EXPORT;
@@ -304,7 +278,6 @@ UNLOCK TABLES;
--echo # Sending:
--send FLUSH TABLE t1 FOR EXPORT
---echo # Connection con1
--connection con1
let $wait_condition=
SELECT COUNT(*) = 1 FROM information_schema.processlist
@@ -313,7 +286,6 @@ let $wait_condition=
--source include/wait_condition.inc
UNLOCK TABLES;
---echo # Connection default
--connection default
--echo # Reaping: FLUSH TABLE t1 FOR EXPORT
--reap
@@ -324,33 +296,27 @@ UNLOCK TABLES;
LOCK TABLE t1 READ;
---echo # Connection con1
--connection con1
--echo # Should not block
FLUSH TABLE t1 FOR EXPORT;
UNLOCK TABLES;
---echo # Connection default
--connection default
UNLOCK TABLES;
FLUSH TABLE t1 FOR EXPORT;
---echo # Connection con1
--connection con1
--echo # Should not block
LOCK TABLE t1 READ;
UNLOCK TABLES;
---echo # Connection default
--connection default
UNLOCK TABLES;
---echo # Connection con1
--connection con1
--disconnect con1
--source include/wait_until_disconnected.inc
---echo # Connection default
--connection default
DROP TABLE t1, t2;
@@ -372,21 +338,17 @@ DROP TABLE t1;
--echo # Test 11: Test 'flush table with fully qualified table names
--echo # and with syntax local/NO_WRITE_TO_BINLOG
---echo # Connection con1
--connect (con1, localhost, root)
---echo # Connection default
--connection default
CREATE TABLE t1 ( i INT ) ENGINE = Innodb;
INSERT INTO t1 VALUES (100),(200);
FLUSH LOCAL TABLES test.t1 FOR EXPORT;
---echo # Connection con1
--connection con1
--echo # Should be blocked
--echo # Sending:
--send FLUSH LOCAL TABLES t1 FOR EXPORT
---echo # Connection default
--connection default
let $wait_condition=
SELECT COUNT(*) = 1 FROM information_schema.processlist
@@ -395,19 +357,16 @@ let $wait_condition=
--source include/wait_condition.inc
UNLOCK TABLE;
---echo # Connection con1
--connection con1
--echo # Reaping: FLUSH LOCAL TABLES t1 FOR EXPORT
--reap
SELECT * FROM t1 ORDER BY i;
---echo # Connection default
--connection default
--echo # Should be blocked
--echo # Sending:
--send FLUSH NO_WRITE_TO_BINLOG TABLES test.t1 FOR EXPORT
---echo # Connection con1
--connection con1
let $wait_condition=
SELECT COUNT(*) = 1 FROM information_schema.processlist
@@ -416,7 +375,6 @@ let $wait_condition=
--source include/wait_condition.inc
UNLOCK TABLES;
---echo # Connection default
--connection default
--echo # Reaping: FLUSH NO_WRITE_TO_BINLOG TABLES test.t1 FOR EXPORT
--reap
@@ -427,7 +385,6 @@ DROP TABLE t1;
--echo # Test 12: Active transaction get committed if user execute
--echo # "FLUSH TABLE ... FOR EXPORT" or "LOCK TABLE.."
---echo # Connection default
--connection default
CREATE TABLE t1 ( i INT ) ENGINE = Innodb;
INSERT INTO t1 VALUES (100),(200);
@@ -448,7 +405,6 @@ DROP TABLE t1;
--echo # Test 13: Verify "FLUSH TABLE ... FOR EXPORT" and "LOCK TABLE.."
--echo # in same session
---echo # Connection default
--connection default
CREATE TABLE t1 ( i INT ) ENGINE = Innodb;
diff --git a/mysql-test/t/flush.test b/mysql-test/t/flush.test
index a1df9359d30..81834b7de10 100644
--- a/mysql-test/t/flush.test
+++ b/mysql-test/t/flush.test
@@ -303,19 +303,16 @@ insert into t3 (a) values (2);
--echo # III. Concurrent tests.
--echo #
connect (con1,localhost,root,,);
---echo # --> connection default
--echo #
--echo # Check that flush tables <list> with read lock
--echo # does not affect non-locked tables.
connection default;
--echo #
flush tables t1 with read lock;
---echo # --> connection con1;
connection con1;
select * from t1;
select * from t2;
insert into t2 (a) values (3);
---echo # --> connection default;
connection default;
unlock tables;
--echo #
@@ -324,12 +321,10 @@ unlock tables;
--echo # Vice versa it is not true, since tables read-locked by
--echo # "FLUSH TABLES <list> WITH READ LOCK" can't be flushed.
flush tables with read lock;
---echo # --> connection con1;
connection con1;
flush table t1 with read lock;
select * from t1;
unlock tables;
---echo # --> connection default;
connection default;
unlock tables;
--echo #
@@ -338,11 +333,9 @@ unlock tables;
--echo # WITH READ LOCK.
--echo #
flush table t1 with read lock;
---echo # --> connection con1
connection con1;
flush table t2 with read lock;
unlock tables;
---echo # --> connection default
connection default;
unlock tables;
--echo #
@@ -350,11 +343,9 @@ unlock tables;
--echo # does not conflict with SET GLOBAL read_only=1.
--echo #
set global read_only=1;
---echo # connection con1
connection con1;
flush table t1 with read lock;
unlock tables;
---echo # connection default
connection default;
set global read_only=0;
--echo #
@@ -362,15 +353,12 @@ set global read_only=0;
--echo # tables locked with FLUSH TABLE <list> WITH READ LOCK.
--echo #
flush tables t1, t2 with read lock;
---echo # connection con1
connection con1;
lock table t1 read, t2 read;
unlock tables;
---echo # connection default
connection default;
unlock tables;
---echo # --> connection con1
connection con1;
disconnect con1;
--source include/wait_until_disconnected.inc
@@ -440,13 +428,11 @@ drop table if exists t1;
--enable_warnings
connect (con1,localhost,root,,);
connect (con2,localhost,root,,);
---echo # --> conection default
connection default;
create table t1 (a int);
begin;
select * from t1;
---echo # --> connection con1
connection con1;
--echo #
--echo # Issue a LOCK TABLE t1 READ. We could use HANDLER t1 OPEN
@@ -454,13 +440,11 @@ connection con1;
--echo # prevents FLUSH TABLE t1 from immediate completion would do.
--echo #
lock table t1 read;
---echo # --> connection con2
connection con2;
--echo #
--echo # FLUSH TABLE expels the table definition from the cache.
--echo # Sending 'flush table t1'...
send flush table t1;
---echo # --> connection default
connection default;
--echo # Let flush table sync in.
let $wait_condition=
@@ -469,7 +453,6 @@ let $wait_condition=
and info = "flush table t1";
--source include/wait_condition.inc
send select * from t1;
---echo # --> connection con1
connection con1;
let $wait_condition=
select count(*) = 1 from information_schema.processlist
@@ -477,11 +460,9 @@ let $wait_condition=
and info = "select * from t1";
select * from t1;
unlock tables;
---echo # --> connection con2
connection con2;
--echo # Reaping 'flush table t1'...
reap;
---echo # --> connection default
connection default;
--echo # Reaping 'select * from t1'...
reap;
@@ -493,19 +474,16 @@ commit;
begin;
select * from t1;
---echo # --> connection con1
connection con1;
--echo #
--echo # Issue a LOCK TABLE t1 READ.
--echo #
lock table t1 read;
---echo # --> connection con2
connection con2;
--echo #
--echo # FLUSH TABLES expels the table definition from the cache.
--echo # Sending 'flush tables'...
send flush tables;
---echo # --> connection default
connection default;
--echo # Let flush table sync in.
let $wait_condition=
@@ -514,7 +492,6 @@ let $wait_condition=
and info = "flush tables";
--source include/wait_condition.inc
send select * from t1;
---echo # --> connection con1
connection con1;
let $wait_condition=
select count(*) = 1 from information_schema.processlist
@@ -522,11 +499,9 @@ let $wait_condition=
and info = "select * from t1";
select * from t1;
unlock tables;
---echo # --> connection con2
connection con2;
--echo # Reaping 'flush tables'...
reap;
---echo # --> connection default
connection default;
--echo # Reaping 'select * from t1'...
reap;
@@ -534,15 +509,12 @@ commit;
--echo # Cleanup
---echo # --> connection con1
connection con1;
disconnect con1;
--source include/wait_until_disconnected.inc
---echo # --> connection con2
connection con2;
disconnect con2;
--source include/wait_until_disconnected.inc
---echo # --> connection default
connection default;
drop table t1;
@@ -593,12 +565,10 @@ create table t1 (i int);
create table t2 (i int);
handler t1 open;
---echo # Switching to connection 'con1'.
connection con1;
--echo # Sending:
--send flush tables with read lock
---echo # Switching to connection 'con2'.
connection con2;
--echo # Wait until FTWRL starts waiting for 't1' to be closed.
let $wait_condition=
@@ -607,13 +577,11 @@ let $wait_condition=
and info = "flush tables with read lock";
--source include/wait_condition.inc
---echo # Switching to connection 'default'.
connection default;
--echo # The below statement should not cause deadlock.
--echo # Sending:
--send insert into t2 values (1)
---echo # Switching to connection 'con2'.
connection con2;
--echo # Wait until INSERT starts to wait for FTWRL to go away.
let $wait_condition=
@@ -622,14 +590,12 @@ let $wait_condition=
and info = "insert into t2 values (1)";
--source include/wait_condition.inc
---echo # Switching to connection 'con1'.
connection con1;
--echo # FTWRL should be able to continue now.
--echo # Reap FTWRL.
--reap
unlock tables;
---echo # Switching to connection 'default'.
connection default;
--echo # Reap INSERT.
--reap
@@ -688,7 +654,6 @@ CREATE TRIGGER t1_au AFTER UPDATE ON t1 FOR EACH ROW SET @var = "a";
BEGIN;
UPDATE t1 SET value= value + 1 WHERE id = 1;
---echo # Switching to connection 'con1'.
connect(con1, localhost, root);
--echo # The below FLUSH TABLES WITH READ LOCK should succeed and
--echo # should not be blocked by the transaction in default connection.
@@ -697,7 +662,6 @@ UNLOCK TABLES;
disconnect con1;
--source include/wait_until_disconnected.inc
---echo # Switching to connection 'default'.
connection default;
COMMIT;
DROP TABLE t1;
diff --git a/mysql-test/t/flush_block_commit.test b/mysql-test/t/flush_block_commit.test
index 90443dc9242..6a6120ce63f 100644
--- a/mysql-test/t/flush_block_commit.test
+++ b/mysql-test/t/flush_block_commit.test
@@ -9,13 +9,9 @@
--echo # Save the initial number of concurrent sessions
--source include/count_sessions.inc
---echo # Establish connection con1 (user=root)
connect (con1,localhost,root,,);
---echo # Establish connection con2 (user=root)
connect (con2,localhost,root,,);
---echo # Establish connection con3 (user=root)
connect (con3,localhost,root,,);
---echo # Switch to connection con1
connection con1;
--disable_warnings
@@ -27,14 +23,11 @@ CREATE TABLE t1 (a INT) ENGINE=innodb;
BEGIN;
INSERT INTO t1 VALUES(1);
---echo # Switch to connection con2
connection con2;
FLUSH TABLES WITH READ LOCK;
---echo # Switch to connection con1
connection con1;
--echo # Sending:
--send COMMIT
---echo # Switch to connection con2
connection con2;
--echo # Wait until COMMIT gets blocked.
let $wait_condition=
@@ -44,33 +37,26 @@ let $wait_condition=
--echo # Verify that 'con1' was blocked and data did not move.
SELECT * FROM t1;
UNLOCK TABLES;
---echo # Switch to connection con1
connection con1;
--echo # Reaping COMMIT
--reap
# No deadlock ?
---echo # Switch to connection con1
connection con1;
BEGIN;
SELECT * FROM t1 FOR UPDATE;
---echo # Switch to connection con2
connection con2;
BEGIN;
send SELECT * FROM t1 FOR UPDATE; # blocked by con1
sleep 1;
---echo # Switch to connection con3
connection con3;
send FLUSH TABLES WITH READ LOCK; # blocked by con2
---echo # Switch to connection con1
connection con1;
COMMIT; # should not be blocked by con3
---echo # Switch to connection con2
connection con2;
reap;
COMMIT;
---echo # Switch to connection con3
connection con3;
reap;
UNLOCK TABLES;
@@ -78,15 +64,12 @@ UNLOCK TABLES;
# Bug#6732 FLUSH TABLES WITH READ LOCK + COMMIT hangs later FLUSH TABLES
# WITH READ LOCK
---echo # Switch to connection con2
connection con2;
COMMIT; # unlock InnoDB row locks to allow insertions
---echo # Switch to connection con1
connection con1;
BEGIN;
INSERT INTO t1 VALUES(10);
FLUSH TABLES WITH READ LOCK;
---echo # Switch to connection con2
connection con2;
FLUSH TABLES WITH READ LOCK; # bug caused hang here
UNLOCK TABLES;
@@ -100,7 +83,6 @@ COMMIT;
--echo # Cleanup
---echo # Switch to connection default and close connections con1, con2, con3
connection default;
disconnect con1;
disconnect con2;
diff --git a/mysql-test/t/flush_block_commit_notembedded.test b/mysql-test/t/flush_block_commit_notembedded.test
index fe9dbf7c19e..3d894c5f16c 100644
--- a/mysql-test/t/flush_block_commit_notembedded.test
+++ b/mysql-test/t/flush_block_commit_notembedded.test
@@ -13,31 +13,24 @@
--source include/count_sessions.inc
---echo # Establish connection con1 (user=root)
connect (con1,localhost,root,,);
---echo # Establish connection con2 (user=root)
connect (con2,localhost,root,,);
# FLUSH TABLES WITH READ LOCK should block writes to binlog too
---echo # Switch to connection con1
connection con1;
CREATE TABLE t1 (a INT) ENGINE=innodb;
RESET MASTER;
SET AUTOCOMMIT=0;
SELECT 1;
---echo # Switch to connection con2
connection con2;
FLUSH TABLES WITH READ LOCK;
--source include/show_binlog_events.inc
---echo # Switch to connection con1
connection con1;
send INSERT INTO t1 VALUES (1);
---echo # Switch to connection con2
connection con2;
sleep 1;
--source include/show_binlog_events.inc
UNLOCK TABLES;
---echo # Switch to connection con1
connection con1;
reap;
DROP TABLE t1;
@@ -62,7 +55,6 @@ connection con2;
commit;
drop table t1;
---echo # Switch to connection default and close connections con1 and con2
connection default;
disconnect con1;
disconnect con2;
diff --git a/mysql-test/t/flush_read_lock.test b/mysql-test/t/flush_read_lock.test
index 7ba80ea38ac..4a9752ae9f1 100644
--- a/mysql-test/t/flush_read_lock.test
+++ b/mysql-test/t/flush_read_lock.test
@@ -231,41 +231,30 @@ unlock tables;
--echo # COMMIT is blocked by active FTWRL in another
--echo # connection.
--echo #
---echo # Switching to connection '$con_aux1'.
connection $con_aux1;
flush tables with read lock;
---echo # Switching to connection 'default'.
connection default;
begin;
---echo # Switching to connection '$con_aux1'.
connection $con_aux1;
unlock tables;
---echo # Switching to connection 'default'.
connection default;
--echo # Do some work so ROLLBACK is not a no-op.
insert into t3_trans values (1);
---echo # Switching to connection '$con_aux1'.
connection $con_aux1;
flush tables with read lock;
---echo # Switching to connection 'default'.
connection default;
rollback;
---echo # Switching to connection '$con_aux1'.
connection $con_aux1;
unlock tables;
---echo # Switching to connection 'default'.
connection default;
begin;
--echo # Do some work so COMMIT is not a no-op.
insert into t3_trans values (1);
---echo # Switching to connection '$con_aux1'.
connection $con_aux1;
flush tables with read lock;
---echo # Switching to connection 'default'.
connection default;
--echo # Send:
--send commit
---echo # Switching to connection '$con_aux1'.
connection $con_aux1;
--echo # Wait until COMMIT is blocked.
let $wait_condition=
@@ -274,7 +263,6 @@ let $wait_condition=
info = "commit";
--source include/wait_condition.inc
unlock tables;
---echo # Switching to connection 'default'.
connection default;
--echo # Reap COMMIT.
--reap
@@ -286,11 +274,9 @@ insert into t3_trans values (1);
set debug_sync='RESET';
set debug_sync='ha_commit_trans_after_acquire_commit_lock SIGNAL parked WAIT_FOR go';
--send commit
---echo # Switching to connection '$con_aux1'.
connection $con_aux1;
set debug_sync='now WAIT_FOR parked';
--send flush tables with read lock
---echo # Switching to connection '$con_aux2'.
connection $con_aux2;
--echo # Wait until FTWRL is blocked.
let $wait_condition=
@@ -299,16 +285,13 @@ let $wait_condition=
info = "flush tables with read lock";
--source include/wait_condition.inc
set debug_sync='now SIGNAL go';
---echo # Switching to connection 'default'.
connection default;
--echo # Reap COMMIT.
--reap
---echo # Switching to connection '$con_aux1'.
connection $con_aux1;
--echo # Reap FTWRL.
--reap
unlock tables;
---echo # Switching to connection 'default'.
connection default;
delete from t3_trans;
set debug_sync= "RESET";
@@ -574,13 +557,10 @@ unlock tables;
--echo # Check that active FTWRL in another connection
--echo # blocks EXECUTE which changes data.
--echo #
---echo # Switching to connection '$con_aux1'.
connection $con_aux1;
flush tables with read lock;
---echo # Switching to connection 'default'.
connection default;
--send execute stmt1
---echo # Switching to connection '$con_aux1'.
connection $con_aux1;
--echo # Check that EXECUTE is blocked.
let $wait_condition=
@@ -589,18 +569,15 @@ let $wait_condition=
info = "insert into t1_base values (1)";
--source include/wait_condition.inc
unlock tables;
---echo # Switching to connection 'default'.
connection default;
--echo # Reap EXECUTE.
--reap
set debug_sync='RESET';
set debug_sync='execute_command_after_close_tables SIGNAL parked WAIT_FOR go';
--send execute stmt1;
---echo # Switching to connection '$con_aux1'.
connection $con_aux1;
set debug_sync='now WAIT_FOR parked';
--send flush tables with read lock
---echo # Switching to connection '$con_aux2'.
connection $con_aux2;
--echo # Wait until FTWRL is blocked.
let $wait_condition=
@@ -609,16 +586,13 @@ let $wait_condition=
info = "flush tables with read lock";
--source include/wait_condition.inc
set debug_sync='now SIGNAL go';
---echo # Switching to connection 'default'.
connection default;
--echo # Reap EXECUTE.
--reap
---echo # Switching to connection '$con_aux1'.
connection $con_aux1;
--echo # Reap FTWRL.
--reap
unlock tables;
---echo # Switching to connection 'default'.
connection default;
set debug_sync= "RESET";
delete from t1_base;
@@ -808,23 +782,18 @@ drop trigger t1_bi;
--echo # Check that FTWRL statements can be run while FTWRL
--echo # is active in another connection.
--echo #
---echo # Switching to connection '$con_aux1'.
flush tables with read lock;
--echo # The second FTWRL in a row is allowed at the moment.
--echo # It does not make much sense as it does only flush.
flush tables with read lock;
unlock tables;
---echo # Switching to connection '$con_aux1'.
connection $con_aux1;
flush tables with read lock;
---echo # Switching to connection 'default'.
connection default;
flush tables with read lock;
unlock tables;
---echo # Switching to connection '$con_aux1'.
connection $con_aux1;
unlock tables;
---echo # Switching to connection 'default'.
connection default;
--echo #
@@ -836,23 +805,17 @@ flush tables with read lock;
--echo # It does not make much sense though.
flush tables t1_base, t2_base with read lock;
unlock tables;
---echo # Switching to connection '$con_aux1'.
connection $con_aux1;
flush tables with read lock;
---echo # Switching to connection 'default'.
connection default;
flush tables t1_base, t2_base with read lock;
unlock tables;
---echo # Switching to connection '$con_aux1'.
connection $con_aux1;
unlock tables;
---echo # Switching to connection 'default'.
connection default;
flush tables t1_base, t2_base with read lock;
---echo # Switching to connection '$con_aux1'.
connection $con_aux1;
--send flush tables with read lock
---echo # Switching to connection '$con_aux2'.
connection $con_aux2;
--echo # Wait until FTWRL is blocked.
let $wait_condition=
@@ -860,15 +823,12 @@ let $wait_condition=
where state = "Waiting for table flush" and
info = "flush tables with read lock";
--source include/wait_condition.inc
---echo # Switching to connection 'default'.
connection default;
unlock tables;
---echo # Switching to connection '$con_aux1'.
connection $con_aux1;
--echo # Reap FTWRL.
--reap
unlock tables;
---echo # Switching to connection 'default'.
connection default;
@@ -915,18 +875,14 @@ unlock tables;
--echo # Check that HANDLER statements can be run while FTWRL
--echo # is active in another connection.
--echo #
---echo # Switching to connection '$con_aux1'.
connection $con_aux1;
flush tables with read lock;
---echo # Switching to connection 'default'.
connection default;
handler t1_base open;
handler t1_base read first;
handler t1_base close;
---echo # Switching to connection '$con_aux1'.
connection $con_aux1;
unlock tables;
---echo # Switching to connection 'default'.
connection default;
@@ -984,29 +940,23 @@ unlock tables;
--echo # Check that KILL statements can be run while FTWRL
--echo # is active in another connection.
--echo #
---echo # Switching to connection '$con_aux1'.
connection $con_aux1;
flush tables with read lock;
---echo # Switching to connection 'default'.
connection default;
--error ER_QUERY_INTERRUPTED
kill query @id;
---echo # Switching to connection '$con_aux1'.
connection $con_aux1;
unlock tables;
---echo # Switching to connection 'default'.
connection default;
--echo # Finally check that KILL doesn't block FTWRL
set debug_sync='RESET';
set debug_sync='execute_command_after_close_tables SIGNAL parked WAIT_FOR go';
--send kill query @id
---echo # Switching to connection '$con_aux1'.
connection $con_aux1;
set debug_sync='now WAIT_FOR parked';
flush tables with read lock;
unlock tables;
set debug_sync='now SIGNAL go';
---echo # Switching to connection 'default'.
connection default;
--echo # Reap KILL.
--error ER_QUERY_INTERRUPTED
@@ -1043,17 +993,13 @@ flush tables with read lock;
lock tables t1_base read;
unlock tables;
--echo #
---echo # Switching to connection '$con_aux1'.
connection $con_aux1;
flush tables with read lock;
---echo # Switching to connection 'default'.
connection default;
lock tables t1_base read;
unlock tables;
---echo # Switching to connection '$con_aux1'.
connection $con_aux1;
unlock tables;
---echo # Switching to connection 'default'.
connection default;
--echo #
@@ -1064,13 +1010,10 @@ flush tables with read lock;
lock tables t1_base write;
unlock tables;
--echo #
---echo # Switching to connection '$con_aux1'.
connection $con_aux1;
flush tables with read lock;
---echo # Switching to connection 'default'.
connection default;
--send lock tables t1_base write
---echo # Switching to connection '$con_aux1'.
connection $con_aux1;
--echo # Check that LOCK TABLES WRITE is blocked.
let $wait_condition=
@@ -1079,7 +1022,6 @@ let $wait_condition=
info = "lock tables t1_base write";
--source include/wait_condition.inc
unlock tables;
---echo # Switching to connection 'default'.
connection default;
--echo # Reap LOCK TABLES WRITE
--reap
@@ -1093,17 +1035,13 @@ flush tables with read lock;
lock tables t1_temp write;
unlock tables;
--echo #
---echo # Switching to connection '$con_aux1'.
connection $con_aux1;
flush tables with read lock;
---echo # Switching to connection 'default'.
connection default;
lock tables t1_temp write;
unlock tables;
---echo # Switching to connection '$con_aux1'.
connection $con_aux1;
unlock tables;
---echo # Switching to connection 'default'.
connection default;
@@ -1116,13 +1054,10 @@ flush tables with read lock;
optimize table t1_base;
unlock tables;
--echo #
---echo # Switching to connection '$con_aux1'.
connection $con_aux1;
flush tables with read lock;
---echo # Switching to connection 'default'.
connection default;
--send optimize table t1_base
---echo # Switching to connection '$con_aux1'.
connection $con_aux1;
--echo # Check that OPTIMIZE TABLE is blocked.
let $wait_condition=
@@ -1131,7 +1066,6 @@ let $wait_condition=
info = "optimize table t1_base";
--source include/wait_condition.inc
unlock tables;
---echo # Switching to connection 'default'.
connection default;
--echo # Reap OPTIMIZE TABLE
--reap
@@ -1191,43 +1125,31 @@ commit;
--echo # Check that these statements are not blocked by
--echo # active FTWRL in another connection.
--echo #
---echo # Switching to connection '$con_aux1'.
connection $con_aux1;
flush tables with read lock;
---echo # Switching to connection 'default'.
connection default;
begin;
---echo # Switching to connection '$con_aux1'.
connection $con_aux1;
unlock tables;
---echo # Switching to connection 'default'.
connection default;
--echo # Do some changes to avoid SAVEPOINT and friends
--echo # being almost no-ops.
insert into t3_trans values (1);
---echo # Switching to connection '$con_aux1'.
connection $con_aux1;
flush tables with read lock;
---echo # Switching to connection 'default'.
connection default;
savepoint sv1;
---echo # Switching to connection '$con_aux1'.
connection $con_aux1;
unlock tables;
---echo # Switching to connection 'default'.
connection default;
insert into t3_trans values (2);
---echo # Switching to connection '$con_aux1'.
connection $con_aux1;
flush tables with read lock;
---echo # Switching to connection 'default'.
connection default;
rollback to savepoint sv1;
release savepoint sv1;
---echo # Switching to connection '$con_aux1'.
connection $con_aux1;
unlock tables;
---echo # Switching to connection 'default'.
connection default;
rollback;
--echo # Check that these statements don't block FTWRL in
@@ -1239,38 +1161,32 @@ insert into t3_trans values (1);
set debug_sync='RESET';
set debug_sync='execute_command_after_close_tables SIGNAL parked WAIT_FOR go';
--send savepoint sv1
---echo # Switching to connection '$con_aux1'.
connection $con_aux1;
set debug_sync='now WAIT_FOR parked';
flush tables with read lock;
unlock tables;
set debug_sync='now SIGNAL go';
---echo # Switching to connection 'default'.
connection default;
--echo # Reap SAVEPOINT
--reap
insert into t3_trans values (2);
set debug_sync='execute_command_after_close_tables SIGNAL parked WAIT_FOR go';
--send rollback to savepoint sv1
---echo # Switching to connection '$con_aux1'.
connection $con_aux1;
set debug_sync='now WAIT_FOR parked';
flush tables with read lock;
unlock tables;
set debug_sync='now SIGNAL go';
---echo # Switching to connection 'default'.
connection default;
--echo # Reap ROLLBACK TO SAVEPOINT
--reap
set debug_sync='execute_command_after_close_tables SIGNAL parked WAIT_FOR go';
--send release savepoint sv1
---echo # Switching to connection '$con_aux1'.
connection $con_aux1;
set debug_sync='now WAIT_FOR parked';
flush tables with read lock;
unlock tables;
set debug_sync='now SIGNAL go';
---echo # Switching to connection 'default'.
connection default;
--echo # Reap RELEASE SAVEPOINT
--reap
@@ -1304,13 +1220,10 @@ flush tables with read lock;
repair table t1_base;
unlock tables;
--echo #
---echo # Switching to connection '$con_aux1'.
connection $con_aux1;
flush tables with read lock;
---echo # Switching to connection 'default'.
connection default;
--send repair table t1_base
---echo # Switching to connection '$con_aux1'.
connection $con_aux1;
--echo # Check that REPAIR TABLE is blocked.
let $wait_condition=
@@ -1319,7 +1232,6 @@ let $wait_condition=
info = "repair table t1_base";
--source include/wait_condition.inc
unlock tables;
---echo # Switching to connection 'default'.
connection default;
--echo # Reap REPAIR TABLE
--reap
@@ -1496,28 +1408,21 @@ delete from t3_temp_trans;
--echo # SET AUTOCOMMIT=1 is blocked by active FTWRL in
--echo # another connection.
--echo #
---echo # Switching to connection '$con_aux1'.
connection $con_aux1;
flush tables with read lock;
---echo # Switching to connection 'default'.
connection default;
set autocommit= 0;
---echo # Switching to connection '$con_aux1'.
connection $con_aux1;
unlock tables;
---echo # Switching to connection 'default'.
connection default;
--echo # Do some work so implicit commit in SET AUTOCOMMIT=1
--echo # is not a no-op.
insert into t3_trans values (1);
---echo # Switching to connection '$con_aux1'.
connection $con_aux1;
flush tables with read lock;
---echo # Switching to connection 'default'.
connection default;
--echo # Send:
--send set autocommit= 1
---echo # Switching to connection '$con_aux1'.
connection $con_aux1;
--echo # Wait until SET AUTOCOMMIT=1 is blocked.
let $wait_condition=
@@ -1526,7 +1431,6 @@ let $wait_condition=
info = "set autocommit= 1";
--source include/wait_condition.inc
unlock tables;
---echo # Switching to connection 'default'.
connection default;
--echo # Reap SET AUTOCOMMIT=1.
--reap
@@ -1538,11 +1442,9 @@ insert into t3_trans values (1);
set debug_sync='RESET';
set debug_sync='ha_commit_trans_after_acquire_commit_lock SIGNAL parked WAIT_FOR go';
--send set autocommit= 1
---echo # Switching to connection '$con_aux1'.
connection $con_aux1;
set debug_sync='now WAIT_FOR parked';
--send flush tables with read lock
---echo # Switching to connection '$con_aux2'.
connection $con_aux2;
--echo # Wait until FTWRL is blocked.
let $wait_condition=
@@ -1551,16 +1453,13 @@ let $wait_condition=
info = "flush tables with read lock";
--source include/wait_condition.inc
set debug_sync='now SIGNAL go';
---echo # Switching to connection 'default'.
connection default;
--echo # Reap SET AUTOCOMMIT=1.
--reap
---echo # Switching to connection '$con_aux1'.
connection $con_aux1;
--echo # Reap FTWRL.
--reap
unlock tables;
---echo # Switching to connection 'default'.
connection default;
delete from t3_trans;
set debug_sync= "RESET";
@@ -1698,44 +1597,33 @@ unlock tables;
--echo # Check that XA non-COMMIT statements are not and COMMIT is
--echo # blocked by active FTWRL in another connection
--echo #
---echo # Switching to connection '$con_aux1'.
connection $con_aux1;
flush tables with read lock;
---echo # Switching to connection 'default'.
connection default;
xa start 'test1';
---echo # Switching to connection '$con_aux1'.
connection $con_aux1;
unlock tables;
---echo # Switching to connection 'default'.
connection default;
insert into t3_trans values (1);
---echo # Switching to connection '$con_aux1'.
connection $con_aux1;
flush tables with read lock;
---echo # Switching to connection 'default'.
connection default;
xa end 'test1';
xa prepare 'test1';
xa rollback 'test1';
---echo # Switching to connection '$con_aux1'.
connection $con_aux1;
unlock tables;
---echo # Switching to connection 'default'.
connection default;
xa start 'test1';
insert into t3_trans values (1);
---echo # Switching to connection '$con_aux1'.
connection $con_aux1;
flush tables with read lock;
---echo # Switching to connection 'default'.
connection default;
connection default;
xa end 'test1';
xa prepare 'test1';
--echo # Send:
--send xa commit 'test1';
---echo # Switching to connection '$con_aux1'.
connection $con_aux1;
--echo # Wait until XA COMMIT is blocked.
let $wait_condition=
@@ -1744,7 +1632,6 @@ let $wait_condition=
info = "xa commit 'test1'";
--source include/wait_condition.inc
unlock tables;
---echo # Switching to connection 'default'.
connection default;
--echo # Reap XA COMMIT.
--reap
@@ -1758,11 +1645,9 @@ xa prepare 'test1';
set debug_sync='RESET';
set debug_sync='trans_xa_commit_after_acquire_commit_lock SIGNAL parked WAIT_FOR go';
--send xa commit 'test1'
---echo # Switching to connection '$con_aux1'.
connection $con_aux1;
set debug_sync='now WAIT_FOR parked';
--send flush tables with read lock
---echo # Switching to connection '$con_aux2'.
connection $con_aux2;
--echo # Wait until FTWRL is blocked.
let $wait_condition=
@@ -1771,16 +1656,13 @@ let $wait_condition=
info = "flush tables with read lock";
--source include/wait_condition.inc
set debug_sync='now SIGNAL go';
---echo # Switching to connection 'default'.
connection default;
--echo # Reap XA COMMIT.
--reap
---echo # Switching to connection '$con_aux1'.
connection $con_aux1;
--echo # Reap FTWRL.
--reap
unlock tables;
---echo # Switching to connection 'default'.
connection default;
delete from t3_trans;
set debug_sync= "RESET";
@@ -1841,13 +1723,10 @@ flush tables with read lock;
analyze table t3_trans;
unlock tables;
--echo #
---echo # Switching to connection '$con_aux1'.
connection $con_aux1;
flush tables with read lock;
---echo # Switching to connection 'default'.
connection default;
--send analyze table t3_trans
---echo # Switching to connection '$con_aux1'.
connection $con_aux1;
--echo # Check that ANALYZE TABLE is blocked.
let $wait_condition=
@@ -1856,7 +1735,6 @@ let $wait_condition=
info = "analyze table t3_trans";
--source include/wait_condition.inc
unlock tables;
---echo # Switching to connection 'default'.
connection default;
--echo # Reap ANALYZE TABLE
--reap
@@ -1920,13 +1798,10 @@ let $cleanup_stmt= alter table t3_temp_trans drop column c1;
begin;
insert into t3_trans values (1);
--echo #
---echo # Switching to connection '$con_aux1'.
connection $con_aux1;
flush tables with read lock;
---echo # Switching to connection 'default'.
connection default;
--send check table t1_base
---echo # Switching to connection '$con_aux1'.
connection $con_aux1;
--echo # Check that CHECK TABLE is blocked.
let $wait_condition=
@@ -1935,20 +1810,16 @@ let $wait_condition=
info = "check table t1_base";
--source include/wait_condition.inc
unlock tables;
---echo # Switching to connection 'default'.
connection default;
--echo # Reap CHECK TABLE
--reap
begin;
delete from t3_trans;
--echo #
---echo # Switching to connection '$con_aux1'.
connection $con_aux1;
flush tables with read lock;
---echo # Switching to connection 'default'.
connection default;
--send alter table t1_temp add column c1 int
---echo # Switching to connection '$con_aux1'.
connection $con_aux1;
--echo # Check that ALTER TABLE is blocked.
let $wait_condition=
@@ -1957,7 +1828,6 @@ let $wait_condition=
info = "alter table t1_temp add column c1 int";
--source include/wait_condition.inc
unlock tables;
---echo # Switching to connection 'default'.
connection default;
--echo # Reap ALTER TABLE
--reap
@@ -1974,21 +1844,17 @@ alter table t1_temp drop column c1;
begin;
insert into t1_base values (1);
insert into t3_trans values (1);
---echo # Switching to connection '$con_aux1'.
connection $con_aux1;
--echo # The below FTWRL should not be blocked by transaction in 'default'.
flush tables with read lock;
---echo # Switching to connection 'default'.
connection default;
--echo # Transaction still is able to read even with FTWRL active in another
--echo # connection.
select * from t1_base;
select * from t2_base;
select * from t3_trans;
---echo # Switching to connection '$con_aux1'.
connection $con_aux1;
unlock tables;
---echo # Switching to connection 'default'.
connection default;
commit;
delete from t1_base;
@@ -2004,11 +1870,9 @@ delete from t3_trans;
set debug_sync='RESET';
set debug_sync='execute_command_after_close_tables SIGNAL parked WAIT_FOR go';
--send insert into t1_base values (1)
---echo # Switching to connection '$con_aux1'.
connection $con_aux1;
set debug_sync='now WAIT_FOR parked';
--send flush tables with read lock
---echo # Switching to connection '$con_aux2'.
connection $con_aux2;
--echo # Wait until FTWRL is blocked.
let $wait_condition=
@@ -2018,7 +1882,6 @@ let $wait_condition=
--source include/wait_condition.inc
--echo # Try to run another INSERT and see that it is blocked.
--send insert into t2_base values (1);
---echo # Switching to connection 'con3'.
connection con3;
--echo # Wait until new INSERT is blocked.
let $wait_condition=
@@ -2027,20 +1890,16 @@ let $wait_condition=
info = "insert into t2_base values (1)";
--echo # Unblock INSERT in the first connection.
set debug_sync='now SIGNAL go';
---echo # Switching to connection 'default'.
connection default;
--echo # Reap first INSERT.
--reap
---echo # Switching to connection '$con_aux1'.
connection $con_aux1;
--echo # Reap FTWRL.
--reap
unlock tables;
---echo # Switching to connection '$con_aux2'.
connection $con_aux2;
--echo # Reap second INSERT.
--reap
---echo # Switching to connection 'default'.
connection default;
set debug_sync= "RESET";
delete from t1_base;
@@ -2056,22 +1915,18 @@ delete from t2_base;
--echo # only taken when there were such modifications.
--echo
flush tables with read lock;
---echo # Switching to connection '$con_aux1'.
connection $con_aux1;
--echo # The below FTWRL should not be blocked by transaction in 'default'.
flush tables with read lock;
---echo # Switching to connection 'default'.
connection default;
select * from t1_base;
select * from t3_trans;
commit;
---echo # Switching to connection '$con_aux1'.
connection $con_aux1;
select * from t1_base;
select * from t3_trans;
commit;
unlock tables;
---echo # Switching to connection 'default'.
connection default;
unlock tables;
diff --git a/mysql-test/t/flush_read_lock_kill.test b/mysql-test/t/flush_read_lock_kill.test
index a672fa5dfc5..d83e5b3f1df 100644
--- a/mysql-test/t/flush_read_lock_kill.test
+++ b/mysql-test/t/flush_read_lock_kill.test
@@ -26,7 +26,6 @@ SET DEBUG_SYNC= 'RESET';
CREATE TABLE t1 (kill_id INT) engine = InnoDB;
INSERT INTO t1 VALUES(connection_id());
---echo # Switching to connection 'default'.
connection default;
--echo # Start transaction.
BEGIN;
@@ -38,7 +37,6 @@ SET DEBUG_SYNC='ha_commit_trans_after_acquire_commit_lock SIGNAL acquired WAIT_F
--echo # Sending:
--send COMMIT
---echo # Switching to 'con1'.
connection con1;
--echo # Wait till COMMIT acquires protection against global read
--echo # lock and pauses.
@@ -46,7 +44,6 @@ SET DEBUG_SYNC='now WAIT_FOR acquired';
--echo # Sending:
send FLUSH TABLES WITH READ LOCK;
---echo # Switching to 'con2'.
connection con2;
SELECT ((@id := kill_id) - kill_id) FROM t1 LIMIT 1;
@@ -61,19 +58,16 @@ let $wait_condition=
--echo # Kill connection 'con1'.
KILL CONNECTION @id;
---echo # Switching to 'con1'.
connection con1;
--echo # Try to reap FLUSH TABLES WITH READ LOCK,
--echo # it fail due to killed statement and connection.
--error 1317,2013
reap;
---echo # Switching to 'con2'.
connection con2;
--echo # Resume COMMIT.
SET DEBUG_SYNC='now SIGNAL go';
---echo # Switching to 'default'.
connection default;
--echo # Reaping COMMIT.
--reap
diff --git a/mysql-test/t/func_misc.test b/mysql-test/t/func_misc.test
index 47afb6664a5..222608c0579 100644
--- a/mysql-test/t/func_misc.test
+++ b/mysql-test/t/func_misc.test
@@ -617,7 +617,6 @@ select is_free_lock('test');
select is_used_lock('test') = connection_id();
connect (con1,localhost,root,,);
---echo # -> Switching to connection 'con1'
connection con1;
--echo # IS_USED_LOCK, IS_FREE_LOCK: the lock is acquired in another
--echo # connection
@@ -630,7 +629,6 @@ select get_lock('test', 0);
--echo # RELEASE_LOCK returns 0 if the lock belongs to another connection
select release_lock('test');
---echo # -> Switching to connection 'default'
connection default;
--echo # RELEASE_LOCK returns 1 if it successfully releases a lock
@@ -640,23 +638,19 @@ select release_lock('test');
--echo # Test that get_lock() returns NULL if error.
select get_lock('test', 0);
---echo # -> Switching to connection 'con1'
connection con1;
create table t1 select connection_id() as id;
send select get_lock('test', 7200);
---echo # -> Switching to connection 'default'
connection default;
let $wait_condition= SELECT count(*) > 0 FROM information_schema.processlist WHERE info LIKE 'select%' AND state='User lock';
source include/wait_condition.inc;
select (@id := id) - id from t1;
kill query @id;
---echo # -> Switching to connection 'con1'
connection con1;
reap;
---echo # -> Switching to connection 'default'
connection default;
--echo # GET_LOCK() works recursively
@@ -686,12 +680,10 @@ select release_lock('test3');
--echo # Deadlocks are detected e.g. in case of a mutual wait
select get_lock('test1', 0);
---echo # -> Switching to connection 'con1'
connection con1;
select get_lock('test2', 0);
send select get_lock('test1', 7200);
---echo # -> Switching to connection 'default'
connection default;
let $wait_condition= SELECT count(*) > 0 FROM information_schema.processlist WHERE info LIKE 'select%' AND state='User lock';
source include/wait_condition.inc;
@@ -700,13 +692,11 @@ select get_lock('test2', 7200);
select release_lock('test1');
---echo # -> Switching to connection 'con1'
connection con1;
reap;
select release_lock('test2');
select release_lock('test1');
---echo # -> Switching to connection 'default'
connection default;
--echo # LOCK/UNLOCK TABLES works fine with a user lock.
@@ -738,12 +728,10 @@ select release_lock('test2');
--echo # are detected OK.
select get_lock('test', 0);
---echo # -> Switching to connection 'con1'
connection con1;
lock table t1 write;
send select get_lock('test', 7200);
---echo # -> Switching to connection 'default'
connection default;
let $wait_condition= SELECT count(*) > 0 FROM information_schema.processlist WHERE info LIKE 'select%' AND state = 'User lock';
source include/wait_condition.inc;
@@ -752,7 +740,6 @@ lock table t1 read;
select release_lock('test');
---echo # -> Switching to connection 'con1'
connection con1;
reap;
select release_lock('test');
@@ -1071,7 +1058,6 @@ DROP TABLE t2;
--echo # MDEV-4018 : Microseconds in GET_LOCK()
--echo #
---echo # -> Switching to connection 'default'
connection default;
select is_used_lock('test') = connection_id();
@@ -1079,7 +1065,6 @@ select is_used_lock('test') = connection_id();
select get_lock('test', 0);
connect (con1,localhost,root,,);
---echo # -> Switching to connection 'con1'
connection con1;
select is_used_lock('test') = connection_id();
select get_lock('test', 0);
@@ -1089,7 +1074,6 @@ select get_lock('test', 0.1);
select get_lock('test', 0.000001);
select get_lock('test', 0.0000000000000001);
---echo # -> Switching to connection 'default'
connection default;
select is_used_lock('test') = connection_id();
select release_lock('test');
diff --git a/mysql-test/t/grant.test b/mysql-test/t/grant.test
index 1d828cd8693..d3f84596106 100644
--- a/mysql-test/t/grant.test
+++ b/mysql-test/t/grant.test
@@ -1037,8 +1037,6 @@ GRANT ALL PRIVILEGES ON test.* TO mysqltest_1@localhost;
# Test.
--connect (bug9504_con1,localhost,mysqltest_1,,)
---echo
---echo ---> connection: bug9504_con1
# - Check that we can switch to the db;
@@ -1065,9 +1063,6 @@ SELECT mysqltest4.f_inv();
# Cleanup.
--connection default
---echo
---echo ---> connection: default
-
--disconnect bug9504_con1
DROP DATABASE mysqltest1;
@@ -1106,8 +1101,6 @@ CREATE PROCEDURE mysqltest1.p1() SQL SECURITY INVOKER
# Test.
--connect (bug27337_con1,localhost,mysqltest_1,,mysqltest2)
---echo
---echo ---> connection: bug27337_con1
--error ER_TABLEACCESS_DENIED_ERROR
CREATE TABLE t1(c INT);
@@ -1120,8 +1113,6 @@ CREATE TABLE t1(c INT);
--disconnect bug27337_con1
--connect (bug27337_con2,localhost,mysqltest_1,,mysqltest2)
---echo
---echo ---> connection: bug27337_con2
--error ER_TABLEACCESS_DENIED_ERROR
CREATE TABLE t1(c INT);
@@ -1131,9 +1122,6 @@ SHOW TABLES;
# Cleanup.
--connection default
---echo
---echo ---> connection: default
-
--disconnect bug27337_con2
DROP DATABASE mysqltest1;
@@ -1162,8 +1150,6 @@ GRANT SELECT ON mysqltest2.t2 TO mysqltest_2@localhost;
# Test.
--connect (bug27337_con1,localhost,mysqltest_1,,mysqltest1)
---echo
---echo ---> connection: bug27337_con1
SHOW TABLES FROM mysqltest1;
@@ -1172,8 +1158,6 @@ PREPARE stmt1 FROM 'SHOW TABLES FROM mysqltest1';
EXECUTE stmt1;
--connect (bug27337_con2,localhost,mysqltest_2,,mysqltest2)
---echo
---echo ---> connection: bug27337_con2
SHOW COLUMNS FROM mysqltest2.t2;
@@ -1182,15 +1166,11 @@ PREPARE stmt2 FROM 'SHOW COLUMNS FROM mysqltest2.t2';
EXECUTE stmt2;
--connection default
---echo
---echo ---> connection: default
REVOKE SELECT ON mysqltest1.t1 FROM mysqltest_1@localhost;
REVOKE SELECT ON mysqltest2.t2 FROM mysqltest_2@localhost;
--connection bug27337_con1
---echo
---echo ---> connection: bug27337_con1
--error ER_DBACCESS_DENIED_ERROR
SHOW TABLES FROM mysqltest1;
@@ -1199,8 +1179,6 @@ SHOW TABLES FROM mysqltest1;
EXECUTE stmt1;
--connection bug27337_con2
---echo
---echo ---> connection: bug27337_con2
--error ER_TABLEACCESS_DENIED_ERROR
SHOW COLUMNS FROM mysqltest2.t2;
@@ -1211,8 +1189,6 @@ EXECUTE stmt2;
# Cleanup.
--connection default
---echo
---echo ---> connection: default
--disconnect bug27337_con1
--disconnect bug27337_con2
@@ -1321,8 +1297,6 @@ GRANT SELECT(b) ON t1 TO testuser@localhost;
GRANT SELECT ON t2 TO testuser@localhost;
GRANT SELECT ON mysqltest2.* TO testuser@localhost;
---echo
---echo # Connection: bug57952_con1 (testuser@localhost, db: mysqltest1)
--connect (bug57952_con1,localhost,testuser,,mysqltest1)
PREPARE s1 FROM 'SELECT b FROM t1';
PREPARE s2 FROM 'SELECT a FROM t2';
@@ -1336,16 +1310,12 @@ CALL p1;
CALL p2;
CALL p3;
---echo
---echo # Connection: default
--connection default
REVOKE SELECT ON t1 FROM testuser@localhost;
GRANT SELECT(a) ON t1 TO testuser@localhost;
REVOKE SELECT ON t2 FROM testuser@localhost;
REVOKE SELECT ON mysqltest2.* FROM testuser@localhost;
---echo
---echo # Connection: bug57952_con1 (testuser@localhost, db: mysqltest1)
--connection bug57952_con1
--echo # - Check column-level privileges...
--error ER_COLUMNACCESS_DENIED_ERROR
@@ -1380,8 +1350,6 @@ EXECUTE s3;
--error ER_DBACCESS_DENIED_ERROR
CALL p3;
---echo
---echo # Connection: default
--connection default
--disconnect bug57952_con1
DROP DATABASE mysqltest1;
@@ -1410,14 +1378,10 @@ grant execute on procedure mysqltest1.p1 to mysqluser1@localhost;
--echo # in privilege tables and in in-memory structures.
show grants for mysqluser1@localhost;
select db, routine_name, routine_type, proc_priv from mysql.procs_priv where user='mysqluser1' and host='localhost';
---echo #
---echo # Create connection 'bug_36544_con1' as 'mysqluser1@localhost'.
--connect (bug36544_con1,localhost,mysqluser1,,)
call mysqltest1.p1();
select mysqltest1.f1();
---echo #
---echo # Switch to connection 'default'.
--connection default
drop user mysqluser1@localhost;
@@ -1425,7 +1389,6 @@ drop user mysqluser1@localhost;
--echo # Test that dropping of user is properly reflected in
--echo # both privilege tables and in in-memory structures.
--echo #
---echo # Switch to connection 'bug36544_con1'.
--connection bug36544_con1
--echo # The connection cold be alive but should not be able to
--echo # access to any of the stored routines.
@@ -1435,8 +1398,6 @@ call mysqltest1.p1();
select mysqltest1.f1();
--disconnect bug36544_con1
---echo #
---echo # Switch to connection 'default'.
--connection default
--echo #
--echo # Now create user with the same name and check that he
@@ -1444,16 +1405,12 @@ select mysqltest1.f1();
create user mysqluser1@localhost;
show grants for mysqluser1@localhost;
select db, routine_name, routine_type, proc_priv from mysql.procs_priv where user='mysqluser1' and host='localhost';
---echo #
---echo # Create connection 'bug_36544_con2' as 'mysqluser1@localhost'.
--connect (bug36544_con2,localhost,mysqluser1,,)
--echo # Newly created user should not be able to access any of the routines.
--error ER_PROCACCESS_DENIED_ERROR
call mysqltest1.p1();
--error ER_PROCACCESS_DENIED_ERROR
select mysqltest1.f1();
---echo #
---echo # Switch to connection 'default'.
--connection default
--echo #
@@ -1482,23 +1439,18 @@ grant select on mysqltest1.t11 to mysqluser1@localhost;
show grants for mysqluser1@localhost;
select db, routine_name, routine_type, proc_priv from mysql.procs_priv where user='mysqluser1' and host='localhost';
select db, table_name, table_priv from mysql.tables_priv where user='mysqluser1' and host='localhost';
---echo #
---echo # Switch to connection 'bug36544_con2'.
--connection bug36544_con2
call mysqltest1.p1();
select mysqltest1.f1();
select * from mysqltest1.t11;
select * from mysqltest1.t22;
---echo #
---echo # Switch to connection 'default'.
--connection default
rename user mysqluser1@localhost to mysqluser10@localhost;
--echo #
--echo # Test that there are no privileges left for mysqluser1.
--echo #
---echo # Switch to connection 'bug36544_con2'.
--connection bug36544_con2
--echo # The connection cold be alive but should not be able to
--echo # access to any of the stored routines or tables.
@@ -1512,8 +1464,6 @@ select * from mysqltest1.t11;
select * from mysqltest1.t22;
--disconnect bug36544_con2
---echo #
---echo # Switch to connection 'default'.
--connection default
--echo #
--echo # Now create user with the old name and check that he
@@ -1522,8 +1472,6 @@ create user mysqluser1@localhost;
show grants for mysqluser1@localhost;
select db, routine_name, routine_type, proc_priv from mysql.procs_priv where user='mysqluser1' and host='localhost';
select db, table_name, table_priv from mysql.tables_priv where user='mysqluser1' and host='localhost';
---echo #
---echo # Create connection 'bug_36544_con3' as 'mysqluser1@localhost'.
--connect (bug36544_con3,localhost,mysqluser1,,)
--echo # Newly created user should not be able to access to any of the
--echo # stored routines or tables.
@@ -1537,8 +1485,6 @@ select * from mysqltest1.t11;
select * from mysqltest1.t22;
--disconnect bug36544_con3
---echo #
---echo # Switch to connection 'default'.
--connection default
--echo #
--echo # Now check that privileges became associated with a new user
@@ -1547,8 +1493,6 @@ select * from mysqltest1.t22;
show grants for mysqluser10@localhost;
select db, routine_name, routine_type, proc_priv from mysql.procs_priv where user='mysqluser10' and host='localhost';
select db, table_name, table_priv from mysql.tables_priv where user='mysqluser10' and host='localhost';
---echo #
---echo # Create connection 'bug_36544_con4' as 'mysqluser10@localhost'.
--connect (bug36544_con4,localhost,mysqluser10,,)
call mysqltest1.p1();
select mysqltest1.f1();
@@ -1556,8 +1500,6 @@ select * from mysqltest1.t11;
select * from mysqltest1.t22;
--disconnect bug36544_con4
---echo #
---echo # Switch to connection 'default'.
--connection default
--echo #
--echo # Clean-up.
@@ -1905,8 +1847,6 @@ GRANT USAGE ON *.* TO mysqltest_u1@localhost;
--echo
SHOW GRANTS FOR mysqltest_u1@localhost;
---echo
---echo # connection: con1 (mysqltest_u1@mysqltest_db1)
--connect (con1,localhost,mysqltest_u1,,mysqltest_db1)
--connection con1
@@ -1914,8 +1854,6 @@ SHOW GRANTS FOR mysqltest_u1@localhost;
--error ER_TABLEACCESS_DENIED_ERROR
SHOW CREATE TABLE t1;
---echo
---echo # connection: default
--connection default
--disconnect con1
@@ -2191,7 +2129,6 @@ DROP DATABASE IF EXISTS no_such_db;
CREATE DATABASE secret;
GRANT USAGE ON *.* TO untrusted@localhost;
---echo # Connection con1
connect (con1, localhost, untrusted);
SHOW GRANTS;
SHOW DATABASES;
@@ -2204,7 +2141,6 @@ CREATE PROCEDURE no_such_db.foo() BEGIN END;
--error ER_DBACCESS_DENIED_ERROR
CREATE PROCEDURE secret.peek_at_secret() BEGIN END;
---echo # Connection default
--connection default
disconnect con1;
DROP USER untrusted@localhost;
diff --git a/mysql-test/t/grant2.test b/mysql-test/t/grant2.test
index a40fd2afb18..5e8a130feea 100644
--- a/mysql-test/t/grant2.test
+++ b/mysql-test/t/grant2.test
@@ -744,8 +744,6 @@ CREATE TABLE mysqltest_db2.t2_1(a INT);
--echo # sql_command enum).
--echo ###########################################################################
---echo
---echo # -- connect con1, mysqltest_u1@localhost, mysqltest_db1
--connect (con1,localhost,mysqltest_u1,,mysqltest_db1)
--echo #
@@ -931,8 +929,6 @@ DROP TEMPORARY TABLE t1;
--echo # table once it is created.
--echo ###########################################################################
---echo
---echo # -- connect con2, mysqltest_u2@localhost, mysqltest_db1
--connect (con2,localhost,mysqltest_u2,,mysqltest_db1)
--error ER_DBACCESS_DENIED_ERROR
@@ -957,8 +953,6 @@ DROP TEMPORARY TABLE t4;
--echo # context, even by user without any privileges on tables.
--echo ###########################################################################
---echo
---echo # -- connect con3, mysqltest_u4@localhost, mysqltest_db1
--connect (con3,localhost,mysqltest_u4,,mysqltest_db1)
CALL p1();
@@ -975,8 +969,6 @@ DROP TEMPORARY TABLE t4;
--echo # a temporary table into the underlying-table-list.
--echo ###########################################################################
---echo
---echo # -- connect con4, mysqltest_u5@localhost, mysqltest_db1
--connect (con4,localhost,mysqltest_u5,,mysqltest_db1)
CREATE TEMPORARY TABLE t7(a INT);
@@ -1004,21 +996,12 @@ DROP TEMPORARY TABLE t9;
--echo # That's all. Cleanup.
--echo ###########################################################################
---echo
---echo # -- connection: default
--connection default
---echo # -- disconnect con1
--echo # All remaining temporary tables are automatically dropped.
--disconnect con1
-
---echo # -- disconnect con2
--disconnect con2
-
---echo # -- disconnect con3
--disconnect con3
-
---echo # -- disconnect con4
--disconnect con4
SET GLOBAL keycache1.key_buffer_size = 0;
diff --git a/mysql-test/t/grant4.test b/mysql-test/t/grant4.test
index a3578c9b85a..2715b7c7145 100644
--- a/mysql-test/t/grant4.test
+++ b/mysql-test/t/grant4.test
@@ -183,7 +183,6 @@ flush table mysqltest_db1.t1;
--remove_file $MYSQLD_DATADIR/mysqltest_db1/t1.MYI
--copy_file std_data/corrupt_t1.MYI $MYSQLD_DATADIR/mysqltest_db1/t1.MYI
---echo # Switching to connection 'con1'.
connection con1;
check table mysqltest_db1.t1;
--echo # The below statement should fail before repairing t1.
@@ -199,7 +198,6 @@ repair table mysqltest_db1.t1;
--echo # Clean-up.
disconnect con1;
--source include/wait_until_disconnected.inc
---echo # Switching to connection 'default'.
connection default;
drop database mysqltest_db1;
drop user mysqltest_u1@localhost;
diff --git a/mysql-test/t/information_schema.test b/mysql-test/t/information_schema.test
index f1e78441852..13f368b6dbe 100644
--- a/mysql-test/t/information_schema.test
+++ b/mysql-test/t/information_schema.test
@@ -1489,16 +1489,13 @@ drop tables if exists t1, t2, t3;
create table t1 (i int);
create table t2 (j int primary key auto_increment);
connect (con3726_1,localhost,root,,test);
---echo # Switching to connection 'con3726_1'
connection con3726_1;
lock table t2 read;
connect (con3726_2,localhost,root,,test);
---echo # Switching to connection 'con3726_2'
connection con3726_2;
--echo # RENAME below will be blocked by 'lock table t2 read' above but
--echo # will add two pending requests for exclusive metadata locks.
--send rename table t2 to t3
---echo # Switching to connection 'default'
connection default;
let $wait_condition=
select count(*) = 1 from information_schema.processlist
@@ -1510,13 +1507,10 @@ select table_name, column_name, data_type from information_schema.columns
where table_schema = 'test' and table_name in ('t1', 't2');
select table_name, auto_increment from information_schema.tables
where table_schema = 'test' and table_name in ('t1', 't2');
---echo # Switching to connection 'con3726_1'
connection con3726_1;
unlock tables;
---echo # Switching to connection 'con3726_2'
connection con3726_2;
--reap
---echo # Switching to connection 'default'
connection default;
disconnect con3726_1;
disconnect con3726_2;
@@ -1604,10 +1598,8 @@ create view v1 as select t1.a, t1.b from t1;
alter table t1 change b c int;
lock table t1 read;
connect(con1, localhost, root,,);
---echo # --> connection con1
connection con1;
send flush tables;
---echo # --> connection default
connection default;
let $wait_condition=
select count(*) = 1 from information_schema.processlist
@@ -1623,13 +1615,11 @@ unlock tables;
--echo # Cleanup.
--echo #
---echo # --> connection con1
connection con1;
--echo # Reaping 'flush tables'
reap;
disconnect con1;
--source include/wait_until_disconnected.inc
---echo # --> connection default
connection default;
drop table t1;
drop view v1;
@@ -1663,17 +1653,11 @@ create table t2 (k int);
--echo # blocked.
lock tables t2 read;
---echo #
---echo # Switching to connection 'con12828477_1'.
---echo #
connect (con12828477_1, localhost, root,,mysqltest);
--echo # The below RENAME should wait on 't2' while
--echo # keeping X lock on 't1'.
--send rename table t1 to t3, t2 to t1, t3 to t2
---echo #
---echo # Switching to connection 'con12828477_2'.
---echo #
connect (con12828477_2, localhost, root,,mysqltest);
--echo # Wait while the above RENAME is blocked.
let $wait_condition=
@@ -1686,9 +1670,6 @@ let $wait_condition=
--echo # blocked on 't1' because of RENAME.
--send select table_name, auto_increment from information_schema.tables where table_schema='mysqltest'
---echo #
---echo # Switching to connection 'con12828477_3'.
---echo #
connect (con12828477_3, localhost, root,,mysqltest);
--echo # Wait while the above SELECT is blocked.
let $wait_condition=
@@ -1701,31 +1682,19 @@ let $wait_condition=
--echo # Check that it holds no lock on 't0' so it can be renamed.
rename table t0 to t4;
---echo #
---echo # Switching to connection 'default'.
---echo #
connection default;
--echo #
--echo # Unblock the first RENAME.
unlock tables;
---echo #
---echo # Switching to connection 'con12828477_1'.
---echo #
connection con12828477_1;
--echo # Reap the first RENAME
--reap
---echo #
---echo # Switching to connection 'con12828477_2'.
---echo #
connection con12828477_2;
--echo # Reap SELECT to I_S.
--reap
---echo #
---echo # Switching to connection 'default'.
---echo #
connection default;
--echo #
@@ -1739,17 +1708,11 @@ rename table t4 to t0;
--echo # blocked.
lock tables t2 read;
---echo #
---echo # Switching to connection 'con12828477_1'.
---echo #
connection con12828477_1;
--echo # The below RENAME should wait on 't2' while
--echo # keeping X lock on 't1'.
--send rename table t1 to t3, t2 to t1, t3 to t2
---echo #
---echo # Switching to connection 'con12828477_2'.
---echo #
connection con12828477_2;
--echo # Wait while the above RENAME is blocked.
let $wait_condition=
@@ -1762,9 +1725,6 @@ let $wait_condition=
--echo # blocked on 't1' because of RENAME.
--send select event_object_table, trigger_name from information_schema.triggers where event_object_schema='mysqltest'
---echo #
---echo # Switching to connection 'con12828477_3'.
---echo #
connection con12828477_3;
--echo # Wait while the above SELECT is blocked.
let $wait_condition=
@@ -1777,31 +1737,19 @@ let $wait_condition=
--echo # Check that it holds no lock on 't0' so it can be renamed.
rename table t0 to t4;
---echo #
---echo # Switching to connection 'default'.
---echo #
connection default;
--echo #
--echo # Unblock the first RENAME.
unlock tables;
---echo #
---echo # Switching to connection 'con12828477_1'.
---echo #
connection con12828477_1;
--echo # Reap the first RENAME
--reap
---echo #
---echo # Switching to connection 'con12828477_2'.
---echo #
connection con12828477_2;
--echo # Reap SELECT to I_S.
--reap
---echo #
---echo # Switching to connection 'default'.
---echo #
connection default;
disconnect con12828477_1;
disconnect con12828477_2;
diff --git a/mysql-test/t/innodb_mysql_lock.test b/mysql-test/t/innodb_mysql_lock.test
index b3c52a1b1cf..cb57c092e40 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
@@ -85,7 +81,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 +90,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,13 +107,11 @@ 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;
@@ -143,16 +135,13 @@ DROP TABLE IF EXISTS t1;
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
@@ -162,15 +151,12 @@ let $wait_condition=
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;
@@ -187,18 +173,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 +189,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 +212,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 +231,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 +241,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 +269,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 +284,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;
diff --git a/mysql-test/t/innodb_mysql_lock2.test b/mysql-test/t/innodb_mysql_lock2.test
index 640f9652462..f319fe23568 100644
--- a/mysql-test/t/innodb_mysql_lock2.test
+++ b/mysql-test/t/innodb_mysql_lock2.test
@@ -789,12 +789,10 @@ begin;
--echo # Acquire SR metadata lock on t1 and LOCK_S row-locks on its rows.
insert into t2 select count(*) from t1;
---echo # Switching to connection 'con1'.
connection con1;
--echo # Sending:
--send alter table t1 add column j int
---echo # Switching to connection 'default'.
connection default;
--echo # Wait until ALTER is blocked because it tries to upgrade SNW
--echo # metadata lock to X lock.
@@ -817,12 +815,10 @@ insert into t1 values (6);
--echo # Unblock ALTER TABLE.
commit;
---echo # Switching to connection 'con1'.
connection con1;
--echo # Reaping ALTER TABLE.
--reap
---echo # Switching to connection 'default'.
connection default;
--echo #
@@ -838,12 +834,10 @@ begin;
--echo # Acquire SR metadata lock on t1.
select * from t1;
---echo # Switching to connection 'con1'.
connection con1;
--echo # Sending:
--send alter table t1 rebuild partition p0
---echo # Switching to connection 'default'.
connection default;
--echo # Wait until ALTER is blocked because of active SR lock.
let $wait_condition=
@@ -859,12 +853,10 @@ insert into t2 select count(*) from t1;
--echo # Unblock ALTER TABLE.
commit;
---echo # Switching to connection 'con1'.
connection con1;
--echo # Reaping ALTER TABLE.
--reap
---echo # Switching to connection 'default'.
connection default;
disconnect con1;
--echo # Clean-up.
diff --git a/mysql-test/t/innodb_mysql_sync.test b/mysql-test/t/innodb_mysql_sync.test
index 31365cb8db8..66935f811d7 100644
--- a/mysql-test/t/innodb_mysql_sync.test
+++ b/mysql-test/t/innodb_mysql_sync.test
@@ -22,20 +22,17 @@ DROP TABLE IF EXISTS t1;
CREATE TABLE t1 (id INT) engine=innodb;
connect (con2, localhost, root);
---echo # Connection 1
--echo # Start optimizing table
connection default;
SET DEBUG_SYNC='ha_admin_try_alter SIGNAL optimize_started WAIT_FOR table_altered';
--send OPTIMIZE TABLE t1
---echo # Connection 2
--echo # Change table to engine=memory
connection con2;
SET DEBUG_SYNC='now WAIT_FOR optimize_started';
ALTER TABLE t1 engine=memory;
SET DEBUG_SYNC='now SIGNAL table_altered';
---echo # Connection 1
--echo # Complete optimization
connection default;
--reap
@@ -59,24 +56,20 @@ connection default;
CREATE TABLE t1(a INT) ENGINE= InnoDB;
---echo # Connection con1
connection con1;
SET DEBUG_SYNC= "ha_admin_open_ltable SIGNAL opening WAIT_FOR dropped";
--echo # Sending:
--send OPTIMIZE TABLE t1
---echo # Connection default
connection default;
SET DEBUG_SYNC= "now WAIT_FOR opening";
DROP TABLE t1;
SET DEBUG_SYNC= "now SIGNAL dropped";
---echo # Connection con1
connection con1;
--echo # Reaping: OPTIMIZE TABLE t1
--reap
---echo # Connection default
connection default;
disconnect con1;
SET DEBUG_SYNC= "RESET";
@@ -123,26 +116,22 @@ DROP TABLE IF EXISTS t1;
CREATE TABLE t1 (a INT) ENGINE=InnoDB;
INSERT INTO t1 VALUES (1), (2);
---echo # Connection con1
connect (con1,localhost,root);
let $ID= `SELECT connection_id()`;
SET DEBUG_SYNC= 'ha_admin_open_ltable SIGNAL waiting WAIT_FOR killed';
--echo # Sending:
--send OPTIMIZE TABLE t1
---echo # Connection default
connection default;
SET DEBUG_SYNC= 'now WAIT_FOR waiting';
--replace_result $ID ID
eval KILL QUERY $ID;
SET DEBUG_SYNC= 'now SIGNAL killed';
---echo # Connection con1
connection con1;
--echo # Reaping: OPTIMIZE TABLE t1
--reap
---echo # Connection default
connection default;
DROP TABLE t1;
SET DEBUG_SYNC= 'RESET';
@@ -164,7 +153,6 @@ connect(con2,localhost,root);
--echo # Test 1: Secondary index, should not block reads (original test case).
---echo # Connection default
connection default;
CREATE DATABASE db1;
CREATE TABLE db1.t1(id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, value INT) engine=innodb;
@@ -173,7 +161,6 @@ SET DEBUG_SYNC= "alter_table_inplace_after_lock_downgrade SIGNAL manage WAIT_FOR
--echo # Sending:
--send ALTER TABLE db1.t1 ADD INDEX(value)
---echo # Connection con1
connection con1;
SET DEBUG_SYNC= "now WAIT_FOR manage";
# Neither of these two statements should be blocked
@@ -181,7 +168,6 @@ USE db1;
SELECT * FROM t1;
SET DEBUG_SYNC= "now SIGNAL query";
---echo # Connection default
connection default;
--echo # Reaping: ALTER TABLE db1.t1 ADD INDEX(value)
--reap
@@ -194,7 +180,6 @@ SET DEBUG_SYNC= "alter_table_inplace_after_lock_downgrade SIGNAL manage WAIT_FOR
--echo # Sending:
--send ALTER TABLE t1 ADD UNIQUE INDEX(a), LOCK=SHARED
---echo # Connection con1
connection con1;
SET DEBUG_SYNC= "now WAIT_FOR manage";
USE test;
@@ -202,7 +187,6 @@ SELECT * FROM t1;
--echo # Sending:
--send UPDATE t1 SET a=NULL
---echo # Connection con2
connection con2;
--echo # Waiting for SELECT to be blocked by the metadata lock on t1
let $wait_condition= SELECT COUNT(*)= 1 FROM information_schema.processlist
@@ -211,33 +195,28 @@ let $wait_condition= SELECT COUNT(*)= 1 FROM information_schema.processlist
--source include/wait_condition.inc
SET DEBUG_SYNC= "now SIGNAL query";
---echo # Connection default
connection default;
--echo # Reaping: ALTER TABLE t1 ADD UNIQUE INDEX(a)
--reap
---echo # Connection con1
connection con1;
--echo # Reaping: UPDATE t1 SET a=NULL
--reap
--echo # Test 3: Primary index (explicit), should block writes.
---echo # Connection default
connection default;
ALTER TABLE t1 DROP INDEX a;
SET DEBUG_SYNC= "alter_table_inplace_after_lock_downgrade SIGNAL manage WAIT_FOR query";
--echo # Sending:
--send ALTER TABLE t1 ADD PRIMARY KEY (a), LOCK=SHARED
---echo # Connection con1
connection con1;
SET DEBUG_SYNC= "now WAIT_FOR manage";
SELECT * FROM t1;
--echo # Sending:
--send UPDATE t1 SET a=NULL
---echo # Connection con2
connection con2;
--echo # Waiting for SELECT to be blocked by the metadata lock on t1
let $wait_condition= SELECT COUNT(*)= 1 FROM information_schema.processlist
@@ -246,31 +225,26 @@ let $wait_condition= SELECT COUNT(*)= 1 FROM information_schema.processlist
--source include/wait_condition.inc
SET DEBUG_SYNC= "now SIGNAL query";
---echo # Connection default
connection default;
--echo # Reaping: ALTER TABLE t1 ADD PRIMARY KEY (a)
--reap
---echo # Connection con1
connection con1;
--echo # Reaping: UPDATE t1 SET a=NULL
--reap
--echo # Test 4: Secondary unique index, should not block reads.
---echo # Connection default
connection default;
SET DEBUG_SYNC= "alter_table_inplace_after_lock_downgrade SIGNAL manage WAIT_FOR query";
--echo # Sending:
--send ALTER TABLE t1 ADD UNIQUE (b)
---echo # Connection con1
connection con1;
SET DEBUG_SYNC= "now WAIT_FOR manage";
SELECT * FROM t1;
SET DEBUG_SYNC= "now SIGNAL query";
---echo # Connection default
connection default;
--echo # Reaping: ALTER TABLE t1 ADD UNIQUE (b)
--reap
@@ -293,14 +267,12 @@ DROP TABLE IF EXISTS t1;
CREATE TABLE t1(a INT NOT NULL, b INT NOT NULL) engine=innodb;
INSERT INTO t1 VALUES (1, 12345), (2, 23456);
---echo # Connection con1
--connect (con1,localhost,root)
SET SESSION debug_dbug= "+d,alter_table_rollback_new_index";
--error ER_UNKNOWN_ERROR
ALTER TABLE t1 ADD PRIMARY KEY(a);
SELECT * FROM t1;
---echo # Connection default
--connection default
SELECT * FROM t1;
DROP TABLE t1;
@@ -322,20 +294,17 @@ CREATE DATABASE db1;
connect(con1, localhost, root);
connect(con2, localhost, root);
---echo # Connection con1
connection con1;
SET DEBUG_SYNC= 'after_innobase_rename_table SIGNAL locked WAIT_FOR continue';
--echo # Sending:
--send ALTER TABLE t1 RENAME db1.t1
---echo # Connection con2
connection con2;
SET DEBUG_SYNC= 'now WAIT_FOR locked';
--echo # DROP DATABASE db1 should now be blocked by ALTER TABLE
--echo # Sending:
--send DROP DATABASE db1
---echo # Connection default
connection default;
--echo # Check that DROP DATABASE is blocked by IX lock on db1
let $wait_condition=
@@ -346,17 +315,14 @@ let $wait_condition=
--echo # Resume ALTER TABLE
SET DEBUG_SYNC= 'now SIGNAL continue';
---echo # Connection con1
connection con1;
--echo # Reaping: ALTER TABLE t1 RENAME db1.t1;
--reap
---echo # Connection con2
connection con2;
--echo # Reaping: DROP DATABASE db1
--reap
---echo # Connection default;
connection default;
SET DEBUG_SYNC= 'RESET';
disconnect con1;
@@ -384,7 +350,6 @@ SET SESSION lock_wait_timeout= 1;
--echo # 1: In-place + writes blocked.
--echo #
---echo # Connection default
--connection default
SET DEBUG_SYNC= 'alter_opened_table SIGNAL opened WAIT_FOR continue1';
SET DEBUG_SYNC= 'alter_table_inplace_after_lock_upgrade SIGNAL upgraded WAIT_FOR continue2';
@@ -393,7 +358,6 @@ SET DEBUG_SYNC= 'alter_table_before_main_binlog SIGNAL binlog WAIT_FOR continue4
--echo # Sending:
--send ALTER TABLE t1 ADD INDEX i1(b), ALGORITHM= INPLACE, LOCK= SHARED
---echo # Connection con1;
--connection con1
SET DEBUG_SYNC= 'now WAIT_FOR opened';
--echo # At this point, neither reads nor writes should be blocked.
@@ -425,7 +389,6 @@ SELECT * FROM t1;
INSERT INTO t1 VALUES (6,6);
SET DEBUG_SYNC= 'now SIGNAL continue4';
---echo # Connection default
--connection default
--echo # Reaping ALTER TABLE ...
--reap
@@ -442,7 +405,6 @@ SET DEBUG_SYNC= 'alter_table_before_main_binlog SIGNAL binlog WAIT_FOR continue3
--echo # Sending:
--send ALTER TABLE t1 ADD INDEX i2(b), ALGORITHM= COPY, LOCK= SHARED
---echo # Connection con1;
--connection con1
SET DEBUG_SYNC= 'now WAIT_FOR opened';
--echo # At this point, neither reads nor writes should be blocked.
@@ -465,7 +427,6 @@ SELECT * FROM t1 limit 1;
INSERT INTO t1 VALUES (5,5);
SET DEBUG_SYNC= 'now SIGNAL continue3';
---echo # Connection default
--connection default
--echo # Reaping ALTER TABLE ...
--reap
@@ -479,7 +440,6 @@ DELETE FROM t1 WHERE a= 3;
--echo # TODO: Enable this test once WL#5526 is pushed
--disable_parsing
---echo # Connection default
--connection default
SET DEBUG_SYNC= 'alter_opened_table SIGNAL opened WAIT_FOR continue1';
SET DEBUG_SYNC= 'alter_table_inplace_after_lock_upgrade SIGNAL upgraded WAIT_FOR continue2';
@@ -489,7 +449,6 @@ SET DEBUG_SYNC= 'alter_table_before_main_binlog SIGNAL binlog WAIT_FOR continue5
--echo # Sending:
--send ALTER TABLE t1 ADD INDEX i3(b), ALGORITHM= INPLACE, LOCK= NONE
---echo # Connection con1;
--connection con1
SET DEBUG_SYNC= 'now WAIT_FOR opened';
--echo # At this point, neither reads nor writes should be blocked.
@@ -526,7 +485,6 @@ SELECT * FROM t1;
INSERT INTO t1 VALUES (7,7);
SET DEBUG_SYNC= 'now SIGNAL continue5';
---echo # Connection default
--connection default
--echo # Reaping ALTER TABLE ...
--reap
@@ -540,7 +498,6 @@ DELETE FROM t1 WHERE a= 3 OR a= 4;
--echo # 4: In-place + reads and writes blocked.
--echo #
---echo # Connection default
--connection default
SET DEBUG_SYNC= 'alter_opened_table SIGNAL opened WAIT_FOR continue1';
SET DEBUG_SYNC= 'alter_table_inplace_after_lock_upgrade SIGNAL upgraded WAIT_FOR continue2';
@@ -549,7 +506,6 @@ SET DEBUG_SYNC= 'alter_table_before_main_binlog SIGNAL binlog WAIT_FOR continue4
--echo # Sending:
--send ALTER TABLE t1 ADD INDEX i4(b), ALGORITHM= INPLACE, LOCK= EXCLUSIVE
---echo # Connection con1;
--connection con1
SET DEBUG_SYNC= 'now WAIT_FOR opened';
--echo # At this point, neither reads nor writes should be blocked.
@@ -581,7 +537,6 @@ SELECT * FROM t1;
INSERT INTO t1 VALUES (6,6);
SET DEBUG_SYNC= 'now SIGNAL continue4';
---echo # Connection default
--connection default
--echo # Reaping ALTER TABLE ...
--reap
@@ -606,7 +561,6 @@ INSERT INTO t1 VALUES (155, 45, 55);
--echo #Concurrent INSERT, UPDATE, SELECT and DELETE is supported
--echo #during OPTIMIZE TABLE operation for INNODB tables.
---enable_connect_log
--connection default
--echo #OPTIMIZE TABLE operation.
--send OPTIMIZE TABLE t1
@@ -785,7 +739,6 @@ SET DEBUG_SYNC= 'now WAIT_FOR rebuild';
--connection default
--reap
---disable_connect_log
--disconnect con1
SET DEBUG_SYNC= 'RESET';
diff --git a/mysql-test/t/kill.test b/mysql-test/t/kill.test
index aaf931a2e7f..b6000ffced1 100644
--- a/mysql-test/t/kill.test
+++ b/mysql-test/t/kill.test
@@ -345,8 +345,6 @@ SET DEBUG_SYNC = 'RESET';
--echo # depending on platform.
--echo #
---echo
---echo # Connection: con1.
--connection con1
let $ID= `SELECT @id := CONNECTION_ID()`;
SET DEBUG_SYNC= 'thread_end SIGNAL con1_end';
@@ -385,14 +383,11 @@ connect (dml, localhost, root, , );
connect (ddl, localhost, root, , );
--echo # Test for RENAME TABLE
---echo # Switching to connection 'blocker'
connection blocker;
lock table t1 read;
---echo # Switching to connection 'ddl'
connection ddl;
let $ID= `select connection_id()`;
--send rename table t1 to t2
---echo # Switching to connection 'default'
connection default;
let $wait_condition=
select count(*) = 1 from information_schema.processlist
@@ -401,14 +396,12 @@ let $wait_condition=
--source include/wait_condition.inc
--replace_result $ID ID
eval kill query $ID;
---echo # Switching to connection 'ddl'
connection ddl;
--error ER_QUERY_INTERRUPTED
--reap
--echo # Test for DROP TABLE
--send drop table t1
---echo # Switching to connection 'default'
connection default;
let $wait_condition=
select count(*) = 1 from information_schema.processlist
@@ -417,14 +410,12 @@ let $wait_condition=
--source include/wait_condition.inc
--replace_result $ID ID
eval kill query $ID;
---echo # Switching to connection 'ddl'
connection ddl;
--error ER_QUERY_INTERRUPTED
--reap
--echo # Test for CREATE TRIGGER
--send create trigger t1_bi before insert on t1 for each row set @a:=1
---echo # Switching to connection 'default'
connection default;
let $wait_condition=
select count(*) = 1 from information_schema.processlist
@@ -433,7 +424,6 @@ let $wait_condition=
--source include/wait_condition.inc
--replace_result $ID ID
eval kill query $ID;
---echo # Switching to connection 'ddl'
connection ddl;
--error ER_QUERY_INTERRUPTED
--reap
@@ -443,7 +433,6 @@ connection ddl;
--echo #
--echo # Full-blown ALTER which should copy table
--send alter table t1 add column j int
---echo # Switching to connection 'default'
connection default;
let $wait_condition=
select count(*) = 1 from information_schema.processlist
@@ -452,14 +441,12 @@ let $wait_condition=
--source include/wait_condition.inc
--replace_result $ID ID
eval kill query $ID;
---echo # Switching to connection 'ddl'
connection ddl;
--error ER_QUERY_INTERRUPTED
--reap
--echo # Two kinds of simple ALTER
--send alter table t1 rename to t2
---echo # Switching to connection 'default'
connection default;
let $wait_condition=
select count(*) = 1 from information_schema.processlist
@@ -468,12 +455,10 @@ let $wait_condition=
--source include/wait_condition.inc
--replace_result $ID ID
eval kill query $ID;
---echo # Switching to connection 'ddl'
connection ddl;
--error ER_QUERY_INTERRUPTED
--reap
--send alter table t1 disable keys
---echo # Switching to connection 'default'
connection default;
let $wait_condition=
select count(*) = 1 from information_schema.processlist
@@ -482,13 +467,11 @@ let $wait_condition=
--source include/wait_condition.inc
--replace_result $ID ID
eval kill query $ID;
---echo # Switching to connection 'ddl'
connection ddl;
--error ER_QUERY_INTERRUPTED
--reap
--echo # Fast ALTER
--send alter table t1 alter column i set default 100
---echo # Switching to connection 'default'
connection default;
let $wait_condition=
select count(*) = 1 from information_schema.processlist
@@ -497,20 +480,16 @@ let $wait_condition=
--source include/wait_condition.inc
--replace_result $ID ID
eval kill query $ID;
---echo # Switching to connection 'ddl'
connection ddl;
--error ER_QUERY_INTERRUPTED
--reap
--echo # Special case which is triggered only for MERGE tables.
---echo # Switching to connection 'blocker'
connection blocker;
unlock tables;
create table t2 (i int primary key) engine=merge union=(t1);
lock tables t2 read;
---echo # Switching to connection 'ddl'
connection ddl;
--send alter table t2 alter column i set default 100
---echo # Switching to connection 'default'
connection default;
let $wait_condition=
select count(*) = 1 from information_schema.processlist
@@ -519,21 +498,17 @@ let $wait_condition=
--source include/wait_condition.inc
--replace_result $ID ID
eval kill query $ID;
---echo # Switching to connection 'ddl'
connection ddl;
--error ER_QUERY_INTERRUPTED
--reap
--echo # Test for DML waiting for meta-data lock
---echo # Switching to connection 'blocker'
connection blocker;
unlock tables;
lock tables t1 read;
---echo # Switching to connection 'ddl'
connection ddl;
# Let us add pending exclusive metadata lock on t2
--send truncate table t1
---echo # Switching to connection 'dml'
connection dml;
let $wait_condition=
select count(*) = 1 from information_schema.processlist
@@ -542,7 +517,6 @@ let $wait_condition=
--source include/wait_condition.inc
let $ID2= `select connection_id()`;
--send insert into t1 values (1)
---echo # Switching to connection 'default'
connection default;
let $wait_condition=
select count(*) = 1 from information_schema.processlist
@@ -551,26 +525,20 @@ let $wait_condition=
--source include/wait_condition.inc
--replace_result $ID2 ID2
eval kill query $ID2;
---echo # Switching to connection 'dml'
connection dml;
--error ER_QUERY_INTERRUPTED
--reap
---echo # Switching to connection 'blocker'
connection blocker;
unlock tables;
---echo # Switching to connection 'ddl'
connection ddl;
--reap
--echo # Test for DML waiting for tables to be flushed
---echo # Switching to connection 'blocker'
connection blocker;
lock tables t1 read;
---echo # Switching to connection 'ddl'
connection ddl;
--echo # Let us mark locked table t1 as old
--send flush tables
---echo # Switching to connection 'dml'
connection dml;
let $wait_condition=
select count(*) = 1 from information_schema.processlist
@@ -578,7 +546,6 @@ let $wait_condition=
info = "flush tables";
--source include/wait_condition.inc
--send select * from t1
---echo # Switching to connection 'default'
connection default;
let $wait_condition=
select count(*) = 1 from information_schema.processlist
@@ -587,19 +554,15 @@ let $wait_condition=
--source include/wait_condition.inc
--replace_result $ID2 ID2
eval kill query $ID2;
---echo # Switching to connection 'dml'
connection dml;
--error ER_QUERY_INTERRUPTED
--reap
---echo # Switching to connection 'blocker'
connection blocker;
unlock tables;
---echo # Switching to connection 'ddl'
connection ddl;
--reap
--echo # Cleanup.
---echo # Switching to connection 'default'
connection default;
drop table t1;
drop table t2;
diff --git a/mysql-test/t/kill_processlist-6619.test b/mysql-test/t/kill_processlist-6619.test
index 95af83be56d..df5f410208b 100644
--- a/mysql-test/t/kill_processlist-6619.test
+++ b/mysql-test/t/kill_processlist-6619.test
@@ -4,7 +4,6 @@
--source include/not_embedded.inc
--source include/have_debug_sync.inc
---enable_connect_log
--connect (con1,localhost,root,,)
--let $con_id = `SELECT CONNECTION_ID()`
--replace_column 1 # 3 # 6 # 7 #
diff --git a/mysql-test/t/kill_query-6728.test b/mysql-test/t/kill_query-6728.test
index 485256a65b6..a04c51a88dc 100644
--- a/mysql-test/t/kill_query-6728.test
+++ b/mysql-test/t/kill_query-6728.test
@@ -1,7 +1,6 @@
#
# MDEV-6728 KILL QUERY executed on an idle connection can interrupt the next query
#
---enable_connect_log
--connect (con1,localhost,root,,)
let $id=`select connection_id()`;
diff --git a/mysql-test/t/lock.test b/mysql-test/t/lock.test
index 78f0e2ecf8d..23eb04d7826 100644
--- a/mysql-test/t/lock.test
+++ b/mysql-test/t/lock.test
@@ -333,7 +333,6 @@ connect(con1,localhost,root,,);
set autocommit= 0;
insert into t1 values (1);
lock table t1 write;
---echo # Disconnect
--echo # Ensure that metadata locks will be released if there is an open
--echo # transaction (autocommit=off) in conjunction with lock tables.
disconnect con1;
@@ -349,7 +348,6 @@ create table t1 (a int);
connect(con1,localhost,root,,);
begin;
insert into t1 values (1);
---echo # Disconnect
--echo # Ensure that metadata locks held by the transaction are released.
disconnect con1;
connection default;
@@ -556,12 +554,10 @@ connect (con2, localhost, root);
CREATE TABLE t1 (id INT);
CREATE TABLE t2 (id INT);
---echo # Connection default
connection default;
LOCK TABLE t1 WRITE;
ANALYZE TABLE t1;
---echo # Connection con2
connection con2;
LOCK TABLE t2 WRITE;
--echo # This used to hang until the first connection
@@ -570,7 +566,6 @@ FLUSH TABLE t2;
UNLOCK TABLES;
---echo # Connection default
connection default;
UNLOCK TABLES;
DROP TABLE t1, t2;
diff --git a/mysql-test/t/lock_multi.test b/mysql-test/t/lock_multi.test
index efd0fe5d630..51cc4a50233 100644
--- a/mysql-test/t/lock_multi.test
+++ b/mysql-test/t/lock_multi.test
@@ -371,13 +371,10 @@ create table t1 (a int);
create table t2 like t1;
connection con1;
---echo # con1
lock tables t1 write;
connection con2;
---echo # con2
send flush tables with read lock;
connection con5;
---echo # con5
let $wait_condition=
select count(*) = 1 from information_schema.processlist
where state = "Waiting for global read lock" and
@@ -385,7 +382,6 @@ let $wait_condition=
--source include/wait_condition.inc
--echo # global read lock is taken
connection con3;
---echo # con3
send select * from t2 for update;
connection con5;
let $wait_condition=
@@ -395,7 +391,6 @@ let $wait_condition=
--source include/wait_condition.inc
--echo # waiting for release of read lock
connection con4;
---echo # con4
--echo # would hang and later cause a deadlock
flush tables t2;
connection con1;
@@ -431,13 +426,10 @@ create table t2 like t1;
--echo #
connection default;
---echo # default
flush tables with read lock;
connection con1;
---echo # con1
send update t2 set a = 1;
connection default;
---echo # default
let $wait_condition=
select count(*) = 1 from information_schema.processlist
where state = "Waiting for global read lock" and
@@ -445,13 +437,10 @@ let $wait_condition=
--source include/wait_condition.inc
--echo # statement is waiting for release of read lock
connection con2;
---echo # con2
flush table t2;
connection default;
---echo # default
unlock tables;
connection con1;
---echo # con1
--reap
--echo #
@@ -459,13 +448,10 @@ connection con1;
--echo #
connection default;
---echo # default
flush tables with read lock;
connection con1;
---echo # con1
send lock tables t2 write;
connection default;
---echo # default
let $wait_condition=
select count(*) = 1 from information_schema.processlist
where state = "Waiting for global read lock" and
@@ -473,13 +459,10 @@ let $wait_condition=
--source include/wait_condition.inc
--echo # statement is waiting for release of read lock
connection con2;
---echo # con2
flush table t2;
connection default;
---echo # default
unlock tables;
connection con1;
---echo # con1
--reap
unlock tables;
@@ -553,13 +536,10 @@ drop table if exists t1;
create table t1 (i int);
connect (flush,localhost,root,,test,,);
connection default;
---echo connection: default
lock tables t1 write;
connection flush;
---echo connection: flush
--send flush tables with read lock;
connection default;
---echo connection: default
let $wait_condition=
select count(*) = 1 from information_schema.processlist
where state = "Waiting for global read lock" and
@@ -568,14 +548,12 @@ let $wait_condition=
alter table t1 add column j int;
connect (insert,localhost,root,,test,,);
connection insert;
---echo connection: insert
let $wait_condition=
select count(*) = 1 from information_schema.processlist
where state = "Waiting for global read lock" and
info = "flush tables with read lock";
--source include/wait_condition.inc
--send insert into t1 values (1,2);
---echo connection: default
connection default;
let $wait_condition=
select count(*) = 1 from information_schema.processlist
@@ -584,7 +562,6 @@ let $wait_condition=
--source include/wait_condition.inc
unlock tables;
connection flush;
---echo connection: flush
--reap
let $wait_condition=
select count(*) = 1 from information_schema.processlist
@@ -615,13 +592,10 @@ drop table if exists t1;
create table t1 (i int);
connect (flush,localhost,root,,test,,);
connection default;
---echo connection: default
lock tables t1 write;
connection flush;
---echo connection: flush
--send flush tables with read lock;
connection default;
---echo connection: default
let $wait_condition=
select count(*) = 1 from information_schema.processlist
where state = "Waiting for global read lock";
@@ -684,13 +658,10 @@ drop table if exists t1;
create table t1 (i int);
connect (flush,localhost,root,,test,,);
connection default;
---echo connection: default
lock tables t1 write;
connection flush;
---echo connection: flush
--send flush tables with read lock;
connection default;
---echo connection: default
let $wait_condition=
select count(*) = 1 from information_schema.processlist
where state = "Waiting for global read lock";
@@ -718,8 +689,6 @@ insert into t1 values (1,1,0),(2,2,0),(3,3,0),(4,4,0),(5,5,0);
begin;
update t1 set c3=c3+1 where c2=3;
---echo #
---echo # Switching to connection 'con46272'.
connect (con46272,localhost,root,,test,,);
connection con46272;
--echo # The below ALTER TABLE statement should wait till transaction
@@ -728,8 +697,6 @@ connection con46272;
--echo # Sending:
--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.
@@ -746,14 +713,10 @@ update t1 set c3=c3+1 where c2=4;
--echo # Unblock ALTER TABLE by committing transaction.
commit;
---echo #
---echo # Switching to connection 'con46272'.
connection con46272;
--echo # Reaping ALTER TABLE.
--reap
---echo #
---echo # Switching to connection 'default'.
connection default;
disconnect con46272;
drop table t1;
@@ -794,14 +757,12 @@ DROP VIEW v1;
CREATE TABLE t1 ( f1 integer );
CREATE VIEW v1 AS SELECT f1 FROM t1 ;
---echo # Connection 2
connect (con2,localhost,root);
LOCK TABLES t1 WRITE, v1 READ;
FLUSH TABLE t1;
disconnect con2;
--source include/wait_until_disconnected.inc
---echo # Connection 1
connection default;
LOCK TABLES t1 WRITE;
FLUSH TABLE t1; # Assertion happened here
@@ -826,12 +787,10 @@ create view v1 as select i from t1;
begin;
select * from t1;
---echo # Switching to connection 'con50913'.
connection con50913;
--echo # Sending:
--send alter table t1 add column j int
---echo # Switching to connection 'default'.
connection default;
--echo # Wait until ALTER TABLE gets blocked.
let $wait_condition=
@@ -847,22 +806,18 @@ delete a from t1 as a where i = 1;
--echo # Unblock ALTER TABLE.
commit;
---echo # Switching to connection 'con50913'.
connection con50913;
--echo # Reaping ALTER TABLE;
--reap
---echo # Switching to connection 'default'.
connection default;
begin;
select * from v1;
---echo # Switching to connection 'con50913'.
connection con50913;
--echo # Sending:
--send alter table t1 drop column j
---echo # Switching to connection 'default'.
connection default;
--echo # Wait until ALTER TABLE gets blocked.
let $wait_condition=
@@ -878,12 +833,10 @@ insert into v1 values (1);
--echo # Unblock ALTER TABLE.
commit;
---echo # Switching to connection 'con50913'.
connection con50913;
--echo # Reaping ALTER TABLE;
--reap
---echo # Switching to connection 'default'.
connection default;
disconnect con50913;
drop view v1;
@@ -910,17 +863,14 @@ SET SESSION lock_wait_timeout= 1;
--echo # Test 1: acquire exclusive lock
--echo #
---echo # Connection default
connection default;
START TRANSACTION;
INSERT INTO t1 VALUES (1);
---echo # Connection 2
connection con2;
--error ER_LOCK_WAIT_TIMEOUT
DROP TABLE t1;
---echo # Connection default
connection default;
COMMIT;
@@ -928,17 +878,14 @@ COMMIT;
--echo # Test 2: upgrade shared lock
--echo #
---echo # Connection default
connection default;
START TRANSACTION;
SELECT * FROM t1;
---echo # Connection 2
connection con2;
--error ER_LOCK_WAIT_TIMEOUT
ALTER TABLE t1 RENAME TO t2;
---echo # Connection default
connection default;
COMMIT;
@@ -946,16 +893,13 @@ COMMIT;
--echo # Test 3: acquire shared lock
--echo #
---echo # Connection default
connection default;
LOCK TABLE t1 WRITE;
---echo # Connection 2
connection con2;
--error ER_LOCK_WAIT_TIMEOUT
INSERT INTO t1(id) VALUES (2);
---echo # Connection default
connection default;
UNLOCK TABLES;
@@ -963,16 +907,13 @@ UNLOCK TABLES;
--echo # Test 4: table level locks
--echo #
---echo # Connection default
connection default;
LOCK TABLE t1 READ;
---echo # Connection 2
connection con2;
--error ER_LOCK_WAIT_TIMEOUT
INSERT INTO t1(id) VALUES(4);
---echo # Connection default
connection default;
UNLOCK TABLES;
@@ -982,16 +923,13 @@ UNLOCK TABLES;
connect(con3, localhost, root);
---echo # Connection default
connection default;
LOCK TABLE t1 READ;
---echo # Connection con3
connection con3;
--echo # Sending:
--send FLUSH TABLES
---echo # Connection con2
connection con2;
let $wait_condition=
SELECT COUNT(*) = 1 FROM information_schema.processlist
@@ -1000,11 +938,9 @@ let $wait_condition=
--error ER_LOCK_WAIT_TIMEOUT
SELECT * FROM t1;
---echo # Connection default
connection default;
UNLOCK TABLES;
---echo # Connection con3
connection con3;
--echo # Reaping: FLUSH TABLES
--reap
@@ -1013,17 +949,14 @@ connection con3;
--echo # Test 6: Timeouts in I_S queries
--echo #
---echo # Connection default
connection default;
CREATE TABLE t2 (id INT);
LOCK TABLE t2 WRITE;
---echo # Connection con3
connection con3;
--echo # Sending:
--send DROP TABLE t1, t2
---echo # Connection con2
connection con2;
let $wait_condition=
SELECT COUNT(*) = 1 FROM information_schema.processlist
@@ -1036,16 +969,13 @@ let $wait_condition=
SELECT table_name, table_comment FROM information_schema.tables
WHERE table_schema= 'test' AND table_name= 't1';
---echo # Connection default
connection default;
UNLOCK TABLES;
---echo # Connection con3
connection con3;
--echo # Reaping: DROP TABLE t1, t2
--reap
---echo # Connection default
connection default;
--echo # Cleanup
disconnect con2;
@@ -1064,12 +994,10 @@ connect (con2, localhost, root, , );
connection default;
create table t3 (i int);
---echo # Switching to connection 'con1'
connection con1;
--echo # Lock 't3' so upcoming RENAME is blocked.
lock table t3 read;
---echo # Switching to connection 'con2'
connection con2;
--echo # Remember ID for this connection.
let $ID= `select connection_id()`;
@@ -1078,7 +1006,6 @@ let $ID= `select connection_id()`;
--echo # Sending:
--send rename tables t1 to t2, t2 to t3;
---echo # Switching to connection 'default'
connection default;
--echo # Wait until RENAME TABLE is blocked on table 't3'.
let $wait_condition=
@@ -1090,17 +1017,14 @@ let $wait_condition=
--replace_result $ID ID
eval kill query $ID;
---echo # Switching to connection 'con2'
connection con2;
--echo # RENAME TABLE should be aborted but should not crash.
--error ER_QUERY_INTERRUPTED
--reap
---echo # Switching to connection 'con1'
connection con1;
unlock tables;
---echo # Switching to connection 'default'
connection default;
disconnect con1;
disconnect con2;
@@ -1120,13 +1044,11 @@ DROP TABLE IF EXISTS t1;
CREATE TABLE t1 (id INT);
LOCK TABLE t1 WRITE;
---echo # Connection con1
connect (con1, localhost, root);
CREATE TEMPORARY TABLE t1 (id INT);
# This alter should not block and timeout.
ALTER TABLE t1 ADD COLUMN j INT;
---echo # Connection default
connection default;
disconnect con1;
UNLOCK TABLES;
diff --git a/mysql-test/t/lock_sync.test b/mysql-test/t/lock_sync.test
index ef79cc2c0f4..c090e3a1d93 100644
--- a/mysql-test/t/lock_sync.test
+++ b/mysql-test/t/lock_sync.test
@@ -231,7 +231,6 @@ let $con_aux1= con1;
let $con_aux2= con2;
let $table= t1;
---echo # Switch to connection 'con1'.
connection con1;
--echo # Cache all functions used in the tests below so statements
--echo # calling them won't need to open and lock mysql.proc table
@@ -259,7 +258,6 @@ show create function f15;
show create function f16;
show create function f17;
--enable_result_log
---echo # Switch back to connection 'default'.
connection default;
--echo #
@@ -301,13 +299,11 @@ let $restore_table= t2;
--echo # target table and thus does not take any lock on it.
--echo # We check this for completeness of coverage.
lock table t1 write;
---echo # Switching to connection 'con1'.
connection con1;
--echo # This statement should not be blocked.
--disable_result_log
describe t1;
--enable_result_log
---echo # Switching to connection 'default'.
connection default;
unlock tables;
@@ -316,7 +312,6 @@ unlock tables;
--echo #
--echo # The above is true for SHOW statements as well.
lock table t1 write;
---echo # Switching to connection 'con1'.
connection con1;
--echo # These statements should not be blocked.
# The below test for SHOW CREATE TABLE is disabled until bug 52593
@@ -328,7 +323,6 @@ show create table t1;
--disable_result_log
show keys from t1;
--enable_result_log
---echo # Switching to connection 'default'.
connection default;
unlock tables;
@@ -917,12 +911,10 @@ insert into t1 values (1);
--echo # the first statement after it acquires TL_WRITE_ALLOW_WRITE lock.
select get_lock("lock_bug45143_wait", 0);
---echo # Switch to connection 'con_bug45143_1'.
connection con_bug45143_1;
--echo # Sending:
--send insert into t1 values (get_lock("lock_bug45143_wait", 100));
---echo # Switch to connection 'con_bug45143_2'.
connection con_bug45143_2;
--echo # Wait until the above INSERT takes TL_WRITE_ALLOW_WRITE lock on 't1'
--echo # and then gets blocked on user lock 'lock_bug45143_wait'.
@@ -936,7 +928,6 @@ set debug_sync='thr_multi_lock_after_thr_lock SIGNAL parked WAIT_FOR go';
--echo # Sending:
--send select count(*) > 0 from t1 as a, t1 as b for update;
---echo # Switch to connection 'con_bug45143_3'.
connection con_bug45143_3;
--echo # Wait until the above SELECT ... FOR UPDATE is blocked after
--echo # acquiring lock for the the first instance of 't1'.
@@ -944,7 +935,6 @@ set debug_sync= 'now WAIT_FOR parked';
--echo # Send LOCK TABLE statement which will try to get TL_WRITE lock on 't1':
--send lock table v1 write;
---echo # Switch to connection 'default'.
connection default;
--echo # Wait until this LOCK TABLES statement starts waiting for table lock.
let $wait_condition= select count(*)= 1 from information_schema.processlist
@@ -958,17 +948,14 @@ let $wait_condition= select count(*)= 1 from information_schema.processlist
--echo # on this table and also there is a thread waiting for a TL_WRITE on it.
set debug_sync= 'now SIGNAL go';
---echo # Switch to connection 'con_bug45143_2'.
connection con_bug45143_2;
--echo # Reap SELECT ... FOR UPDATE
--reap
---echo # Switch to connection 'default'.
connection default;
--echo # Resume execution of the INSERT statement.
select release_lock("lock_bug45143_wait");
---echo # Switch to connection 'con_bug45143_1'.
connection con_bug45143_1;
--echo # Reap INSERT statement.
--echo # In Statement and Mixed replication mode we get here "Unsafe
@@ -979,13 +966,11 @@ connection con_bug45143_1;
--enable_warnings
---echo # Switch to connection 'con_bug45143_3'.
connection con_bug45143_3;
--echo # Reap LOCK TABLES statement.
--reap
unlock tables;
---echo # Switch to connection 'default'.
connection default;
--echo # Do clean-up.
disconnect con_bug45143_1;
@@ -1008,17 +993,14 @@ DROP TABLE IF EXISTS t1, t2;
CREATE TABLE t1(id INT);
CREATE TABLE t2(id INT);
---echo # Connection con2
connect (con2, localhost, root);
START TRANSACTION;
SELECT * FROM t1;
---echo # Connection default
connection default;
--echo # Sending:
--send ALTER TABLE t1 ADD COLUMN j INT
---echo # Connection con2
connection con2;
let $wait_condition=
SELECT COUNT(*) = 1 FROM information_schema.processlist
@@ -1031,7 +1013,6 @@ INSERT INTO t2 SELECT * FROM t1;
COMMIT;
---echo # Connection default
connection default;
--echo # Reaping ALTER TABLE t1 ADD COLUMN j INT
--reap
@@ -1047,27 +1028,23 @@ disconnect con2;
CREATE EVENT e1 ON SCHEDULE EVERY 5 HOUR DO SELECT 1;
CREATE EVENT e2 ON SCHEDULE EVERY 5 HOUR DO SELECT 2;
---echo # Connection con1
connect(con1, localhost, root);
SET DEBUG_SYNC="before_lock_tables_takes_lock SIGNAL drop WAIT_FOR query";
--echo # Sending:
--send DROP EVENT e1;
---echo # Connection default
connection default;
SET DEBUG_SYNC="now WAIT_FOR drop";
SELECT name FROM mysql.event, INFORMATION_SCHEMA.GLOBAL_VARIABLES
WHERE definer = VARIABLE_VALUE;
SET DEBUG_SYNC="now SIGNAL query";
---echo # Connection con1
connection con1;
--echo # Reaping: DROP EVENT t1
--reap
disconnect con1;
--source include/wait_until_disconnected.inc
---echo # Connection default
connection default;
DROP EVENT e2;
SET DEBUG_SYNC="RESET";
@@ -1088,26 +1065,22 @@ INSERT INTO t1 VALUES (1), (2);
connect (con1, localhost, root);
connect (con2, localhost, root);
---echo # Connection con1
connection con1;
SET SESSION lock_wait_timeout= 1;
SET DEBUG_SYNC= 'ha_admin_open_ltable SIGNAL opti_recreate WAIT_FOR opti_analyze';
--echo # Sending:
--send OPTIMIZE TABLE t1
---echo # Connection con2
connection con2;
SET DEBUG_SYNC= 'now WAIT_FOR opti_recreate';
SET DEBUG_SYNC= 'after_lock_tables_takes_lock SIGNAL thrlock WAIT_FOR release_thrlock';
--echo # Sending:
--send INSERT INTO t1 VALUES (3)
---echo # Connection default
connection default;
SET DEBUG_SYNC= 'now WAIT_FOR thrlock';
SET DEBUG_SYNC= 'now SIGNAL opti_analyze';
---echo # Connection con1
connection con1;
--echo # Reaping: OPTIMIZE TABLE t1
--reap
@@ -1115,14 +1088,12 @@ SET DEBUG_SYNC= 'now SIGNAL release_thrlock';
disconnect con1;
--source include/wait_until_disconnected.inc
---echo # Connection con2
connection con2;
--echo # Reaping: INSERT INTO t1 VALUES (3)
--reap
disconnect con2;
--source include/wait_until_disconnected.inc
---echo # Connection default
connection default;
DROP TABLE t1;
SET DEBUG_SYNC= 'RESET';
@@ -1144,7 +1115,6 @@ CREATE VIEW v1 AS SELECT * FROM t1 WHERE f1() = 1;
DROP FUNCTION f1;
connect(con2, localhost, root);
---echo # Connection con1
connect (con1, localhost, root);
# Need to trigger this sync point at least twice in order to
# get valgrind test failures without the patch
@@ -1152,7 +1122,6 @@ SET DEBUG_SYNC= 'open_tables_after_open_and_process_table SIGNAL opened WAIT_FOR
--echo # Sending:
--send SHOW CREATE VIEW v1
---echo # Connection con2
connection con2;
SET DEBUG_SYNC= 'now WAIT_FOR opened';
SET DEBUG_SYNC= 'now SIGNAL dropped';
@@ -1160,7 +1129,6 @@ SET DEBUG_SYNC= 'now WAIT_FOR opened';
--echo # Sending:
--send FLUSH TABLES
---echo # Connection default
connection default;
--echo # Waiting for FLUSH TABLES to be blocked.
let $wait_condition= SELECT COUNT(*)=1 FROM information_schema.processlist
@@ -1168,17 +1136,14 @@ let $wait_condition= SELECT COUNT(*)=1 FROM information_schema.processlist
--source include/wait_condition.inc
SET DEBUG_SYNC= 'now SIGNAL dropped';
---echo # Connection con1
connection con1;
--echo # Reaping: SHOW CREATE VIEW v1
--reap
---echo # Connection con2
connection con2;
--echo # Reaping: FLUSH TABLES
--reap
---echo # Connection default
connection default;
SET DEBUG_SYNC= 'RESET';
DROP VIEW v1;
diff --git a/mysql-test/t/log_state.test b/mysql-test/t/log_state.test
index 12c7a7fd92b..68e06dfa042 100644
--- a/mysql-test/t/log_state.test
+++ b/mysql-test/t/log_state.test
@@ -33,9 +33,7 @@ flush logs;
show global variables
where Variable_name = 'general_log' or Variable_name = 'slow_query_log';
---echo # Establish connection con1 (user=root)
connect (con1,localhost,root,,);
---echo # Switch to connection con1
connection con1;
# Please increase @long_query_time if the corresponding selects show an
# additional unexpected entry like
@@ -48,12 +46,10 @@ set session long_query_time = @long_query_time;
select sleep(@long_query_time + 1);
--replace_column 1 TIMESTAMP 2 USER_HOST 3 QUERY_TIME 12 THREAD_ID
select * from mysql.slow_log where sql_text NOT LIKE '%slow_log%';
---echo # Switch to connection default
connection default;
set global slow_query_log= ON;
set local slow_query_log= ON;
---echo # Switch to connection con1
connection con1;
set session long_query_time = @long_query_time;
select sleep(@long_query_time + 1);
@@ -64,7 +60,6 @@ select sleep(@long_query_time + 2);
--replace_column 1 TIMESTAMP 2 USER_HOST 3 QUERY_TIME 12 THREAD_ID
select * from mysql.slow_log where sql_text NOT LIKE '%slow_log%';
---echo # Switch to connection default
connection default;
show global variables
where Variable_name = 'general_log' or Variable_name = 'slow_query_log';
@@ -328,7 +323,6 @@ SET GLOBAL general_log_file = @old_general_log_file;
# Cleanup
#
# Disconnect must be done last to avoid delayed 'Quit' message in general log
---echo # Close connection con1
disconnect con1;
# set back the saved default values
connection default;
diff --git a/mysql-test/t/mdl_sync.test b/mysql-test/t/mdl_sync.test
index 8e809788a08..0b6d6f58013 100644
--- a/mysql-test/t/mdl_sync.test
+++ b/mysql-test/t/mdl_sync.test
@@ -101,7 +101,6 @@ create table t1 (c1 int);
--echo #
handler t1 open;
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Check that S, SH, SR and SW locks are compatible with it.
handler t1 open t;
@@ -128,7 +127,6 @@ unlock tables;
--echo # Sending:
--send rename table t1 to t2;
--echo #
---echo # Switching to connection 'mdl_con2'.
connection mdl_con2;
--echo # Check that the above RENAME is blocked because of S lock.
let $wait_condition=
@@ -137,29 +135,24 @@ let $wait_condition=
info = "rename table t1 to t2";
--source include/wait_condition.inc
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Unblock RENAME TABLE.
handler t1 close;
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Reaping RENAME TABLE.
--reap
--echo # Restore the original state of the things.
rename table t2 to t1;
--echo #
---echo # Switching to connection 'default'.
connection default;
handler t1 open;
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Check that upgrade from SNW to X is blocked by presence of S lock.
--echo # Sending:
--send alter table t1 add column c2 int;
--echo #
---echo # Switching to connection 'mdl_con2'.
connection mdl_con2;
--echo # Check that the above ALTER TABLE is blocked because of S lock.
let $wait_condition=
@@ -168,30 +161,25 @@ let $wait_condition=
info = "alter table t1 add column c2 int";
--source include/wait_condition.inc
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Unblock ALTER TABLE.
handler t1 close;
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Reaping ALTER TABLE.
--reap
--echo # Restore the original state of the things.
alter table t1 drop column c2;
--echo #
---echo # Switching to connection 'default'.
connection default;
handler t1 open;
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Check that upgrade from SNRW to X is blocked by presence of S lock.
lock table t1 write;
--echo # Sending:
--send alter table t1 add column c2 int;
--echo #
---echo # Switching to connection 'mdl_con2'.
connection mdl_con2;
--echo # Check that the above upgrade of SNRW to X in ALTER TABLE is blocked
--echo # because of S lock.
@@ -201,12 +189,10 @@ let $wait_condition=
info = "alter table t1 add column c2 int";
--source include/wait_condition.inc
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Unblock ALTER TABLE.
handler t1 close;
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Reaping ALTER TABLE.
--reap
@@ -214,7 +200,6 @@ connection mdl_con1;
alter table t1 drop column c2;
unlock tables;
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo #
--echo # 2) Acquire SH (shared high-priority) lock on the table.
@@ -225,7 +210,6 @@ set debug_sync= 'after_open_table_mdl_shared SIGNAL locked WAIT_FOR finish';
--echo # Sending:
--send select table_name, table_type, auto_increment, table_comment from information_schema.tables where table_schema='test' and table_name='t1';
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
set debug_sync= 'now WAIT_FOR locked';
--echo # Check that S, SH, SR and SW locks are compatible with it.
@@ -253,7 +237,6 @@ unlock tables;
--echo # Sending:
--send rename table t1 to t2;
--echo #
---echo # Switching to connection 'mdl_con2'.
connection mdl_con2;
--echo # Check that the above RENAME is blocked because of SH lock.
let $wait_condition=
@@ -264,32 +247,27 @@ let $wait_condition=
--echo # Unblock RENAME TABLE.
set debug_sync= 'now SIGNAL finish';
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Reaping SELECT ... FROM I_S.
--reap
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Reaping RENAME TABLE.
--reap
--echo # Restore the original state of the things.
rename table t2 to t1;
--echo #
---echo # Switching to connection 'default'.
connection default;
set debug_sync= 'after_open_table_mdl_shared SIGNAL locked WAIT_FOR finish';
--echo # Sending:
--send select table_name, table_type, auto_increment, table_comment from information_schema.tables where table_schema='test' and table_name='t1';
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
set debug_sync= 'now WAIT_FOR locked';
--echo # Check that upgrade from SNW to X is blocked by presence of SH lock.
--echo # Sending:
--send alter table t1 add column c2 int;
--echo #
---echo # Switching to connection 'mdl_con2'.
connection mdl_con2;
--echo # Check that the above ALTER TABLE is blocked because of SH lock.
let $wait_condition=
@@ -300,24 +278,20 @@ let $wait_condition=
--echo # Unblock RENAME TABLE.
set debug_sync= 'now SIGNAL finish';
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Reaping SELECT ... FROM I_S.
--reap
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Reaping ALTER TABLE.
--reap
--echo # Restore the original state of the things.
alter table t1 drop column c2;
--echo #
---echo # Switching to connection 'default'.
connection default;
set debug_sync= 'after_open_table_mdl_shared SIGNAL locked WAIT_FOR finish';
--send select table_name, table_type, auto_increment, table_comment from information_schema.tables where table_schema='test' and table_name='t1';
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
set debug_sync= 'now WAIT_FOR locked';
--echo # Check that upgrade from SNRW to X is blocked by presence of S lock.
@@ -325,7 +299,6 @@ lock table t1 write;
--echo # Sending:
--send alter table t1 add column c2 int;
--echo #
---echo # Switching to connection 'mdl_con2'.
connection mdl_con2;
--echo # Check that the above upgrade of SNRW to X in ALTER TABLE is blocked
--echo # because of S lock.
@@ -337,12 +310,10 @@ let $wait_condition=
--echo # Unblock RENAME TABLE.
set debug_sync= 'now SIGNAL finish';
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Reaping SELECT ... FROM I_S.
--reap
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Reaping ALTER TABLE.
--reap
@@ -350,7 +321,6 @@ connection mdl_con1;
alter table t1 drop column c2;
unlock tables;
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo #
--echo #
@@ -360,7 +330,6 @@ connection default;
begin;
select count(*) from t1;
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Check that S, SH, SR and SW locks are compatible with it.
handler t1 open;
@@ -383,7 +352,6 @@ alter table t1 add primary key (c1);
--echo # Sending:
--send lock table t1 write;
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Check that the above LOCK TABLES is blocked because of SR lock.
let $wait_condition=
@@ -394,25 +362,21 @@ let $wait_condition=
--echo # Unblock LOCK TABLES.
commit;
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Reaping LOCK TABLES.
--reap
delete from t1 limit 1;
unlock tables;
--echo #
---echo # Switching to connection 'default'.
connection default;
begin;
select count(*) from t1;
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Check that X lock is incompatible with SR lock.
--echo # Sending:
--send rename table t1 to t2;
--echo #
---echo # Switching to connection 'mdl_con2'.
connection mdl_con2;
--echo # Check that the above RENAME is blocked because of SR lock.
let $wait_condition=
@@ -421,30 +385,25 @@ let $wait_condition=
info = "rename table t1 to t2";
--source include/wait_condition.inc
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Unblock RENAME TABLE.
commit;
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Reaping RENAME TABLE.
--reap
--echo # Restore the original state of the things.
rename table t2 to t1;
--echo #
---echo # Switching to connection 'default'.
connection default;
begin;
select count(*) from t1;
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Check that upgrade from SNW to X is blocked by presence of SR lock.
--echo # Sending:
--send alter table t1 add column c2 int;
--echo #
---echo # Switching to connection 'mdl_con2'.
connection mdl_con2;
--echo # Check that the above ALTER TABLE is blocked because of SR lock.
let $wait_condition=
@@ -453,12 +412,10 @@ let $wait_condition=
info = "alter table t1 add column c2 int";
--source include/wait_condition.inc
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Unblock ALTER TABLE.
commit;
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Reaping ALTER TABLE.
--reap
@@ -469,7 +426,6 @@ alter table t1 drop column c2;
--echo # by presence of SR lock because SNRW is incompatible with SR anyway.
--echo #
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo #
--echo #
@@ -479,7 +435,6 @@ connection default;
begin;
insert into t1 values (1);
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Check that S, SH, SR and SW locks are compatible with it.
handler t1 open;
@@ -503,7 +458,6 @@ alter table t1 add index (not_exist);
--echo # Sending:
--send alter table t1 add primary key (c1);
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Check that the above ALTER TABLE is blocked because of SW lock.
let $wait_condition=
@@ -514,24 +468,20 @@ let $wait_condition=
--echo # Unblock ALTER TABLE.
commit;
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Reaping ALTER TABLE.
--error ER_DUP_ENTRY
--reap
--echo #
---echo # Switching to connection 'default'.
connection default;
begin;
insert into t1 values (1);
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Check that SNRW lock is not compatible with SW lock.
--echo # Sending:
--send lock table t1 write;
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Check that the above LOCK TABLES is blocked because of SW lock.
let $wait_condition=
@@ -542,25 +492,21 @@ let $wait_condition=
--echo # Unblock LOCK TABLES.
commit;
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Reaping LOCK TABLES.
--reap
delete from t1 limit 2;
unlock tables;
--echo #
---echo # Switching to connection 'default'.
connection default;
begin;
insert into t1 values (1);
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Check that X lock is incompatible with SW lock.
--echo # Sending:
--send rename table t1 to t2;
--echo #
---echo # Switching to connection 'mdl_con2'.
connection mdl_con2;
--echo # Check that the above RENAME is blocked because of SW lock.
let $wait_condition=
@@ -569,12 +515,10 @@ let $wait_condition=
info = "rename table t1 to t2";
--source include/wait_condition.inc
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Unblock RENAME TABLE.
commit;
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Reaping RENAME TABLE.
--reap
@@ -586,7 +530,6 @@ rename table t2 to t1;
--echo # with SW anyway.
--echo #
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo #
--echo #
@@ -597,7 +540,6 @@ set debug_sync= 'alter_opened_table SIGNAL locked WAIT_FOR finish';
--echo # Sending:
--send alter table t1 add primary key (c1);
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
set debug_sync= 'now WAIT_FOR locked';
--echo # Check that S, SH, SR and SW locks are compatible with it.
@@ -611,7 +553,6 @@ delete from t1 limit 1;
--echo # Sending:
--send alter table t1 add primary key (c1);
--echo #
---echo # Switching to connection 'mdl_con2'.
connection mdl_con2;
--echo # Check that the above ALTER is blocked because of SU lock.
let $wait_condition=
@@ -622,32 +563,27 @@ let $wait_condition=
--echo # Unblock ALTERs.
set debug_sync= 'now SIGNAL finish';
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Reaping first ALTER TABLE.
--error ER_DUP_ENTRY
--reap
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Reaping another ALTER TABLE.
--error ER_DUP_ENTRY
--reap
--echo #
---echo # Switching to connection 'default'.
connection default;
set debug_sync= 'alter_opened_table SIGNAL locked WAIT_FOR finish';
--echo # Sending:
--send alter table t1 add primary key (c1);
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
set debug_sync= 'now WAIT_FOR locked';
--echo # Check that SNRW lock is incompatible with SU lock.
--echo # Sending:
--send lock table t1 write;
--echo #
---echo # Switching to connection 'mdl_con2'.
connection mdl_con2;
--echo # Check that the above LOCK TABLES is blocked because of SU lock.
let $wait_condition=
@@ -658,33 +594,28 @@ let $wait_condition=
--echo # Unblock ALTER and thus LOCK TABLES.
set debug_sync= 'now SIGNAL finish';
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Reaping ALTER TABLE.
--error ER_DUP_ENTRY
--reap
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Reaping LOCK TABLES
--reap
insert into t1 values (1);
unlock tables;
--echo #
---echo # Switching to connection 'default'.
connection default;
set debug_sync= 'alter_opened_table SIGNAL locked WAIT_FOR finish';
--echo # Sending:
--send alter table t1 add primary key (c1);
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
set debug_sync= 'now WAIT_FOR locked';
--echo # Check that X lock is incompatible with SU lock.
--echo # Sending:
--send rename table t1 to t2;
--echo #
---echo # Switching to connection 'mdl_con2'.
connection mdl_con2;
--echo # Check that the above RENAME is blocked because of SU lock.
let $wait_condition=
@@ -695,7 +626,6 @@ let $wait_condition=
--echo # Unblock ALTER and thus RENAME TABLE.
set debug_sync= 'now SIGNAL finish';
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Now we have ALTER TABLE with SU->SNW and RENAME TABLE with pending
--echo # X-lock. In this case ALTER TABLE should be chosen as victim.
@@ -703,7 +633,6 @@ connection default;
--error ER_LOCK_DEADLOCK
--reap
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Reaping RENAME TABLE
--reap
@@ -714,7 +643,6 @@ rename table t2 to t1;
--echo # blocked by presence of another SU lock because SNW/SNRW is
--echo # incompatible with SU anyway.
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo #
--echo #
@@ -725,7 +653,6 @@ set debug_sync= 'alter_table_copy_after_lock_upgrade SIGNAL locked WAIT_FOR fini
--echo # Sending:
--send alter table t1 add primary key (c1), lock=shared, algorithm=copy;
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
set debug_sync= 'now WAIT_FOR locked';
--echo # Check that S, SH and SR locks are compatible with it.
@@ -738,7 +665,6 @@ select count(*) from t1;
--echo # Sending:
--send delete from t1 limit 2;
--echo #
---echo # Switching to connection 'mdl_con2'.
connection mdl_con2;
--echo # Check that the above DELETE is blocked because of SNW lock.
let $wait_condition=
@@ -749,31 +675,26 @@ let $wait_condition=
--echo # Unblock ALTER and thus DELETE.
set debug_sync= 'now SIGNAL finish';
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Reaping ALTER TABLE.
--error ER_DUP_ENTRY
--reap
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Reaping DELETE.
--reap
--echo #
---echo # Switching to connection 'default'.
connection default;
set debug_sync= 'alter_table_copy_after_lock_upgrade SIGNAL locked WAIT_FOR finish';
--echo # Sending:
--send alter table t1 add primary key (c1), lock=shared, algorithm=copy;
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
set debug_sync= 'now WAIT_FOR locked';
--echo # Check that SU lock is incompatible with SNW lock.
--echo # Sending:
--send alter table t1 add primary key (c1);
--echo #
---echo # Switching to connection 'mdl_con2'.
connection mdl_con2;
--echo # Check that the above ALTER is blocked because of SNW lock.
let $wait_condition=
@@ -784,13 +705,11 @@ let $wait_condition=
--echo # Unblock ALTERs.
set debug_sync= 'now SIGNAL finish';
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Reaping first ALTER TABLE.
--error ER_DUP_ENTRY
--reap
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Reaping another ALTER TABLE.
--error ER_DUP_ENTRY
@@ -800,20 +719,17 @@ connection mdl_con1;
--echo # SNW is only used by ALTER TABLE after upgrading from SU
--echo # and SU is also incompatible with SNW.
--echo #
---echo # Switching to connection 'default'.
connection default;
set debug_sync= 'alter_table_copy_after_lock_upgrade SIGNAL locked WAIT_FOR finish';
--echo # Sending:
--send alter table t1 add primary key (c1), lock=shared, algorithm=copy;
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
set debug_sync= 'now WAIT_FOR locked';
--echo # Check that SNRW lock is incompatible with SNW lock.
--echo # Sending:
--send lock table t1 write;
--echo #
---echo # Switching to connection 'mdl_con2'.
connection mdl_con2;
--echo # Check that the above LOCK TABLES is blocked because of SNW lock.
let $wait_condition=
@@ -824,33 +740,28 @@ let $wait_condition=
--echo # Unblock ALTER and thus LOCK TABLES.
set debug_sync= 'now SIGNAL finish';
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Reaping ALTER TABLE.
--error ER_DUP_ENTRY
--reap
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Reaping LOCK TABLES
--reap
insert into t1 values (1);
unlock tables;
--echo #
---echo # Switching to connection 'default'.
connection default;
set debug_sync= 'alter_table_copy_after_lock_upgrade SIGNAL locked WAIT_FOR finish';
--echo # Sending:
--send alter table t1 add primary key (c1), algorithm=copy, lock=shared;
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
set debug_sync= 'now WAIT_FOR locked';
--echo # Check that X lock is incompatible with SNW lock.
--echo # Sending:
--send rename table t1 to t2;
--echo #
---echo # Switching to connection 'mdl_con2'.
connection mdl_con2;
--echo # Check that the above RENAME is blocked because of SNW lock.
let $wait_condition=
@@ -861,13 +772,11 @@ let $wait_condition=
--echo # Unblock ALTER and thus RENAME TABLE.
set debug_sync= 'now SIGNAL finish';
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Reaping ALTER TABLE.
--error ER_DUP_ENTRY
--reap
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Reaping RENAME TABLE
--reap
@@ -878,7 +787,6 @@ rename table t2 to t1;
--echo # blocked by presence of another SNW lock because SNW/SNRW is
--echo # incompatible with SNW anyway.
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo #
--echo #
@@ -887,7 +795,6 @@ connection default;
--echo #
lock table t1 write;
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Check that S and SH locks are compatible with it.
handler t1 open;
@@ -898,7 +805,6 @@ select column_name from information_schema.columns where
--echo # Sending:
--send select count(*) from t1;
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Check that the above SELECT is blocked because of SNRW lock.
let $wait_condition=
@@ -909,22 +815,18 @@ let $wait_condition=
--echo # Unblock SELECT.
unlock tables;
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Reaping SELECT.
--reap
--echo #
---echo # Switching to connection 'default'.
connection default;
lock table t1 write;
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Check that SW lock is incompatible with SNRW lock.
--echo # Sending:
--send delete from t1 limit 1;
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Check that the above DELETE is blocked because of SNRW lock.
let $wait_condition=
@@ -935,22 +837,18 @@ let $wait_condition=
--echo # Unblock DELETE.
unlock tables;
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Reaping DELETE.
--reap
--echo #
---echo # Switching to connection 'default'.
connection default;
lock table t1 write;
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Check that SU lock is incompatible with SNRW lock.
--echo # Sending:
--send alter table t1 add primary key (c1);
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Check that the above ALTER is blocked because of SNRW lock.
let $wait_condition=
@@ -961,7 +859,6 @@ let $wait_condition=
--echo # Unblock ALTER.
unlock tables;
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Reaping ALTER TABLE.
--error ER_DUP_ENTRY
@@ -971,17 +868,14 @@ connection mdl_con1;
--echo # SNW is only used by ALTER TABLE after upgrading from SU
--echo # and SU is also incompatible with SNRW.
--echo #
---echo # Switching to connection 'default'.
connection default;
lock table t1 write;
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Check that SNRW lock is incompatible with SNRW lock.
--echo # Sending:
--send lock table t1 write;
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Check that the above LOCK TABLES is blocked because of SNRW lock.
let $wait_condition=
@@ -992,24 +886,20 @@ let $wait_condition=
--echo # Unblock waiting LOCK TABLES.
unlock tables;
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Reaping LOCK TABLES
--reap
insert into t1 values (1);
unlock tables;
--echo #
---echo # Switching to connection 'default'.
connection default;
lock table t1 write;
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Check that X lock is incompatible with SNRW lock.
--echo # Sending:
--send rename table t1 to t2;
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Check that the above RENAME is blocked because of SNRW lock.
let $wait_condition=
@@ -1020,7 +910,6 @@ let $wait_condition=
--echo # Unblock RENAME TABLE
unlock tables;
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Reaping RENAME TABLE
--reap
@@ -1031,7 +920,6 @@ rename table t2 to t1;
--echo # blocked by presence of another SNRW lock because SNW/SNRW is
--echo # incompatible with SNRW anyway.
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo #
--echo #
@@ -1040,18 +928,15 @@ connection default;
--echo #
create table t2 (c1 int);
--echo #
---echo # Switching to connection 'mdl_con2'.
connection mdl_con2;
--echo # Take a lock on t2, so RENAME TABLE t1 TO t2 will get blocked
--echo # after acquiring X lock on t1.
lock tables t2 read;
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Sending:
--send rename table t1 to t2;
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Check that RENAME has acquired X lock on t1 and is waiting for t2.
let $wait_condition=
@@ -1063,7 +948,6 @@ where state = "Waiting for table metadata lock" and
--echo # Sending:
--send handler t1 open;
--echo #
---echo # Switching to connection 'mdl_con2'.
connection mdl_con2;
--echo # Check that the above HANDLER statement is blocked because of X lock.
let $wait_condition=
@@ -1074,29 +958,24 @@ where state = "Waiting for table metadata lock" and
--echo # Unblock RENAME TABLE
unlock tables;
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Reaping RENAME TABLE.
--error ER_TABLE_EXISTS_ERROR
--reap
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Reaping HANDLER.
--reap
handler t1 close;
--echo #
---echo # Switching to connection 'mdl_con2'.
connection mdl_con2;
--echo # Prepare for blocking RENAME TABLE.
lock tables t2 read;
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Sending:
--send rename table t1 to t2;
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Check that RENAME has acquired X lock on t1 and is waiting for t2.
let $wait_condition=
@@ -1108,7 +987,6 @@ where state = "Waiting for table metadata lock" and
--echo # Sending:
--send select column_name from information_schema.columns where table_schema='test' and table_name='t1';
--echo #
---echo # Switching to connection 'mdl_con2'.
connection mdl_con2;
--echo # Check that the above SELECT ... FROM I_S ... statement is blocked
--echo # because of X lock.
@@ -1120,28 +998,23 @@ where state = "Waiting for table metadata lock" and
--echo # Unblock RENAME TABLE
unlock tables;
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Reaping RENAME TABLE.
--error ER_TABLE_EXISTS_ERROR
--reap
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Reaping SELECT ... FROM I_S.
--reap
--echo #
---echo # Switching to connection 'mdl_con2'.
connection mdl_con2;
--echo # Prepare for blocking RENAME TABLE.
lock tables t2 read;
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Sending:
--send rename table t1 to t2;
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Check that RENAME has acquired X lock on t1 and is waiting for t2.
let $wait_condition=
@@ -1153,7 +1026,6 @@ where state = "Waiting for table metadata lock" and
--echo # Sending:
--send select count(*) from t1;
--echo #
---echo # Switching to connection 'mdl_con2'.
connection mdl_con2;
--echo # Check that the above SELECT statement is blocked
--echo # because of X lock.
@@ -1165,28 +1037,23 @@ where state = "Waiting for table metadata lock" and
--echo # Unblock RENAME TABLE
unlock tables;
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Reaping RENAME TABLE.
--error ER_TABLE_EXISTS_ERROR
--reap
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Reaping SELECT.
--reap
--echo #
---echo # Switching to connection 'mdl_con2'.
connection mdl_con2;
--echo # Prepare for blocking RENAME TABLE.
lock tables t2 read;
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Sending:
--send rename table t1 to t2;
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Check that RENAME has acquired X lock on t1 and is waiting for t2.
let $wait_condition=
@@ -1198,7 +1065,6 @@ where state = "Waiting for table metadata lock" and
--echo # Sending:
--send delete from t1 limit 1;
--echo #
---echo # Switching to connection 'mdl_con2'.
connection mdl_con2;
--echo # Check that the above DELETE statement is blocked
--echo # because of X lock.
@@ -1210,28 +1076,23 @@ where state = "Waiting for table metadata lock" and
--echo # Unblock RENAME TABLE
unlock tables;
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Reaping RENAME TABLE.
--error ER_TABLE_EXISTS_ERROR
--reap
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Reaping DELETE.
--reap
--echo #
---echo # Switching to connection 'mdl_con2'.
connection mdl_con2;
--echo # Prepare for blocking RENAME TABLE.
lock tables t2 read;
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Sending:
--send rename table t1 to t2;
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Check that RENAME has acquired X lock on t1 and is waiting for t2.
let $wait_condition=
@@ -1243,7 +1104,6 @@ where state = "Waiting for table metadata lock" and
--echo # Sending:
--send alter table t1 add primary key (c1);
--echo #
---echo # Switching to connection 'mdl_con2'.
connection mdl_con2;
--echo # Check that the above ALTER statement is blocked
--echo # because of X lock.
@@ -1255,13 +1115,11 @@ where state = "Waiting for table metadata lock" and
--echo # Unblock RENAME TABLE
unlock tables;
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Reaping RENAME TABLE
--error ER_TABLE_EXISTS_ERROR
--reap
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Reaping ALTER.
--error ER_DUP_ENTRY
@@ -1271,17 +1129,14 @@ connection mdl_con1;
--echo # SNW is only used by ALTER TABLE after upgrading from SU
--echo # and SU is also incompatible with X.
--echo #
---echo # Switching to connection 'mdl_con2'.
connection mdl_con2;
--echo # Prepare for blocking RENAME TABLE.
lock tables t2 read;
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Sending:
--send rename table t1 to t2;
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Check that RENAME has acquired X lock on t1 and is waiting for t2.
let $wait_condition=
@@ -1293,7 +1148,6 @@ where state = "Waiting for table metadata lock" and
--echo # Sending:
--send lock table t1 write;
--echo #
---echo # Switching to connection 'mdl_con2'.
connection mdl_con2;
--echo # Check that the above LOCK TABLE statement is blocked
--echo # because of X lock.
@@ -1305,29 +1159,24 @@ where state = "Waiting for table metadata lock" and
--echo # Unblock RENAME TABLE
unlock tables;
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Reaping RENAME TABLE
--error ER_TABLE_EXISTS_ERROR
--reap
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Reaping LOCK TABLE.
--reap
unlock tables;
--echo #
---echo # Switching to connection 'mdl_con2'.
connection mdl_con2;
--echo # Prepare for blocking RENAME TABLE.
lock tables t2 read;
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Sending:
--send rename table t1 to t2;
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Check that RENAME has acquired X lock on t1 and is waiting for t2.
let $wait_condition=
@@ -1339,7 +1188,6 @@ where state = "Waiting for table metadata lock" and
--echo # Sending:
--send rename table t1 to t3;
--echo #
---echo # Switching to connection 'mdl_con2'.
connection mdl_con2;
--echo # Check that the above RENAME statement is blocked
--echo # because of X lock.
@@ -1351,13 +1199,11 @@ where state = "Waiting for table metadata lock" and
--echo # Unblock RENAME TABLE
unlock tables;
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Reaping RENAME TABLE
--error ER_TABLE_EXISTS_ERROR
--reap
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Reaping RENAME.
--reap
@@ -1373,7 +1219,6 @@ rename table t3 to t1;
--echo #
--echo #
---echo # Switching to connection 'mdl_con2'.
connection mdl_con2;
--echo #
--echo # 1) Check compatibility for pending SNW lock.
@@ -1382,13 +1227,11 @@ connection mdl_con2;
begin;
insert into t1 values (1);
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Add pending SNW lock.
--echo # Sending:
--send alter table t1 add primary key (c1);
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Check that ALTER TABLE is waiting with pending SNW lock.
let $wait_condition=
@@ -1406,7 +1249,6 @@ select count(*) from t1;
--echo # Sending:
--send delete from t1 limit 1;
--echo #
---echo # Switching to connection 'mdl_con2'.
connection mdl_con2;
--echo # Check that the above DELETE is blocked because of pending SNW lock.
let $wait_condition=
@@ -1417,13 +1259,11 @@ where state = "Waiting for table metadata lock" and
--echo # Unblock ALTER TABLE.
commit;
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Reaping ALTER.
--error ER_DUP_ENTRY
--reap
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Reaping DELETE.
--reap
@@ -1432,7 +1272,6 @@ connection mdl_con1;
--echo # they will also be blocked by active SW lock.
--echo #
--echo #
---echo # Switching to connection 'mdl_con2'.
connection mdl_con2;
--echo #
--echo # 2) Check compatibility for pending SNRW lock.
@@ -1441,13 +1280,11 @@ connection mdl_con2;
begin;
select count(*) from t1;
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Add pending SNRW lock.
--echo # Sending:
--send lock table t1 write;
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Check that LOCK TABLE is waiting with pending SNRW lock.
let $wait_condition=
@@ -1464,7 +1301,6 @@ select column_name from information_schema.columns where
--echo # Sending:
--send select count(*) from t1;
--echo #
---echo # Switching to connection 'mdl_con2'.
connection mdl_con2;
--echo # Check that the above SELECT is blocked because of pending SNRW lock.
let $wait_condition=
@@ -1475,29 +1311,24 @@ where state = "Waiting for table metadata lock" and
--echo # Unblock LOCK TABLE.
commit;
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Reaping LOCK TABLE.
--reap
unlock tables;
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Reaping SELECT.
--reap
--echo # Restore pending SNRW lock.
--echo #
---echo # Switching to connection 'mdl_con2'.
connection mdl_con2;
begin;
select count(*) from t1;
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Sending:
--send lock table t1 write;
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Check that LOCK TABLE is waiting with pending SNRW lock.
let $wait_condition=
@@ -1509,7 +1340,6 @@ where state = "Waiting for table metadata lock" and
--echo # Sending:
--send insert into t1 values (1);
--echo #
---echo # Switching to connection 'mdl_con2'.
connection mdl_con2;
--echo # Check that the above INSERT is blocked because of pending SNRW lock.
let $wait_condition=
@@ -1520,29 +1350,24 @@ where state = "Waiting for table metadata lock" and
--echo # Unblock LOCK TABLE.
commit;
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Reaping LOCK TABLE.
--reap
unlock tables;
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Reaping INSERT.
--reap
--echo # Restore pending SNRW lock.
--echo #
---echo # Switching to connection 'mdl_con2'.
connection mdl_con2;
begin;
select count(*) from t1;
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Sending:
--send lock table t1 write;
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Check that LOCK TABLE is waiting with pending SNRW lock.
let $wait_condition=
@@ -1555,12 +1380,10 @@ where state = "Waiting for table metadata lock" and
--error ER_DUP_ENTRY
alter table t1 add primary key (c1);
--echo #
---echo # Switching to connection 'mdl_con2'.
connection mdl_con2;
--echo # Unblock LOCK TABLE.
commit;
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Reaping LOCK TABLE.
--reap
@@ -1570,7 +1393,6 @@ unlock tables;
--echo # they will also be blocked by active SR lock.
--echo #
--echo #
---echo # Switching to connection 'mdl_con2'.
connection mdl_con2;
--echo #
--echo # 3) Check compatibility for pending X lock.
@@ -1579,13 +1401,11 @@ connection mdl_con2;
begin;
select count(*) from t1;
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Add pending X lock.
--echo # Sending:
--send rename table t1 to t2;
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Check that RENAME TABLE is waiting with pending X lock.
let $wait_condition=
@@ -1600,7 +1420,6 @@ select column_name from information_schema.columns where
--echo # Sending:
--send handler t1 open;
--echo #
---echo # Switching to connection 'mdl_con2'.
connection mdl_con2;
--echo # Check that the above HANDLER OPEN is blocked because of pending X lock.
let $wait_condition=
@@ -1611,31 +1430,26 @@ where state = "Waiting for table metadata lock" and
--echo # Unblock RENAME TABLE.
commit;
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Reaping RENAME TABLE.
--error ER_TABLE_EXISTS_ERROR
--reap
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Reaping HANDLER t1 OPEN.
--reap
handler t1 close;
--echo # Restore pending X lock.
--echo #
---echo # Switching to connection 'mdl_con2'.
connection mdl_con2;
begin;
select count(*) from t1;
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Add pending X lock.
--echo # Sending:
--send rename table t1 to t2;
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Check that RENAME TABLE is waiting with pending X lock.
let $wait_condition=
@@ -1647,7 +1461,6 @@ where state = "Waiting for table metadata lock" and
--echo # Sending:
--send select count(*) from t1;
--echo #
---echo # Switching to connection 'mdl_con2'.
connection mdl_con2;
--echo # Check that the above SELECT is blocked because of pending X lock.
let $wait_condition=
@@ -1658,30 +1471,25 @@ where state = "Waiting for table metadata lock" and
--echo # Unblock RENAME TABLE.
commit;
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Reaping RENAME TABLE.
--error ER_TABLE_EXISTS_ERROR
--reap
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Reaping SELECT.
--reap
--echo # Restore pending X lock.
--echo #
---echo # Switching to connection 'mdl_con2'.
connection mdl_con2;
begin;
select count(*) from t1;
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Add pending X lock.
--echo # Sending:
--send rename table t1 to t2;
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Check that RENAME TABLE is waiting with pending X lock.
let $wait_condition=
@@ -1693,7 +1501,6 @@ where state = "Waiting for table metadata lock" and
--echo # Sending:
--send delete from t1 limit 1;
--echo #
---echo # Switching to connection 'mdl_con2'.
connection mdl_con2;
--echo # Check that the above DELETE is blocked because of pending X lock.
let $wait_condition=
@@ -1704,30 +1511,25 @@ where state = "Waiting for table metadata lock" and
--echo # Unblock RENAME TABLE.
commit;
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Reaping RENAME TABLE.
--error ER_TABLE_EXISTS_ERROR
--reap
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Reaping DELETE.
--reap
--echo # Restore pending X lock.
--echo #
---echo # Switching to connection 'mdl_con2'.
connection mdl_con2;
begin;
select count(*) from t1;
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Add pending X lock.
--echo # Sending:
--send rename table t1 to t2;
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Check that RENAME TABLE is waiting with pending X lock.
let $wait_condition=
@@ -1739,7 +1541,6 @@ where state = "Waiting for table metadata lock" and
--echo # Sending:
--send alter table t1 add primary key (c1);
--echo #
---echo # Switching to connection 'mdl_con2'.
connection mdl_con2;
--echo # Check that the above ALTER TABLE is blocked because of pending X lock.
let $wait_condition=
@@ -1750,30 +1551,25 @@ where state = "Waiting for table metadata lock" and
--echo # Unblock RENAME TABLE.
commit;
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Reaping RENAME TABLE.
--error ER_TABLE_EXISTS_ERROR
--reap
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Reaping ALTER TABLE.
--error ER_DUP_ENTRY
--reap
--echo # Restore pending X lock.
--echo #
---echo # Switching to connection 'mdl_con2'.
connection mdl_con2;
handler t1 open;
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Add pending X lock.
--echo # Sending:
--send rename table t1 to t2;
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Check that RENAME TABLE is waiting with pending X lock.
let $wait_condition=
@@ -1785,7 +1581,6 @@ where state = "Waiting for table metadata lock" and
--echo # Sending:
--send lock table t1 write;
--echo #
---echo # Switching to connection 'mdl_con3'.
connection mdl_con3;
--echo # Check that the above LOCK TABLES is blocked because of pending X lock.
let $wait_condition=
@@ -1794,24 +1589,20 @@ where state = "Waiting for table metadata lock" and
info = "lock table t1 write";
--source include/wait_condition.inc
--echo #
---echo # Switching to connection 'mdl_con2'.
connection mdl_con2;
--echo # Unblock RENAME TABLE.
handler t1 close;
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Reaping RENAME TABLE.
--error ER_TABLE_EXISTS_ERROR
--reap
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Reaping LOCK TABLES.
--reap
unlock tables;
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo #
@@ -1833,7 +1624,6 @@ connection default;
begin;
select count(*) from t1;
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Create an active SNW lock on t2.
--echo # We have to use DEBUG_SYNC facility as otherwise SNW lock
@@ -1843,7 +1633,6 @@ set debug_sync= 'alter_table_copy_after_lock_upgrade SIGNAL locked WAIT_FOR fini
--echo # Sending:
--send alter table t2 add primary key (c1), algorithm=copy, lock=shared;
--echo #
---echo # Switching to connection 'default'.
connection default;
set debug_sync= 'now WAIT_FOR locked';
--echo # SR lock should be acquired without any waiting.
@@ -1855,7 +1644,6 @@ select count(*) from t1;
--echo # Sending:
--send insert into t2 values (1);
--echo #
---echo # Switching to connection 'mdl_con2'.
connection mdl_con2;
--echo # Check that the above INSERT is blocked.
let $wait_condition=
@@ -1866,13 +1654,11 @@ where state = "Waiting for table metadata lock" and
--echo # Unblock ALTER TABLE and thus INSERT.
set debug_sync= 'now SIGNAL finish';
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Reap ALTER TABLE.
--error ER_DUP_ENTRY
--reap
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Reap INSERT.
--reap
@@ -1887,14 +1673,12 @@ commit;
begin;
select count(*) from t1;
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Create an active SNW lock on t1.
set debug_sync= 'alter_table_copy_after_lock_upgrade SIGNAL locked WAIT_FOR finish';
--echo # Sending:
--send alter table t1 add primary key (c1), algorithm=copy, lock=shared;
--echo #
---echo # Switching to connection 'default'.
connection default;
set debug_sync= 'now WAIT_FOR locked';
--echo # We should still be able to get SR lock without waiting.
@@ -1905,7 +1689,6 @@ select count(*) from t1;
--echo # Sending:
--send insert into t1 values (1);
--echo #
---echo # Switching to connection 'mdl_con2'.
connection mdl_con2;
--echo # Check that the above INSERT is blocked.
let $wait_condition=
@@ -1916,13 +1699,11 @@ where state = "Waiting for table metadata lock" and
--echo # Unblock ALTER TABLE and thus INSERT.
set debug_sync= 'now SIGNAL finish';
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Reap ALTER TABLE.
--error ER_DUP_ENTRY
--reap
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Reap INSERT.
--reap
@@ -1935,13 +1716,11 @@ commit;
begin;
insert into t1 values (1);
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Create pending SNW lock on t1.
--echo # Sending:
--send alter table t1 add primary key (c1);
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Wait until ALTER TABLE starts waiting for SNW lock.
let $wait_condition=
@@ -1955,13 +1734,11 @@ delete from t1 limit 1;
--echo # Unblock ALTER TABLE.
commit;
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Reap ALTER TABLE.
--error ER_DUP_ENTRY
--reap
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo #
--echo # 2) Now similar tests for active SNW lock which is being upgraded
@@ -1972,20 +1749,17 @@ connection default;
begin;
select count(*) from t1;
--echo #
---echo # Switching to connection 'mdl_con2'.
connection mdl_con2;
--echo # Start transaction which will prevent SNW -> X upgrade from
--echo # completing immediately.
begin;
select count(*) from t2;
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Create SNW lock pending upgrade to X on t2.
--echo # Sending:
--send alter table t2 add column c2 int;
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Wait until ALTER TABLE starts waiting X lock.
let $wait_condition=
@@ -1997,7 +1771,6 @@ where state = "Waiting for table metadata lock" and
--echo # Sending:
--send select count(*) from t2;
--echo #
---echo # Switching to connection 'mdl_con2'.
connection mdl_con2;
--echo # Check that the above SELECT is blocked.
let $wait_condition=
@@ -2008,12 +1781,10 @@ where state = "Waiting for table metadata lock" and
--echo # Unblock ALTER TABLE.
commit;
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Reap ALTER TABLE.
--reap
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Reap SELECT.
--reap
@@ -2022,20 +1793,17 @@ commit;
begin;
select count(*) from t1;
--echo #
---echo # Switching to connection 'mdl_con2'.
connection mdl_con2;
--echo # Start transaction which will prevent SNW -> X upgrade from
--echo # completing immediately.
begin;
select count(*) from t2;
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Create SNW lock pending upgrade to X on t2.
--echo # Sending:
--send alter table t2 drop column c2;
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Wait until ALTER TABLE starts waiting X lock.
let $wait_condition=
@@ -2047,7 +1815,6 @@ where state = "Waiting for table metadata lock" and
--echo # Sending:
--send insert into t2 values (1);
--echo #
---echo # Switching to connection 'mdl_con2'.
connection mdl_con2;
--echo # Check that the above INSERT is blocked.
let $wait_condition=
@@ -2058,12 +1825,10 @@ where state = "Waiting for table metadata lock" and
--echo # Unblock ALTER TABLE.
commit;
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Reap ALTER TABLE.
--reap
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Reap INSERT.
--reap
@@ -2075,13 +1840,11 @@ commit;
begin;
select count(*) from t1;
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Create SNW lock pending upgrade to X.
--echo # Sending:
--send alter table t1 add column c2 int;
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Wait until ALTER TABLE starts waiting X lock.
let $wait_condition=
@@ -2098,12 +1861,10 @@ delete from t1 limit 1;
--echo # Unblock ALTER TABLE.
commit;
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Reap ALTER TABLE.
--reap
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo #
--echo # 3) Check how various locks used within transactional context
@@ -2114,18 +1875,15 @@ connection default;
begin;
select count(*) from t1;
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
lock table t2 write;
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Attempt to acquire SR should be blocked. It should
--echo # not cause errors as it does not creates deadlock.
--echo # Sending:
--send select count(*) from t2;
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Check that the above SELECT is blocked
let $wait_condition=
@@ -2136,7 +1894,6 @@ where state = "Waiting for table metadata lock" and
--echo # Unblock SELECT.
unlock tables;
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Reap SELECT.
--reap
@@ -2145,18 +1902,15 @@ commit;
begin;
select count(*) from t1;
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
lock table t2 write;
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Again attempt to acquire SW should be blocked and should
--echo # not cause any errors.
--echo # Sending:
--send delete from t2 limit 1;
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Check that the above DELETE is blocked
let $wait_condition=
@@ -2167,7 +1921,6 @@ where state = "Waiting for table metadata lock" and
--echo # Unblock DELETE.
unlock tables;
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Reap DELETE.
--reap
@@ -2182,12 +1935,10 @@ commit;
begin;
select count(*) from t1;
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Sending:
--send lock table t1 write;
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Wait until LOCK TABLE is blocked creating pending request for X lock.
let $wait_condition=
@@ -2204,13 +1955,11 @@ delete from t1 limit 1;
--echo # Unblock LOCK TABLES.
commit;
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Reap LOCK TABLES.
--reap
unlock tables;
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo #
--echo # **) Now case when transaction has a SW lock.
@@ -2218,12 +1967,10 @@ connection default;
begin;
delete from t1 limit 1;
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Sending:
--send lock table t1 write;
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Wait until LOCK TABLE is blocked creating pending request for X lock.
let $wait_condition=
@@ -2238,13 +1985,11 @@ insert into t1 values (1, 1);
--echo # Unblock LOCK TABLES.
commit;
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Reap LOCK TABLES.
--reap
unlock tables;
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo #
--echo # 4) Check how various locks used within transactional context
@@ -2255,20 +2000,17 @@ connection default;
begin;
select count(*) from t1;
--echo #
---echo # Switching to connection 'mdl_con2'.
connection mdl_con2;
--echo # Start transaction which will prevent X lock from going away
--echo # immediately.
begin;
select count(*) from t2;
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Create pending X lock on t2.
--echo # Sending:
--send rename table t2 to t3;
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Wait until RENAME TABLE starts waiting with pending X lock.
let $wait_condition=
@@ -2280,7 +2022,6 @@ where state = "Waiting for table metadata lock" and
--echo # Sending:
--send select count(*) from t2;
--echo #
---echo # Switching to connection 'mdl_con2'.
connection mdl_con2;
--echo # Check that the above SELECT is blocked.
let $wait_condition=
@@ -2291,12 +2032,10 @@ where state = "Waiting for table metadata lock" and
--echo # Unblock RENAME TABLE.
commit;
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Reap RENAME TABLE.
--reap
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Reap SELECT.
--error ER_NO_SUCH_TABLE
@@ -2307,20 +2046,17 @@ rename table t3 to t2;
begin;
select count(*) from t1;
--echo #
---echo # Switching to connection 'mdl_con2'.
connection mdl_con2;
--echo # Start transaction which will prevent X lock from going away
--echo # immediately.
begin;
select count(*) from t2;
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Create pending X lock on t2.
--echo # Sending:
--send rename table t2 to t3;
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Wait until RENAME TABLE starts waiting with pending X lock.
let $wait_condition=
@@ -2332,7 +2068,6 @@ where state = "Waiting for table metadata lock" and
--echo # Sending:
--send delete from t2 limit 1;
--echo #
---echo # Switching to connection 'mdl_con2'.
connection mdl_con2;
--echo # Check that the above DELETE is blocked.
let $wait_condition=
@@ -2343,12 +2078,10 @@ where state = "Waiting for table metadata lock" and
--echo # Unblock RENAME TABLE.
commit;
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Reap RENAME TABLE.
--reap
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Reap DELETE.
--error ER_NO_SUCH_TABLE
@@ -2365,12 +2098,10 @@ rename table t3 to t2;
begin;
select count(*) from t1;
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Sending:
--send rename table t1 to t2;
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Wait until RENAME TABLE is blocked creating pending request for X lock.
let $wait_condition=
@@ -2387,13 +2118,11 @@ delete from t1 limit 1;
--echo # Unblock RENAME TABLE.
commit;
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Reap RENAME TABLE.
--error ER_TABLE_EXISTS_ERROR
--reap
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo #
--echo # **) The second case is when transaction has a SW lock.
@@ -2401,12 +2130,10 @@ connection default;
begin;
delete from t1 limit 1;
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Sending:
--send rename table t1 to t2;
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Wait until RENAME TABLE is blocked creating pending request for X lock.
let $wait_condition=
@@ -2421,13 +2148,11 @@ insert into t1 values (1, 1);
--echo # Unblock RENAME TABLE.
commit;
--echo #
---echo # Switching to connection 'mdl_con1'.
connection mdl_con1;
--echo # Reap RENAME TABLE.
--error ER_TABLE_EXISTS_ERROR
--reap
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Clean-up.
@@ -2460,14 +2185,12 @@ insert into t1 values (1);
--echo #
handler t1 open;
--echo #
---echo # Switching to connection 'handler_con1'.
connection handler_con1;
lock table t1 write;
--echo # Upgrade SNRW to X lock.
--echo # Sending:
--send alter table t1 add column j int;
--echo #
---echo # Switching to connection 'handler_con2'.
connection handler_con2;
--echo # Wait until ALTER is blocked during upgrade.
let $wait_condition=
@@ -2476,18 +2199,15 @@ let $wait_condition=
info = "alter table t1 add column j int";
--source include/wait_condition.inc
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # The below statement should not cause deadlock.
--send handler t1 read first;
--echo #
---echo # Switching to connection 'handler_con1'.
connection handler_con1;
--echo # Reap ALTER TABLE.
--reap
unlock tables;
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Reap HANDLER READ.
--reap
@@ -2500,18 +2220,15 @@ handler t1 close;
--echo #
handler t1 open;
--echo #
---echo # Switching to connection 'handler_con1'.
connection handler_con1;
lock table t1 write, t2 read;
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Execute statement which will be blocked on table-level lock
--echo # owned by connection 'handler_con1'.
--echo # Sending:
--send insert into t2 values (1);
--echo #
---echo # Switching to connection 'handler_con1'.
connection handler_con1;
--echo # Wait until INSERT is blocked on table-level lock.
let $wait_condition=
@@ -2522,7 +2239,6 @@ let $wait_condition=
--echo # Sending 'alter table t1 drop column j'. It should not cause
--echo # deadlock.
send alter table t1 drop column j;
---echo # Switching to connection 'handler_con2'.
connection handler_con2;
--echo # Wait until ALTER is blocked during upgrade.
let $wait_condition=
@@ -2531,19 +2247,16 @@ let $wait_condition=
info = "alter table t1 drop column j";
--source include/wait_condition.inc
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Reap INSERT.
--error ER_LOCK_ABORTED
--reap
handler t1 close;
--echo #
---echo # Switching to connection 'handler_con1'.
connection handler_con1;
--echo # Reaping 'alter table t1 drop column j'
--reap
unlock tables;
---echo # Switching to connection 'default'.
connection default;
--echo # Then, check the scenario in which upgrade of SNRW lock to X
@@ -2552,17 +2265,14 @@ connection default;
--echo #
handler t1 open;
--echo #
---echo # Switching to connection 'handler_con1'.
connection handler_con1;
lock table t1 write;
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # The below insert should be blocked because active SNRW lock on 't1'.
--echo # Sending:
--send insert into t1 values (1);
--echo #
---echo # Switching to connection 'handler_con1'.
connection handler_con1;
--echo # Wait until INSERT is blocked because of SNRW lock.
let $wait_condition=
@@ -2574,7 +2284,6 @@ let $wait_condition=
--echo # Sending:
--send alter table t1 add column j int;
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # INSERT should be chosen as victim for resolving deadlock.
--echo # Reaping INSERT.
@@ -2583,13 +2292,11 @@ connection default;
--echo # Close HANDLER to unblock ALTER TABLE.
handler t1 close;
--echo #
---echo # Switching to connection 'handler_con1'.
connection handler_con1;
--echo # Reaping ALTER TABLE.
--reap
unlock tables;
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo #
@@ -2599,17 +2306,14 @@ connection default;
--echo #
handler t1 open;
--echo #
---echo # Switching to connection 'handler_con1'.
connection handler_con1;
lock table t1 write, t2 write;
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # The below insert should be blocked because active SNRW lock on 't1'.
--echo # Sending:
--send insert into t2 values (1);
--echo #
---echo # Switching to connection 'handler_con1'.
connection handler_con1;
--echo # Wait until INSERT is blocked because of SNRW lock.
let $wait_condition=
@@ -2621,7 +2325,6 @@ let $wait_condition=
--echo # Sending:
--send alter table t1 drop column j;
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # INSERT should be chosen as victim for resolving deadlock.
--echo # Reaping INSERT.
@@ -2630,13 +2333,11 @@ connection default;
--echo # Close HANDLER to unblock ALTER TABLE.
handler t1 close;
--echo #
---echo # Switching to connection 'handler_con1'.
connection handler_con1;
--echo # Reaping ALTER TABLE.
--reap
unlock tables;
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Clean-up.
@@ -2668,25 +2369,21 @@ create table t4 (k int);
--echo #
--echo #
---echo # Switching to connection 'deadlock_con1'.
connection deadlock_con1;
begin;
insert into t1 values (1);
--echo #
---echo # Switching to connection 'deadlock_con2'.
connection deadlock_con2;
begin;
insert into t2 values (1);
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Send:
--send rename table t2 to t0, t3 to t2, t0 to t3;
--echo #
---echo # Switching to connection 'deadlock_con1'.
connection deadlock_con1;
--echo # Wait until the above RENAME TABLE is blocked because it has to wait
--echo # for 'deadlock_con2' which holds shared metadata lock on 't2'.
@@ -2702,7 +2399,6 @@ let $wait_condition=
--send select * from t2;
--echo #
---echo # Switching to connection 'deadlock_con2'.
connection deadlock_con2;
--echo # Wait until the above SELECT * FROM t2 is starts waiting
--echo # for an exclusive metadata lock to go away.
@@ -2716,19 +2412,16 @@ let $wait_condition=
commit;
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Reap RENAME TABLE.
--reap
--echo #
---echo # Switching to connection 'deadlock_con1'.
connection deadlock_con1;
--echo # Reap SELECT.
--reap
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo #
--echo # Let us check that in the process of waiting for conflicting lock
@@ -2738,7 +2431,6 @@ connection default;
--send rename table t1 to t0, t3 to t1, t0 to t3;
--echo #
---echo # Switching to connection 'deadlock_con1'.
connection deadlock_con1;
--echo # Wait until the above RENAME TABLE is blocked because it has to wait
--echo # for 'deadlock_con1' which should still hold shared metadata lock on
@@ -2752,7 +2444,6 @@ let $wait_condition=
commit;
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Reap RENAME TABLE.
--reap
@@ -2762,19 +2453,16 @@ connection default;
--echo #
--echo #
---echo # Switching to connection 'deadlock_con1'.
connection deadlock_con1;
begin;
insert into t2 values (2);
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Send:
--send rename table t2 to t0, t1 to t2, t0 to t1;
--echo #
---echo # Switching to connection 'deadlock_con1'.
connection deadlock_con1;
--echo # Wait until the above RENAME TABLE is blocked because it has to wait
--echo # for 'deadlock_con1' which holds shared metadata lock on 't2'.
@@ -2791,7 +2479,6 @@ let $wait_condition=
select * from t1;
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Reap RENAME TABLE.
--reap
@@ -2801,18 +2488,15 @@ connection default;
--echo #
--echo #
---echo # Switching to connection 'deadlock_con1'.
connection deadlock_con1;
begin;
insert into t2 values (1);
--echo #
---echo # Switching to connection 'default'.
connection default;
lock table t1 write;
--echo #
---echo # Switching to connection 'deadlock_con1'.
connection deadlock_con1;
--echo # The below SELECT statement should wait for metadata lock
--echo # on table 't1' and should not produce ER_LOCK_DEADLOCK
@@ -2820,7 +2504,6 @@ connection deadlock_con1;
--send select * from t1;
--echo #
---echo # Switching to connection 'deadlock_con2'.
connection deadlock_con2;
--echo # Wait until the above SELECT * FROM t1 is starts waiting
--echo # for an UNRW metadata lock to go away.
@@ -2834,7 +2517,6 @@ let $wait_condition=
--send rename table t1 to t0, t2 to t1, t0 to t2;
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Wait till above RENAME TABLE is blocked while holding
--echo # pending X lock on t1.
@@ -2848,7 +2530,6 @@ let $wait_condition=
unlock tables;
--echo #
---echo # Switching to connection 'deadlock_con1'.
connection deadlock_con1;
--echo # Since the latest RENAME TABLE entered in deadlock with SELECT
--echo # statement the latter should be aborted and emit ER_LOCK_DEADLOCK
@@ -2858,13 +2539,11 @@ connection deadlock_con1;
--reap
--echo #
---echo # Switching to connection 'deadlock_con2'.
connection deadlock_con2;
--echo # Reap RENAME TABLE ... .
--reap;
--echo #
---echo # Switching to connection 'default'.
connection default;
drop tables t1, t2, t3, t4;
@@ -2881,19 +2560,16 @@ insert into t1 values (1);
select * from t1;
--echo #
---echo # Switching to connection 'deadlock_con1'.
connection deadlock_con1;
begin;
select * from t1;
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Send:
--send alter table t1 add column j int, rename to t2;
--echo #
---echo # Switching to connection 'deadlock_con1'.
connection deadlock_con1;
--echo # Wait until the above ALTER TABLE ... RENAME acquires exclusive
--echo # metadata lock on 't2' and starts waiting for connection
@@ -2911,7 +2587,6 @@ let $wait_condition=
select * from t2;
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Reap ALTER TABLE ... RENAME.
--reap
@@ -2935,7 +2610,6 @@ set debug_sync= 'after_open_table_mdl_shared SIGNAL locked WAIT_FOR finish';
--send select * from t2, t1
--echo #
---echo # Switching to connection 'deadlock_con1'.
connection deadlock_con1;
--echo # Wait till SELECT acquires MDL on 't2' and starts waiting for signal.
set debug_sync= 'now WAIT_FOR locked';
@@ -2943,7 +2617,6 @@ set debug_sync= 'now WAIT_FOR locked';
--send lock tables t1 write, t2 write
--echo #
---echo # Switching to connection 'deadlock_con2'.
connection deadlock_con2;
--echo # Wait until LOCK TABLES acquires SNRW lock on 't1' and is blocked
--echo # while trying to acquire SNRW lock on 't1'.
@@ -2956,14 +2629,12 @@ let $wait_condition=
set debug_sync= 'now SIGNAL finish';
--echo #
---echo # Switching to connection 'deadlock_con1'.
connection deadlock_con1;
--echo # Reaping LOCK TABLES.
--reap
unlock tables;
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Reaping SELECT. It succeed and not report ER_LOCK_DEADLOCK error.
--reap
@@ -2983,7 +2654,6 @@ set debug_sync='alter_table_copy_after_lock_upgrade SIGNAL parked1 WAIT_FOR go1'
--send alter table t1 add column j int
--echo #
---echo # Switching to connection 'deadlock_con1'.
connection deadlock_con1;
--echo # Wait till ALTER acquires SNW lock and stops.
set debug_sync='now WAIT_FOR parked1';
@@ -2995,7 +2665,6 @@ set debug_sync='mdl_acquire_lock_wait SIGNAL parked2 WAIT_FOR go2';
--send insert into t1 values ()
--echo #
---echo # Switching to connection 'deadlock_con2'.
connection deadlock_con2;
--echo # Wait till INSERT is paused.
set debug_sync='now WAIT_FOR parked2';
@@ -3005,7 +2674,6 @@ set debug_sync='now WAIT_FOR parked2';
set debug_sync='now SIGNAL go1';
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Reaping ALTER TABLE.
--reap
@@ -3014,7 +2682,6 @@ connection default;
--send alter table t1 drop column j
--echo #
---echo # Switching to connection 'deadlock_con2'.
connection deadlock_con2;
--echo # Wait until ALTER is blocked.
let $wait_condition=
@@ -3035,13 +2702,11 @@ let $wait_condition=
set debug_sync='now SIGNAL go2';
--echo #
---echo # Switching to connection 'deadlock_con1'.
connection deadlock_con1;
--echo # Reaping INSERT.
--reap
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Reaping ALTER. It should succeed and not produce ER_LOCK_DEADLOCK.
--reap
@@ -3063,7 +2728,6 @@ create table t2(j int);
--echo #
set debug_sync= 'RESET';
---echo # Switching to connection 'deadlock_con1'.
connection deadlock_con1;
--echo # Start a statement, which will acquire SR metadata lock on t1, open it
--echo # and then stop, before trying to acquire SW lock on t2 and opening it.
@@ -3071,7 +2735,6 @@ set debug_sync='open_tables_after_open_and_process_table SIGNAL parked WAIT_FOR
--echo # Sending:
--send select * from t1 where i in (select j from t2 for update)
---echo # Switching to connection 'deadlock_con2'.
connection deadlock_con2;
--echo # Wait till the above SELECT stops.
set debug_sync='now WAIT_FOR parked';
@@ -3080,7 +2743,6 @@ set debug_sync='now WAIT_FOR parked';
--echo # Sending:
send flush tables t1, t2 with read lock;
---echo # Switching to connection 'deadlock_con3'.
connection deadlock_con3;
--echo # Wait until FLUSH TABLES WITH t1, t2 READ LOCK starts waiting
--echo # for SELECT to close t1.
@@ -3095,13 +2757,11 @@ let $wait_condition=
--echo # by backing-off SELECT. As a result FTWRL should be able to finish.
set debug_sync='now SIGNAL go';
---echo # Switching to connection 'deadlock_con2'.
connection deadlock_con2;
--echo # Reap FLUSH TABLES WITH READ LOCK.
reap;
unlock tables;
---echo # Switching to connection 'deadlock_con1'.
connection deadlock_con1;
--echo # Reap SELECT.
reap;
@@ -3113,7 +2773,6 @@ reap;
--echo #
set debug_sync= 'RESET';
---echo # Switching to connection 'deadlock_con2'.
connection deadlock_con2;
set debug_sync='flush_tables_with_read_lock_after_acquire_locks SIGNAL parked WAIT_FOR go';
@@ -3122,7 +2781,6 @@ set debug_sync='flush_tables_with_read_lock_after_acquire_locks SIGNAL parked WA
--echo # Sending:
send flush tables t1, t2 with read lock;
---echo # Switching to connection 'deadlock_con1'.
connection deadlock_con1;
--echo # Wait till FLUSH TABLE WITH READ LOCK stops.
set debug_sync='now WAIT_FOR parked';
@@ -3132,7 +2790,6 @@ set debug_sync='now WAIT_FOR parked';
--echo # Sending:
send select * from t1 where i in (select j from t2 for update);
---echo # Switching to connection 'deadlock_con3'.
connection deadlock_con3;
--echo # Wait till the above SELECT blocks.
let $wait_condition=
@@ -3146,13 +2803,11 @@ let $wait_condition=
--echo # backing-off SELECT. As a result FTWRL should be able to finish.
set debug_sync='now SIGNAL go';
---echo # Switching to connection 'deadlock_con2'.
connection deadlock_con2;
--echo # Reap FLUSH TABLES WITH READ LOCK.
reap;
unlock tables;
---echo # Switching to connection 'deadlock_con1'.
connection deadlock_con1;
--echo # Reap SELECT.
reap;
@@ -3163,7 +2818,6 @@ reap;
--echo #
set debug_sync= 'RESET';
---echo # Switching to connection 'deadlock_con1'.
connection deadlock_con1;
--echo # Start a statement which will acquire SR metadata lock on t2, open it
--echo # and then stop, before trying to acquire SR on t1 and opening it.
@@ -3171,7 +2825,6 @@ set debug_sync='open_tables_after_open_and_process_table SIGNAL parked WAIT_FOR
--echo # Sending:
send select * from t2, t1;
---echo # Switching to connection 'deadlock_con2'.
connection deadlock_con2;
--echo # Wait till the above SELECT stops.
set debug_sync='now WAIT_FOR parked';
@@ -3180,7 +2833,6 @@ set debug_sync='now WAIT_FOR parked';
--echo # Sending:
send flush tables t2 with read lock;
---echo # Switching to connection 'deadlock_con3'.
connection deadlock_con3;
--echo # Wait until FLUSH TABLES WITH READ LOCK starts waiting
--echo # for SELECT to close t2.
@@ -3195,7 +2847,6 @@ let $wait_condition=
--echo # Sending:
send drop tables t1, t2;
---echo # Switching to connection 'default'.
connection default;
--echo # Wait until DROP TABLES starts waiting for X lock on t2.
let $wait_condition=
@@ -3209,25 +2860,21 @@ let $wait_condition=
--echo # by backing-off SELECT. As a result, FTWRL should be able to finish.
set debug_sync='now SIGNAL go';
---echo # Switching to connection 'deadlock_con2'.
connection deadlock_con2;
--echo # Reap FLUSH TABLES WITH READ LOCK.
reap;
--echo # Unblock DROP TABLES.
unlock tables;
---echo # Switching to connection 'deadlock_con3'.
connection deadlock_con3;
--echo # Reap DROP TABLES.
reap;
---echo # Switching to connection 'deadlock_con1'.
connection deadlock_con1;
--echo # Reap SELECT. It should emit error about missing table.
--error ER_NO_SUCH_TABLE
reap;
---echo # Switching to connection 'default'.
connection default;
set debug_sync= 'RESET';
@@ -3251,7 +2898,6 @@ set debug_sync= 'RESET';
create table t1(i int);
create table t2(j int);
---echo # Switching to connection 'con2'.
connection con2;
set debug_sync='open_tables_after_open_and_process_table SIGNAL parked WAIT_FOR go';
@@ -3261,7 +2907,6 @@ set debug_sync='open_tables_after_open_and_process_table SIGNAL parked WAIT_FOR
--echo # Sending:
send flush tables t1, t2 with read lock;
---echo # Switching to connection 'con1'.
connection con1;
--echo # Wait till FLUSH TABLES <list> WITH READ LOCK stops.
set debug_sync='now WAIT_FOR parked';
@@ -3271,7 +2916,6 @@ set debug_sync='now WAIT_FOR parked';
--echo # Sending:
send flush tables;
---echo # Switching to connection 'default'.
connection default;
--echo # Wait till the above FLUSH TABLES blocks.
let $wait_condition=
@@ -3286,19 +2930,16 @@ let $wait_condition=
--echo # which would result in assertion failures.
set debug_sync='now SIGNAL go';
---echo # Switching to connection 'con2'.
connection con2;
--echo # Reap FLUSH TABLES <list> WITH READ LOCK.
reap;
unlock tables;
---echo # Switching to connection 'con1'.
connection con1;
--echo # Reap FLUSH TABLES.
reap;
--echo # Clean-up.
---echo # Switching to connection 'default'.
connection default;
drop tables t1, t2;
set debug_sync= 'RESET';
@@ -3328,16 +2969,13 @@ create trigger t1_bi before insert on t1 for each row
create trigger t2_bi before insert on t2 for each row
insert into t3 values (new.j);
--echo #
---echo # Switching to connection 'con1root'.
connection con1root;
lock tables t4 read;
--echo #
---echo # Switching to connection 'con2root'.
connection con2root;
--echo # Send :
--send rename table t3 to t5, t4 to t3;
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Wait until the above RENAME TABLE adds pending requests for exclusive
--echo # metadata lock on its tables and blocks due to 't4' being used by LOCK
@@ -3349,7 +2987,6 @@ let $wait_condition= select count(*)= 1 from information_schema.processlist
--echo # Send :
--send insert into t1 values (1);
--echo #
---echo # Switching to connection 'con1root'.
connection con1root;
--echo # Wait until INSERT statement waits due to encountering pending
--echo # exclusive metadata lock on 't3'.
@@ -3359,12 +2996,10 @@ let $wait_condition= select count(*)= 1 from information_schema.processlist
--source include/wait_condition.inc
unlock tables;
--echo #
---echo # Switching to connection 'con2root'.
connection con2root;
--echo # Reap RENAME TABLE.
--reap
--echo #
---echo # Switching to connection 'default'.
connection default;
--echo # Reap INSERT.
--reap
@@ -3390,14 +3025,12 @@ connect(con2, localhost, root,,);
--echo # Test 1: CREATE TABLE
--echo #
---echo # Connection 2
connection con2;
--echo # Start insert on the not-yet existing table
--echo # Wait after taking the MDL lock
SET DEBUG_SYNC= 'after_open_table_mdl_shared SIGNAL locked WAIT_FOR finish';
--send INSERT INTO t1 VALUES(1,"def")
---echo # Connection 1
connection default;
SET DEBUG_SYNC= 'now WAIT_FOR locked';
--echo # Now INSERT has a MDL on the non-existent table t1.
@@ -3408,13 +3041,11 @@ SET DEBUG_SYNC= 'mdl_acquire_lock_wait SIGNAL finish';
--echo # Try to create that table.
--send CREATE TABLE t1 (c1 INT, c2 VARCHAR(100), KEY(c1))
---echo # Connection 2
--echo # Insert fails
connection con2;
--error ER_NO_SUCH_TABLE
--reap
---echo # Connection 1
connection default;
--reap;
SET DEBUG_SYNC= 'RESET';
@@ -3430,14 +3061,12 @@ DROP TABLE IF EXISTS t1;
CREATE TABLE t2 (c1 INT, c2 VARCHAR(100), KEY(c1));
---echo # Connection 2
connection con2;
--echo # Start insert on the not-yet existing table
--echo # Wait after taking the MDL
SET DEBUG_SYNC= 'after_open_table_mdl_shared SIGNAL locked WAIT_FOR finish';
--send INSERT INTO t1 VALUES(1,"def")
---echo # Connection 1
connection default;
SET DEBUG_SYNC= 'now WAIT_FOR locked';
--echo # Now INSERT has a MDL on the non-existent table t1.
@@ -3448,13 +3077,11 @@ SET DEBUG_SYNC= 'mdl_acquire_lock_wait SIGNAL finish';
--echo # Try to create that table.
--send CREATE TABLE t1 LIKE t2
---echo # Connection 2
--echo # Insert fails
connection con2;
--error ER_NO_SUCH_TABLE
--reap
---echo # Connection 1
connection default;
--reap
SET DEBUG_SYNC= 'RESET';
@@ -3488,12 +3115,10 @@ insert into t1 values(1);
--echo # which owner is in its turn waiting for our connection.
lock tables t1 read;
---echo # Switching to connection 'con46044_2'.
connection con46044_2;
--echo # Sending:
--send update t1 set i = 2
---echo # Switching to connection 'con46044'.
connection con46044;
--echo # Waiting until UPDATE t1 SET ... is blocked.
@@ -3506,7 +3131,6 @@ let $wait_condition=
--echo # Sending:
--send create table t2 select * from t1;
---echo # Switching to connection 'default'.
connection default;
--echo # Waiting until CREATE TABLE ... SELECT ... is blocked.
let $wait_condition=
@@ -3533,11 +3157,9 @@ select column_name from information_schema.columns
select table_name, table_type, auto_increment, table_comment
from information_schema.tables where table_schema='test' and table_name='t2';
---echo # Switching to connection 'default'.
connection default;
unlock tables;
---echo # Switching to connection 'con46044'.
connection con46044;
--echo # Reaping CREATE TABLE ... SELECT ... .
--reap
@@ -3555,16 +3177,13 @@ connection con46044_2;
--echo #
--echo # We check same three queries to I_S in this new situation.
---echo # Switching to connection 'con46044_2'.
connection con46044_2;
lock tables t1 read;
---echo # Switching to connection 'con46044_3'.
connection con46044_3;
--echo # Sending:
send update t1 set i = 3;
---echo # Switching to connection 'con46044'.
connection con46044;
--echo # Waiting until UPDATE t1 SET ... is blocked.
@@ -3577,7 +3196,6 @@ let $wait_condition=
--echo # Sending:
--send create table t2 select * from t1;
---echo # Switching to connection 'default'.
connection default;
--echo # Waiting until CREATE TABLE ... SELECT ... is blocked.
let $wait_condition=
@@ -3590,7 +3208,6 @@ let $wait_condition=
--echo # Sending:
--send show fields from t2;
---echo # Switching to connection 'con46044_2'.
connection con46044_2;
--echo # Wait until SHOW FIELDS gets blocked.
let $wait_condition=
@@ -3601,12 +3218,10 @@ let $wait_condition=
unlock tables;
---echo # Switching to connection 'con46044'.
connection con46044;
--echo # Reaping CREATE TABLE ... SELECT ... .
--reap
---echo # Switching to connection 'default'.
connection default;
--echo # Reaping SHOW FIELDS ...
--reap
@@ -3616,16 +3231,13 @@ connection con46044_3;
--echo # Reaping UPDATE t1 statement
--reap
---echo # Switching to connection 'con46044_2'.
connection con46044_2;
lock tables t1 read;
---echo # Switching to connection 'con46044_3'.
connection con46044_3;
--echo # Sending:
--send update t1 set i = 4
---echo # Switching to connection 'con46044'.
connection con46044;
--echo # Waiting until UPDATE t1 SET ... is blocked.
@@ -3638,7 +3250,6 @@ let $wait_condition=
--echo # Sending:
--send create table t2 select * from t1;
---echo # Switching to connection 'default'.
connection default;
--echo # Waiting until CREATE TABLE ... SELECT ... is blocked.
let $wait_condition=
@@ -3651,7 +3262,6 @@ let $wait_condition=
--echo # Sending:
--send select column_name from information_schema.columns where table_schema='test' and table_name='t2';
---echo # Switching to connection 'con46044_2'.
connection con46044_2;
--echo # Wait until SELECT COLUMN_NAME FROM I_S.COLUMNS gets blocked.
let $wait_condition=
@@ -3662,12 +3272,10 @@ let $wait_condition=
unlock tables;
---echo # Switching to connection 'con46044'.
connection con46044;
--echo # Reaping CREATE TABLE ... SELECT ... .
--reap
---echo # Switching to connection 'default'.
connection default;
--echo # Reaping SELECT COLUMN_NAME FROM I_S.COLUMNS
--reap
@@ -3677,16 +3285,13 @@ connection con46044_3;
--echo # Reaping UPDATE t1 statement
--reap
---echo # Switching to connection 'con46044_2'.
connection con46044_2;
lock tables t1 read;
---echo # Switching to connection 'con46044_3'.
connection con46044_3;
--echo # Sending:
--send update t1 set i = 5
---echo # Switching to connection 'con46044'.
connection con46044;
--echo # Waiting until UPDATE t1 SET ... is blocked.
@@ -3699,7 +3304,6 @@ let $wait_condition=
--echo # Sending:
--send create table t2 select * from t1;
---echo # Switching to connection 'default'.
connection default;
--echo # Waiting until CREATE TABLE ... SELECT ... is blocked.
let $wait_condition=
@@ -3713,7 +3317,6 @@ let $wait_condition=
--echo # Sending:
--send select table_name, table_type, auto_increment, table_comment from information_schema.tables where table_schema='test' and table_name='t2';
---echo # Switching to connection 'con46044_2'.
connection con46044_2;
--echo # Wait until SELECT ... FROM I_S.TABLES gets blocked.
let $wait_condition=
@@ -3724,12 +3327,10 @@ let $wait_condition=
unlock tables;
---echo # Switching to connection 'con46044'.
connection con46044;
--echo # Reaping CREATE TABLE ... SELECT ... .
--reap
---echo # Switching to connection 'default'.
connection default;
--echo # Reaping SELECT ... FROM I_S.TABLES
--reap
@@ -3739,7 +3340,6 @@ connection con46044_3;
--echo # Reaping UPDATE t1 statement
--reap
---echo # Switching to connection 'default'.
connection default;
--echo # Clean-up.
disconnect con46044;
@@ -3765,13 +3365,11 @@ begin;
select * from t1 where c2 = 3;
--echo #
---echo # Switching to connection 'con46273'.
connection con46273;
set debug_sync='alter_table_copy_after_lock_upgrade SIGNAL alter_table_locked WAIT_FOR alter_go';
--send alter table t1 add column e int, rename to t2;
--echo #
---echo # Switching to connection 'default'.
connection default;
set debug_sync='now WAIT_FOR alter_table_locked';
set debug_sync='mdl_acquire_lock_wait SIGNAL alter_go';
@@ -3782,13 +3380,11 @@ set debug_sync='mdl_acquire_lock_wait SIGNAL alter_go';
update t1 set c3=c3+1 where c2 = 3;
--echo #
---echo # Switching to connection 'con46273'.
connection con46273;
--echo # Reap ALTER TABLE.
--reap
--echo #
---echo # Switching to connection 'default'.
connection default;
disconnect con46273;
--echo # Clean-up.
@@ -3807,12 +3403,10 @@ connect (con46673, localhost, root,,);
connection default;
create table t1 (i int);
---echo # Switching to connection 'con46673'.
connection con46673;
begin;
insert into t1 values (1);
---echo # Switching to connection 'default'.
connection default;
--echo # Statement below should not get blocked. And if after some
--echo # changes to code it is there should not be a deadlock between
@@ -3820,12 +3414,10 @@ connection default;
flush tables with read lock;
unlock tables;
---echo # Switching to connection 'con46673'.
connection con46673;
delete from t1 where i = 1;
commit;
---echo # Switching to connection 'default'.
connection default;
--echo # Clean-up
disconnect con46673;
@@ -3841,13 +3433,11 @@ connect (con2, localhost, root);
--echo # Test 1: CREATE PROCEDURE
---echo # Connection 1
connection default;
--echo # Start CREATE PROCEDURE and open mysql.proc
SET DEBUG_SYNC= 'after_open_table_mdl_shared SIGNAL table_opened WAIT_FOR grlwait';
--send CREATE PROCEDURE p1() SELECT 1
---echo # Connection 2
connection con2;
SET DEBUG_SYNC= 'now WAIT_FOR table_opened';
--echo # Check that FLUSH must wait to get the GRL
@@ -3855,16 +3445,13 @@ SET DEBUG_SYNC= 'now WAIT_FOR table_opened';
SET DEBUG_SYNC= 'mdl_acquire_lock_wait SIGNAL grlwait';
--send FLUSH TABLES WITH READ LOCK
---echo # Connection 1
connection default;
--reap
---echo # Connection 2
connection con2;
--reap
UNLOCK TABLES;
---echo # Connection 1
connection default;
SET DEBUG_SYNC= 'RESET';
@@ -3875,7 +3462,6 @@ connection default;
SET DEBUG_SYNC= 'after_open_table_mdl_shared SIGNAL table_opened WAIT_FOR grlwait';
--send DROP PROCEDURE p1
---echo # Connection 2
connection con2;
SET DEBUG_SYNC= 'now WAIT_FOR table_opened';
--echo # Check that FLUSH must wait to get the GRL
@@ -3883,7 +3469,6 @@ SET DEBUG_SYNC= 'now WAIT_FOR table_opened';
SET DEBUG_SYNC= 'mdl_acquire_lock_wait SIGNAL grlwait';
--send FLUSH TABLES WITH READ LOCK
---echo # Connection 1
connection default;
--echo # Once FLUSH TABLES WITH READ LOCK starts waiting
--echo # DROP PROCEDURE will be waked up and will drop
@@ -3893,13 +3478,11 @@ connection default;
--echo # Reaping DROP PROCEDURE.
--reap
---echo # Connection 2
connection con2;
--echo # Reaping FTWRL.
--reap
UNLOCK TABLES;
---echo # Connection 1
connection default;
SET DEBUG_SYNC= 'RESET';
@@ -4015,13 +3598,11 @@ connect (con50913_2,localhost,root);
connection default;
create table t1 (i int) engine=InnoDB;
---echo # Switching to connection 'con50913_1'.
connection con50913_1;
set debug_sync= 'alter_table_copy_after_lock_upgrade SIGNAL parked WAIT_FOR go';
--echo # Sending:
--send alter table t1 add column j int, ALGORITHM=COPY
---echo # Switching to connection 'default'.
connection default;
--echo # Wait until ALTER TABLE gets blocked on a sync point after
--echo # acquiring thr_lock.c lock.
@@ -4031,7 +3612,6 @@ set debug_sync= 'now WAIT_FOR parked';
--echo # Sending:
--send truncate table t1
---echo # Switching to connection 'con50913_2'.
connection con50913_2;
--echo # Wait until TRUNCATE TABLE is blocked on MDL lock.
let $wait_condition=
@@ -4042,12 +3622,10 @@ let $wait_condition=
--echo # Unblock ALTER TABLE.
set debug_sync= 'now SIGNAL go';
---echo # Switching to connection 'con50913_1'.
connection con50913_1;
--echo # Reaping ALTER TABLE.
--reap
---echo # Switching to connection 'default'.
connection default;
--echo # Reaping TRUNCATE TABLE.
--reap
@@ -4074,17 +3652,14 @@ connect (con3,localhost,root);
connection default;
create table t1 (i int);
---echo # Switching to connection 'con1'.
connection con1;
begin;
select * from t1;
---echo # Switching to connection 'con2'.
connection con2;
begin;
select * from t1;
---echo # Switching to connection 'default'.
connection default;
--echo # Start ALTER TABLE which will acquire SNW lock and
--echo # table lock and get blocked on sync point.
@@ -4092,19 +3667,16 @@ set debug_sync= 'alter_table_copy_after_lock_upgrade SIGNAL parked WAIT_FOR go';
--echo # Sending:
--send alter table t1 add column j int
---echo # Switching to connection 'con1'.
connection con1;
--echo # Wait until ALTER TABLE gets blocked on a sync point.
set debug_sync= 'now WAIT_FOR parked';
--echo # Sending:
--send insert into t1 values (1)
---echo # Switching to connection 'con2'.
connection con2;
--echo # Sending:
--send insert into t1 values (1)
---echo # Switching to connection 'con3'.
connection con3;
--echo # Wait until both 'con1' and 'con2' are blocked trying to acquire
--echo # SW lock on the table.
@@ -4119,7 +3691,6 @@ let $wait_condition=
--echo # should be aborted with ER_LOCK_DEADLOCK errors.
set debug_sync= 'now SIGNAL go';
---echo # Switching to connection 'con1'.
connection con1;
--echo # Reaping INSERT. It should end with ER_LOCK_DEADLOCK error and
--echo # not wait indefinitely (as it happened before the bugfix).
@@ -4127,14 +3698,12 @@ connection con1;
--reap
commit;
---echo # Switching to connection 'con2'.
connection con2;
--echo # Reaping INSERT.
--error ER_LOCK_DEADLOCK
--reap
commit;
---echo # Switching to connection 'default'.
connection default;
--echo # Reap ALTER TABLE.
--reap
@@ -4165,32 +3734,26 @@ DROP TABLE IF EXISTS t1;
CREATE TABLE t1 (a INT) ENGINE=InnoDB;
INSERT INTO t1 VALUES (1),(2),(3);
---echo # Connection: con1
connection con1;
LOCK TABLES t1 WRITE;
SET debug_sync='upgrade_lock_for_truncate SIGNAL parked_truncate WAIT_FOR go_truncate';
send TRUNCATE TABLE t1;
connection default;
---echo # Connection: default
SET debug_sync='now WAIT_FOR parked_truncate';
connection con2;
---echo # Connection: con2
SET debug_sync='after_open_table_ignore_flush SIGNAL parked_show WAIT_FOR go_show';
send SHOW FIELDS FROM t1;
connection default;
---echo # Connection: default
SET debug_sync='now WAIT_FOR parked_show';
connection con3;
---echo # Connection: con3
SET debug_sync='after_flush_unlock SIGNAL parked_flush WAIT_FOR go_flush';
send FLUSH TABLES t1;
connection default;
---echo # Connection: default
SET debug_sync='now WAIT_FOR parked_flush';
SET debug_sync='now SIGNAL go_truncate';
--echo # Ensure that truncate waits for a exclusive lock
@@ -4200,22 +3763,18 @@ let $wait_condition=SELECT COUNT(*)=1 FROM information_schema.processlist
SET debug_sync= 'now SIGNAL go_show';
connection con1;
---echo # Connection: con1 (TRUNCATE)
--echo # Reaping...
reap;
UNLOCK TABLES;
connection con2;
---echo # Connection: con2 (SHOW FIELDS FROM t1)
--echo # Reaping...
reap;
connection default;
---echo # Connection: default
SET debug_sync= 'now SIGNAL go_flush';
connection con3;
---echo # Connection: con3 (FLUSH TABLES t1)
--echo # Reaping...
reap;
@@ -4224,7 +3783,6 @@ disconnect con2;
disconnect con3;
connection default;
---echo # Connection: default
SET debug_sync= 'RESET';
DROP TABLE t1;
@@ -4268,20 +3826,17 @@ connect (con3, localhost, root);
--echo # not database DDL on different databases. Tests X vs X lock.
--echo #
---echo # Connection default
connection default;
SET DEBUG_SYNC= 'after_wait_locked_schema_name SIGNAL locked WAIT_FOR blocked';
--echo # Sending:
--send CREATE DATABASE db1
---echo # Connection con2
connection con2;
SET DEBUG_SYNC= 'now WAIT_FOR locked';
--echo # Sending:
# This should block.
--send CREATE DATABASE db1
---echo # Connection con3
connection con3;
let $wait_condition=SELECT COUNT(*)=1 FROM information_schema.processlist
WHERE state='Waiting for schema metadata lock' AND info='CREATE DATABASE db1';
@@ -4292,12 +3847,10 @@ ALTER DATABASE db2 DEFAULT CHARACTER SET utf8;
DROP DATABASE db2;
SET DEBUG_SYNC= 'now SIGNAL blocked';
---echo # Connection default
connection default;
--echo # Reaping: CREATE DATABASE db1
--reap
---echo # Connection con2
connection con2;
--echo # Reaping: CREATE DATABASE db1
--error ER_DB_CREATE_EXISTS
@@ -4308,20 +3861,17 @@ connection con2;
--echo # not database DDL on different databases. Tests X vs X lock.
--echo #
---echo # Connection default
connection default;
SET DEBUG_SYNC= 'after_wait_locked_schema_name SIGNAL locked WAIT_FOR blocked';
--echo # Sending:
--send ALTER DATABASE db1 DEFAULT CHARACTER SET utf8
---echo # Connection con2
connection con2;
SET DEBUG_SYNC= 'now WAIT_FOR locked';
--echo # Sending:
# This should block.
--send ALTER DATABASE db1 DEFAULT CHARACTER SET utf8
---echo # Connection con3
connection con3;
let $wait_condition=SELECT COUNT(*)=1 FROM information_schema.processlist
WHERE state='Waiting for schema metadata lock'
@@ -4333,42 +3883,35 @@ ALTER DATABASE db2 DEFAULT CHARACTER SET utf8;
DROP DATABASE db2;
SET DEBUG_SYNC= 'now SIGNAL blocked';
---echo # Connection default
connection default;
--echo # Reaping: ALTER DATABASE db1 DEFAULT CHARACTER SET utf8
--reap
---echo # Connection con2
connection con2;
--echo # Reaping: ALTER DATABASE db1 DEFAULT CHARACTER SET utf8
--reap
---echo # Connection default
connection default;
SET DEBUG_SYNC= 'after_wait_locked_schema_name SIGNAL locked WAIT_FOR blocked';
--echo # Sending:
--send ALTER DATABASE db1 DEFAULT CHARACTER SET utf8
---echo # Connection con2
connection con2;
SET DEBUG_SYNC= 'now WAIT_FOR locked';
--echo # Sending:
# This should also block.
--send DROP DATABASE db1
---echo # Connection con3
connection con3;
let $wait_condition=SELECT COUNT(*)=1 FROM information_schema.processlist
WHERE state='Waiting for schema metadata lock' AND info='DROP DATABASE db1';
--source include/wait_condition.inc
SET DEBUG_SYNC= 'now SIGNAL blocked';
---echo # Connection default
connection default;
--echo # Reaping: ALTER DATABASE db1 DEFAULT CHARACTER SET utf8
--reap
---echo # Connection con2
connection con2;
--echo # Reaping: DROP DATABASE db1
--reap
@@ -4387,20 +3930,17 @@ let $MYSQLD_DATADIR= `select @@datadir`;
--mkdir $MYSQLD_DATADIR/a-b-c-d
--copy_file $MYSQLD_DATADIR/db1/db.opt $MYSQLD_DATADIR/a-b-c-d/db.opt
---echo # Connection default
connection default;
SET DEBUG_SYNC= 'after_wait_locked_schema_name SIGNAL locked WAIT_FOR blocked';
--echo # Sending:
--send ALTER DATABASE `#mysql50#a-b-c` UPGRADE DATA DIRECTORY NAME
---echo # Connection con2
connection con2;
SET DEBUG_SYNC= 'now WAIT_FOR locked';
--echo # Sending:
# This should block.
--send ALTER DATABASE `#mysql50#a-b-c` UPGRADE DATA DIRECTORY NAME
---echo # Connection con3
connection con3;
let $wait_condition=SELECT COUNT(*)=1 FROM information_schema.processlist
WHERE state='Waiting for schema metadata lock'
@@ -4410,12 +3950,10 @@ let $wait_condition=SELECT COUNT(*)=1 FROM information_schema.processlist
ALTER DATABASE `#mysql50#a-b-c-d` UPGRADE DATA DIRECTORY NAME;
SET DEBUG_SYNC= 'now SIGNAL blocked';
---echo # Connection default
connection default;
--echo # Reaping: ALTER DATABASE '#mysql50#a-b-c' UPGRADE DATA DIRECTORY NAME
--reap
---echo # Connection con2
connection con2;
--echo # Reaping: ALTER DATABASE '#mysql50#a-b-c' UPGRADE DATA DIRECTORY NAME
--error ER_BAD_DB_ERROR
@@ -4428,20 +3966,17 @@ DROP DATABASE `a-b-c-d`;
--echo # not database DDL on different databases. Tests X vs X lock.
--echo #
---echo # Connection default
connection default;
SET DEBUG_SYNC= 'after_wait_locked_schema_name SIGNAL locked WAIT_FOR blocked';
--echo # Sending:
--send DROP DATABASE db1
---echo # Connection con2
connection con2;
SET DEBUG_SYNC= 'now WAIT_FOR locked';
--echo # Sending:
# This should block.
--send DROP DATABASE db1
---echo # Connection con3
connection con3;
let $wait_condition=SELECT COUNT(*)=1 FROM information_schema.processlist
WHERE state='Waiting for schema metadata lock' AND info='DROP DATABASE db1';
@@ -4452,32 +3987,27 @@ ALTER DATABASE db2 DEFAULT CHARACTER SET utf8;
DROP DATABASE db2;
SET DEBUG_SYNC= 'now SIGNAL blocked';
---echo # Connection default
connection default;
--echo # Reaping: DROP DATABASE db1
--reap
---echo # Connection con2
connection con2;
--echo # Reaping: DROP DATABASE db1
--error ER_DB_DROP_EXISTS
--reap
---echo # Connection default
connection default;
CREATE DATABASE db1;
SET DEBUG_SYNC= 'after_wait_locked_schema_name SIGNAL locked WAIT_FOR blocked';
--echo # Sending:
--send DROP DATABASE db1
---echo # Connection con2
connection con2;
SET DEBUG_SYNC= 'now WAIT_FOR locked';
--echo # Sending:
# This should also block.
--send ALTER DATABASE db1 DEFAULT CHARACTER SET utf8
---echo # Connection con3
connection con3;
let $wait_condition=SELECT COUNT(*)=1 FROM information_schema.processlist
WHERE state='Waiting for schema metadata lock'
@@ -4485,12 +4015,10 @@ let $wait_condition=SELECT COUNT(*)=1 FROM information_schema.processlist
--source include/wait_condition.inc
SET DEBUG_SYNC= 'now SIGNAL blocked';
---echo # Connection default
connection default;
--echo # Reaping: DROP DATABASE db1
--reap
---echo # Connection con2
connection con2;
--echo # Reaping: ALTER DATABASE db1 DEFAULT CHARACTER SET utf8
# Error 1 is from ALTER DATABASE when the database does not exist.
@@ -4504,21 +4032,18 @@ connection con2;
--echo # Tests X vs IX lock.
--echo #
---echo # Connection default
connection default;
CREATE DATABASE db1;
SET DEBUG_SYNC= 'after_wait_locked_schema_name SIGNAL locked WAIT_FOR blocked';
--echo # Sending:
--send DROP DATABASE db1
---echo # Connection con2
connection con2;
SET DEBUG_SYNC= 'now WAIT_FOR locked';
--echo # Sending:
# This should block.
--send CREATE TABLE db1.t1 (a INT)
---echo # Connection con3
connection con3;
let $wait_condition=SELECT COUNT(*)=1 FROM information_schema.processlist
WHERE state='Waiting for schema metadata lock' AND
@@ -4526,12 +4051,10 @@ let $wait_condition=SELECT COUNT(*)=1 FROM information_schema.processlist
--source include/wait_condition.inc
SET DEBUG_SYNC= 'now SIGNAL blocked';
---echo # Connection default
connection default;
--echo # Reaping: DROP DATABASE db1
--reap
---echo # Connection con2
connection con2;
--echo # Reaping: CREATE TABLE db1.t1 (a INT)
--error ER_BAD_DB_ERROR
@@ -4542,7 +4065,6 @@ connection con2;
--echo # Tests X vs IX lock.
--echo #
---echo # Connection default
connection default;
CREATE DATABASE db1;
CREATE TABLE db1.t1 (a INT);
@@ -4550,14 +4072,12 @@ SET DEBUG_SYNC= 'after_wait_locked_schema_name SIGNAL locked WAIT_FOR blocked';
--echo # Sending:
--send DROP DATABASE db1
---echo # Connection con2
connection con2;
SET DEBUG_SYNC= 'now WAIT_FOR locked';
--echo # Sending:
# This should block.
--send RENAME TABLE db1.t1 TO test.t1
---echo # Connection con3
connection con3;
let $wait_condition=SELECT COUNT(*)=1 FROM information_schema.processlist
WHERE state='Waiting for schema metadata lock' AND
@@ -4565,18 +4085,15 @@ let $wait_condition=SELECT COUNT(*)=1 FROM information_schema.processlist
--source include/wait_condition.inc
SET DEBUG_SYNC= 'now SIGNAL blocked';
---echo # Connection default
connection default;
--echo # Reaping: DROP DATABASE db1
--reap
---echo # Connection con2
connection con2;
--echo # Reaping: RENAME TABLE db1.t1 TO test.t1
--error ER_NO_SUCH_TABLE
--reap
---echo # Connection default
connection default;
CREATE DATABASE db1;
CREATE TABLE test.t2 (a INT);
@@ -4584,14 +4101,12 @@ SET DEBUG_SYNC= 'after_wait_locked_schema_name SIGNAL locked WAIT_FOR blocked';
--echo # Sending:
--send DROP DATABASE db1
---echo # Connection con2
connection con2;
SET DEBUG_SYNC= 'now WAIT_FOR locked';
--echo # Sending:
# This should block.
--send RENAME TABLE test.t2 TO db1.t2
---echo # Connection con3
connection con3;
let $wait_condition=SELECT COUNT(*)=1 FROM information_schema.processlist
WHERE state='Waiting for schema metadata lock' AND
@@ -4599,12 +4114,10 @@ let $wait_condition=SELECT COUNT(*)=1 FROM information_schema.processlist
--source include/wait_condition.inc
SET DEBUG_SYNC= 'now SIGNAL blocked';
---echo # Connection default
connection default;
--echo # Reaping: DROP DATABASE db1
--reap
---echo # Connection con2
connection con2;
--echo # Reaping: RENAME TABLE test.t2 TO db1.t2
# Error 7 is from RENAME TABLE where the target database does not exist.
@@ -4619,7 +4132,6 @@ DROP TABLE test.t2;
--echo # Tests X vs IX lock.
--echo #
---echo # Connection default
connection default;
CREATE DATABASE db1;
CREATE TABLE db1.t1 (a INT);
@@ -4627,32 +4139,27 @@ SET DEBUG_SYNC= 'after_wait_locked_schema_name SIGNAL locked WAIT_FOR blocked';
--echo # Sending:
--send DROP DATABASE db1
---echo # Connection con2
connection con2;
SET DEBUG_SYNC= 'now WAIT_FOR locked';
--echo # Sending:
# This should block.
--send DROP TABLE db1.t1
---echo # Connection con3
connection con3;
let $wait_condition=SELECT COUNT(*)=1 FROM information_schema.processlist
WHERE state='Waiting for schema metadata lock' AND info='DROP TABLE db1.t1';
--source include/wait_condition.inc
SET DEBUG_SYNC= 'now SIGNAL blocked';
---echo # Connection default
connection default;
--echo # Reaping: DROP DATABASE db1
--reap
---echo # Connection con2
connection con2;
--echo # Reaping: DROP TABLE db1.t1
--error ER_BAD_TABLE_ERROR
--reap
---echo # Connection default
connection default;
disconnect con2;
disconnect con3;
@@ -4671,16 +4178,13 @@ CREATE TABLE db1.t1(a INT);
connect(con2, localhost, root);
connect(con3, localhost, root);
---echo # Connection default
connection default;
FLUSH TABLE WITH READ LOCK;
---echo # Connection con2
connection con2;
# IX global lock should block
--send CREATE TABLE db1.t2(a INT)
---echo # Connection default
connection default;
let $wait_condition=SELECT COUNT(*)=1 FROM information_schema.processlist
WHERE state='Waiting for global read lock'
@@ -4688,21 +4192,17 @@ let $wait_condition=SELECT COUNT(*)=1 FROM information_schema.processlist
--source include/wait_condition.inc
UNLOCK TABLES;
---echo # Connection con2
connection con2;
--echo # Reaping CREATE TABLE db1.t2(a INT)
--reap
---echo # Connection default
connection default;
FLUSH TABLE WITH READ LOCK;
---echo # Connection con2
connection con2;
# X global lock should block
--send ALTER DATABASE db1 DEFAULT CHARACTER SET utf8
---echo # Connection default
connection default;
let $wait_condition=SELECT COUNT(*)=1 FROM information_schema.processlist
WHERE state='Waiting for global read lock'
@@ -4710,22 +4210,18 @@ let $wait_condition=SELECT COUNT(*)=1 FROM information_schema.processlist
--source include/wait_condition.inc
UNLOCK TABLES;
---echo # Connection con2
connection con2;
--echo # Reaping ALTER DATABASE db1 DEFAULT CHARACTER SET utf8
--reap
---echo # Connection default
connection default;
FLUSH TABLE WITH READ LOCK;
---echo # Connection con2
connection con2;
# S global lock should not block
FLUSH TABLE WITH READ LOCK;
UNLOCK TABLES;
---echo # Connection default
connection default;
UNLOCK TABLES;
DROP DATABASE db1;
@@ -4752,7 +4248,6 @@ connect(con1, localhost, root);
connect(con2, localhost, root);
connect(con3, localhost, root);
---echo # Connection con1
connection con1;
--echo # We need EXECUTE 2 since ALTER TABLE does SU => SNW => X and we want
--echo # to stop at the second upgrade.
@@ -4760,7 +4255,6 @@ SET DEBUG_SYNC= 'mdl_upgrade_lock SIGNAL upgrade WAIT_FOR continue EXECUTE 2';
--echo # Sending:
--send ALTER TABLE m1 engine=MERGE UNION=(t2, t1)
---echo # Connection con2
connection con2;
--echo # Waiting for ALTER TABLE to try lock upgrade
SET DEBUG_SYNC= 'now WAIT_FOR upgrade';
@@ -4769,7 +4263,6 @@ SET DEBUG_SYNC= 'now WAIT_FOR upgrade';
--echo # Sending:
--send DELETE FROM t2 WHERE a = 3
---echo # Connection default
connection con3;
--echo # Check that DELETE is waiting on a metadata lock and not a table lock.
let $wait_condition=
@@ -4786,18 +4279,15 @@ connection default;
--echo # Resuming ALTER TABLE
SET DEBUG_SYNC= 'now SIGNAL continue';
---echo # Connection con1
connection con1;
--echo # Reaping: ALTER TABLE m1 engine=MERGE UNION=(t2, t1)
--reap
---echo # Connection con2
connection con2;
--echo # Reaping: DELETE FROM t2 WHERE a = 3
--reap
connection con3;
--echo # Reaping: SELECT * FROM m1 WHERE a < 3
--reap
---echo # Connection default
connection default;
DROP TABLE m1, t1, t2;
SET DEBUG_SYNC= 'RESET';
diff --git a/mysql-test/t/merge-big.test b/mysql-test/t/merge-big.test
index 78c3e8c00ac..9bd2cab2c8a 100644
--- a/mysql-test/t/merge-big.test
+++ b/mysql-test/t/merge-big.test
@@ -40,13 +40,11 @@ drop table if exists t1,t2,t3,t4,t5,t6;
CREATE TABLE t1 (c1 INT) ENGINE= MyISAM;
LOCK TABLE t1 WRITE;
#SELECT NOW();
- --echo # connection con1
connect (con1,localhost,root,,);
let $con1_id= `SELECT CONNECTION_ID()`;
SET @orig_debug=@@debug;
SET GLOBAL debug_dbug="+d,sleep_open_and_lock_after_open";
send INSERT INTO t1 VALUES (1);
---echo # connection default
connection default;
--echo # Let INSERT go into thr_multi_lock().
#--sleep 8
@@ -72,12 +70,9 @@ FLUSH TABLES;
SELECT * FROM t1;
#SELECT NOW();
UNLOCK TABLES;
- --echo # connection con1
connection con1;
reap;
SET GLOBAL debug_dbug=@orig_debug;
disconnect con1;
---echo # connection default
connection default;
DROP TABLE t1;
-
diff --git a/mysql-test/t/merge.test b/mysql-test/t/merge.test
index 519094d6350..faa420fd275 100644
--- a/mysql-test/t/merge.test
+++ b/mysql-test/t/merge.test
@@ -2585,7 +2585,6 @@ DROP TABLE t1, t2, t3, t4, m1, m2;
--disable_warnings
DROP TABLE IF EXISTS t1, t2, t3;
--enable_warnings
---echo # Connection con1.
connect (con1,localhost,root,,);
CREATE TABLE t1 (c1 int);
CREATE TABLE t2 (c1 int);
@@ -2594,12 +2593,10 @@ START TRANSACTION;
--error ER_ILLEGAL_HA
HANDLER t3 OPEN;
DROP TABLE t1, t2, t3;
---echo # Connection default.
connection default;
---echo # Disconnecting con1, all mdl_tickets must have been released.
+--echo # all mdl_tickets must have been released.
disconnect con1;
--echo # The bug-specific case.
---echo # Connection con1.
connect (con1,localhost,root,,);
CREATE TABLE t1 (c1 int);
CREATE TABLE t2 (c1 int);
@@ -2609,9 +2606,8 @@ START TRANSACTION;
--error ER_WRONG_MRG_TABLE
HANDLER t3 OPEN;
DROP TABLE t1, t3;
---echo # Connection default.
connection default;
---echo # Disconnecting con1, all mdl_tickets must have been released.
+--echo # all mdl_tickets must have been released.
disconnect con1;
--echo #
diff --git a/mysql-test/t/myisam_debug.test b/mysql-test/t/myisam_debug.test
index 5b5d006bd22..b106ecdea5e 100644
--- a/mysql-test/t/myisam_debug.test
+++ b/mysql-test/t/myisam_debug.test
@@ -34,13 +34,11 @@ while ($i)
commit;
--enable_query_log
---echo # Switch to insert Connection
CONNECTION insertConn;
SET SESSION debug_dbug='+d,wait_in_enable_indexes';
--echo # Send insert data
SEND INSERT INTO t1(id) SELECT id FROM t2;
---echo # Switch to default Connection
CONNECTION default;
--echo # Wait for insert data to reach the debug point
diff --git a/mysql-test/t/myisam_recover.test b/mysql-test/t/myisam_recover.test
index 49fe9c33460..0c686e59fb1 100644
--- a/mysql-test/t/myisam_recover.test
+++ b/mysql-test/t/myisam_recover.test
@@ -12,9 +12,6 @@
--echo # For that, we set the table cache to minimal size and populate it
--echo # in a concurrent connection.
connect(con1,localhost,root,,test,,);
---echo #
---echo # Switching to connection con1
---echo #
connection con1;
--echo #
--echo # Minimal values.
@@ -56,9 +53,6 @@ drop procedure p_create;
let $lock=`select @lock_table_stmt`;
eval $lock;
--enable_query_log
---echo #
---echo # Switching to connection 'default'
---echo #
connection default;
--echo #
--echo # We have to disable the ps-protocol, to avoid
@@ -102,9 +96,6 @@ select * from t1_mrg;
--echo # Cleanup
--echo #
drop table t1, t1_mrg;
---echo #
---echo # Switching to connection con1
---echo #
connection con1;
unlock tables;
prepare stmt from @drop_table_stmt;
diff --git a/mysql-test/t/mysqlbinlog_row_big.test b/mysql-test/t/mysqlbinlog_row_big.test
index ffd1b79af34..44bceaad66b 100644
--- a/mysql-test/t/mysqlbinlog_row_big.test
+++ b/mysql-test/t/mysqlbinlog_row_big.test
@@ -52,11 +52,8 @@ SET @@global.max_allowed_packet= 1024*1024*1024;
--echo to be seen and used, we must start a new connection.
--echo The change does not take effect with the current one.
--echo For simplicity, we just disconnect / reconnect connection default here.
---echo Disconnecting default connection...
disconnect default;
---echo Reconnecting default connection...
connect (default, localhost,root,,);
---echo default connection established, continuing with the test
--echo #
--echo # Delete all existing binary logs.
diff --git a/mysql-test/t/mysqldump-max.test b/mysql-test/t/mysqldump-max.test
index 3f73f046959..f5f4dbcd088 100644
--- a/mysql-test/t/mysqldump-max.test
+++ b/mysql-test/t/mysqldump-max.test
@@ -1133,7 +1133,6 @@ connect(c2,127.0.0.1,root,,test,$MASTER_MYPORT,);
connect(c3,127.0.0.1,root,,test,$MASTER_MYPORT,);
connection default;
---echo # Connection default
SET binlog_format= mixed;
RESET MASTER;
CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=InnoDB;
@@ -1143,23 +1142,19 @@ INSERT INTO t2 VALUES (1,0), (2,0);
SELECT GET_LOCK("block_queries_1", 120);
connection c3;
---echo # Connection c3
SELECT GET_LOCK("block_queries_2", 120);
# Start two queries that will be running on the tables during mysqldump
connection c1;
---echo # Connection c1
SET @c= 0;
send SELECT IF(@c<1, @c:=@c+1, GET_LOCK("block_queries_1", 120)) FROM t1 ORDER BY a;
connection c2;
---echo # Connection c2
SET binlog_format="row";
SET @d= 10;
send UPDATE t2 SET b=IF(@d<=10, @d:=@d+1, GET_LOCK("block_queries_2", 120)) ORDER BY a;
connection default;
---echo # Connection default
--echo # Make sure other queries are running (and waiting).
let $wait_condition=
SELECT COUNT(*) FROM information_schema.processlist
@@ -1175,19 +1170,15 @@ let $wait_condition=
SELECT RELEASE_LOCK("block_queries_1");
connection c3;
---echo # Connection c3
SELECT RELEASE_LOCK("block_queries_2");
connection c1;
---echo # Connection c1
reap;
connection c2;
---echo # Connection c2
reap;
connection default;
---echo # Connection default
SELECT * FROM t2 ORDER BY a;
DROP TABLE t1;
DROP TABLE t2;
diff --git a/mysql-test/t/mysqltest.test b/mysql-test/t/mysqltest.test
index ae59c713c3d..a797dff572e 100644
--- a/mysql-test/t/mysqltest.test
+++ b/mysql-test/t/mysqltest.test
@@ -427,7 +427,6 @@ select 7;
--error 1
--exec echo "--disable_info OCNE" | $MYSQL_TEST 2>&1
---enable_connect_log ONCE
connect (con1,localhost,root,,);
connection default;
disconnect con1;
@@ -1789,12 +1788,14 @@ eval select "$long_rep" as x;
# Repeat connect/disconnect
--write_file $MYSQLTEST_VARDIR/tmp/mysqltest.sql
let $i=200;
+disable_connect_log;
while ($i)
{
connect (test_con1,localhost,root,,);
disconnect test_con1;
dec $i;
}
+enable_connect_log;
echo 200 connects succeeded;
EOF
--exec echo "source $MYSQLTEST_VARDIR/tmp/mysqltest.sql;" | $MYSQL_TEST 2>&1
@@ -1838,7 +1839,6 @@ disconnect con2;
connection default;
# Test enable_connect_log
---enable_connect_log
connect (con1,localhost,root,,);
connection default;
connection con1;
@@ -1851,7 +1851,6 @@ connection con1;
--enable_query_log
disconnect con1;
connection default;
---disable_connect_log
# ----------------------------------------------------------------------------
# Test mysqltest arguments
diff --git a/mysql-test/t/not_embedded_server.test b/mysql-test/t/not_embedded_server.test
index f22bf8cd7b5..b2cbdba6850 100644
--- a/mysql-test/t/not_embedded_server.test
+++ b/mysql-test/t/not_embedded_server.test
@@ -46,7 +46,6 @@ DROP TABLE t1;
CREATE USER nopriv_user@localhost;
connection default;
---echo connection: default
--disable_warnings
DROP TABLE IF EXISTS t1,t2,t3;
@@ -65,7 +64,6 @@ FLUSH PRIVILEGES;
connect (con1,localhost,nopriv_user,,);
connection con1;
---echo connection: con1
let outfile=$MYSQLTEST_VARDIR/tmp/mytest;
--error 0,1
@@ -93,7 +91,6 @@ disconnect con1;
--source include/wait_until_disconnected.inc
connection default;
---echo connection: default
DROP TABLE t1,t2;
DROP FUNCTION f;
diff --git a/mysql-test/t/partition_debug_sync.test b/mysql-test/t/partition_debug_sync.test
index 90f1d4173ff..11af9b06cdd 100644
--- a/mysql-test/t/partition_debug_sync.test
+++ b/mysql-test/t/partition_debug_sync.test
@@ -22,7 +22,6 @@ SET DEBUG_SYNC= 'RESET';
--echo # only until ALTER tries to upgrade its MDL lock, which ends up in MDL
--echo # deadlock which is correctly reported.
connect(con1, localhost, root,,);
---echo # Con 1
SET DEBUG_SYNC= 'RESET';
CREATE TABLE t1
(a INTEGER,
@@ -38,12 +37,10 @@ SET DEBUG_SYNC= 'alter_table_before_create_table_no_lock SIGNAL removing_partiti
SET DEBUG_SYNC= 'mdl_acquire_lock_wait SIGNAL waiting_for_upgrade';
--send ALTER TABLE t1 REMOVE PARTITIONING
connection default;
---echo # Con default
SET DEBUG_SYNC= 'now WAIT_FOR removing_partitioning';
SET DEBUG_SYNC= 'mdl_acquire_lock_wait SIGNAL waiting_for_alter';
SET DEBUG_SYNC= 'rm_table_no_locks_before_delete_table WAIT_FOR waiting_for_upgrade';
DROP TABLE IF EXISTS t1;
---echo # Con 1
connection con1;
--error ER_LOCK_DEADLOCK
--reap
@@ -71,12 +68,10 @@ SET DEBUG_SYNC= 'alter_table_before_open_tables SIGNAL removing_partitions WAIT_
SET DEBUG_SYNC= 'alter_table_before_rename_result_table WAIT_FOR delete_done';
--send ALTER TABLE t2 REMOVE PARTITIONING
connection default;
---echo # Con default
SET DEBUG_SYNC= 'now WAIT_FOR removing_partitions';
SET DEBUG_SYNC= 'rm_table_no_locks_before_delete_table SIGNAL waiting_for_alter';
SET DEBUG_SYNC= 'rm_table_no_locks_before_binlog SIGNAL delete_done';
DROP TABLE IF EXISTS t2;
---echo # Con 1
connection con1;
--error ER_NO_SUCH_TABLE
--reap
@@ -84,7 +79,6 @@ SET DEBUG_SYNC= 'RESET';
disconnect con1;
--source include/wait_until_disconnected.inc
connection default;
---echo # Con default
SET DEBUG_SYNC= 'RESET';
--echo End of 5.1 tests
@@ -98,38 +92,32 @@ ENGINE = InnoDB PARTITION BY HASH (a) PARTITIONS 3;
HANDLER t1 OPEN;
---echo # Con1
connect (con1, localhost, root,,);
LOCK TABLES t1 WRITE, t2 READ;
---echo # Default
connection default;
SET DEBUG_SYNC="wait_for_lock SIGNAL locking";
send INSERT INTO t2 VALUES (1), (2), (3);
---echo # Con1
connection con1;
SET DEBUG_SYNC="now WAIT_FOR locking";
send ALTER TABLE t1 ADD COLUMN b int;
---echo # Default
connection default;
--error ER_LOCK_ABORTED
--reap
SELECT 1;
---echo # Con1
connection con1;
--reap
UNLOCK TABLES;
--disconnect con1
---echo # Default
connection default;
SET DEBUG_SYNC = 'RESET';
diff --git a/mysql-test/t/partition_innodb.test b/mysql-test/t/partition_innodb.test
index d7f683aa9e9..62a9173b526 100644
--- a/mysql-test/t/partition_innodb.test
+++ b/mysql-test/t/partition_innodb.test
@@ -106,7 +106,6 @@ INSERT INTO t1 VALUES (1, 1), (2, 2), (3, 3), (4, 4), (5, 5);
BEGIN;
SELECT COUNT(*) FROM t1;
---echo # con1
--connect (con1,localhost,root,,)
--echo # SEND a ALTER PARTITION which waits on the ongoing transaction.
--send
@@ -126,11 +125,11 @@ AND STATE = 'Waiting for table metadata lock';
SELECT COUNT(*) FROM t1;
COMMIT;
---echo # con1, reaping ALTER.
+--echo # reaping ALTER.
--connection con1
--reap
---echo # Disconnecting con1 and switching to default. Cleaning up.
+--echo # Cleaning up.
--disconnect con1
--connection default
@@ -170,7 +169,6 @@ SELECT * FROM t1 FOR UPDATE;
UPDATE t1 SET name = 'Mattias' WHERE id = 7;
SELECT * FROM t1 WHERE id = 7;
--connect (con1, localhost, root,,)
---echo # Connection con1
SET lock_wait_timeout = 1;
--echo # After the patch it will wait and fail on timeout.
--error ER_LOCK_WAIT_TIMEOUT
@@ -178,7 +176,6 @@ ALTER TABLE t1 DROP PARTITION p3;
SHOW WARNINGS;
--disconnect con1
--connection default
---echo # Connection default
SELECT * FROM t1;
--echo # No changes.
COMMIT;
@@ -609,7 +606,6 @@ START TRANSACTION;
SELECT * FROM t1 FOR UPDATE;
connect (con1, localhost, root,,);
---echo # Connection con1
--error ER_LOCK_WAIT_TIMEOUT
ALTER TABLE t1 REORGANIZE PARTITION pMAX INTO
(PARTITION p3 VALUES LESS THAN (3),
@@ -626,7 +622,6 @@ SHOW WARNINGS;
disconnect con1;
connection default;
---echo # Connection default
SELECT * FROM t1;
COMMIT;
DROP TABLE t1;
@@ -871,10 +866,8 @@ CREATE TABLE t1
PARTITION BY HASH (a) PARTITIONS 3;
START TRANSACTION WITH CONSISTENT SNAPSHOT;
--connect (con1, localhost, root,,)
- --echo # con1
ALTER TABLE t1 ADD INDEX idx1 (b);
--connection default
- --echo # con default
--error ER_TABLE_DEF_CHANGED
SELECT b FROM t1 WHERE b = 0;
--error ER_TABLE_DEF_CHANGED
@@ -889,11 +882,9 @@ CREATE TABLE t1
PRIMARY KEY (a))
ENGINE = InnoDB;
START TRANSACTION WITH CONSISTENT SNAPSHOT;
---echo # con1
--connect (con1, localhost, root,,)
ALTER TABLE t1 ADD INDEX idx1 (b);
--connection default
---echo # con default
--error ER_TABLE_DEF_CHANGED
SELECT b FROM t1 WHERE b = 0;
--error ER_TABLE_DEF_CHANGED
diff --git a/mysql-test/t/partition_innodb_plugin.test b/mysql-test/t/partition_innodb_plugin.test
index fd6e60c27fb..eb3f999641d 100644
--- a/mysql-test/t/partition_innodb_plugin.test
+++ b/mysql-test/t/partition_innodb_plugin.test
@@ -41,7 +41,6 @@ SET @@global.innodb_file_format = Barracuda,
@@global.innodb_file_per_table = ON,
@@global.innodb_strict_mode = ON;
---echo # Connection con1
--connect(con1,localhost,root,,)
CREATE TABLE t1 (id INT NOT NULL
@@ -59,7 +58,6 @@ SET GLOBAL innodb_file_per_table = OFF;
--disconnect con1
--connect(con2,localhost,root,,)
---echo # Connection con2
LOCK TABLE t1 WRITE;
@@ -89,7 +87,6 @@ DROP TABLE t1;
--disconnect con2
--connection default
---echo # Connection default
SET @@global.innodb_strict_mode = @old_innodb_strict_mode;
SET @@global.innodb_file_format = @old_innodb_file_format;
SET @@global.innodb_file_per_table = @old_innodb_file_per_table;
@@ -110,20 +107,16 @@ SUBPARTITION BY HASH (a)
SUBPARTITION `sp3``\""e`));
INSERT INTO `t``\""e` VALUES (0), (2), (6), (10), (14), (18), (22);
START TRANSACTION;
---echo # con1
connect(con1,localhost,root,,);
SET NAMES utf8;
START TRANSACTION;
---echo # default connection
connection default;
UPDATE `t``\""e` SET a = 16 WHERE a = 0;
---echo # con1
connection con1;
UPDATE `t``\""e` SET a = 8 WHERE a = 22;
let $id_1= `SELECT CONNECTION_ID()`;
SEND;
UPDATE `t``\""e` SET a = 12 WHERE a = 0;
---echo # default connection
connection default;
let $wait_timeout= 2;
let $wait_condition= SELECT 1 FROM INFORMATION_SCHEMA.PROCESSLIST
@@ -156,12 +149,10 @@ set sql_mode = 'ANSI_QUOTES';
--replace_regex /.*RECORD LOCKS space id [0-9]* page no [0-9]* n bits [0-9]* // / trx id .*// /.*index .* in // /trx table locks [0-9]* // /total table locks [0-9]* //
SHOW ENGINE InnoDB STATUS;
set @@sql_mode = @old_sql_mode;
---echo # con1
connection con1;
REAP;
ROLLBACK;
disconnect con1;
---echo # default connection
connection default;
DROP TABLE `t``\""e`;
SET NAMES DEFAULT;
diff --git a/mysql-test/t/partition_innodb_semi_consistent.test b/mysql-test/t/partition_innodb_semi_consistent.test
index 7ab2527f0a5..7a1dfc36173 100644
--- a/mysql-test/t/partition_innodb_semi_consistent.test
+++ b/mysql-test/t/partition_innodb_semi_consistent.test
@@ -75,7 +75,6 @@ connect (con2,localhost,root,,);
SET SESSION AUTOCOMMIT = 0;
SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;
set binlog_format=mixed;
---echo # Switch to connection con1
connection con1;
eval
@@ -94,7 +93,6 @@ UPDATE t1 SET b = 12 WHERE a = 1;
--disable_info
SELECT * FROM t1;
---echo # Switch to connection con2
connection con2;
--enable_info
@@ -104,7 +102,6 @@ UPDATE t1 SET b = 21 WHERE a = 1;
--disable_info
ROLLBACK;
---echo # Switch to connection con1
connection con1;
SELECT * FROM t1;
ROLLBACK;
@@ -140,12 +137,10 @@ UPDATE t1 SET b = CONCAT(b, '+con1') WHERE a = 1;
--disable_info
SELECT * FROM t1;
---echo # Switch to connection con2
connection con2;
--send CALL p1;
---echo # Switch to connection con1
connection con1;
SELECT * FROM t1;
COMMIT;
@@ -158,13 +153,11 @@ while ($bug31310)
SELECT * FROM t1;
---echo # Switch to connection con2
connection con2;
--reap
SELECT * FROM t1;
COMMIT;
---echo # Switch to connection con1
connection con1;
--echo # 3. test for updated key column:
@@ -180,12 +173,10 @@ UPDATE t1 SET a = 2, b = CONCAT(b, '+con1') WHERE a = 1;
--disable_info
SELECT * FROM t1;
---echo # Switch to connection con2
connection con2;
--send CALL p1;
---echo # Switch to connection con1
connection con1;
SELECT * FROM t1;
COMMIT;
@@ -198,7 +189,6 @@ while ($bug31310)
SELECT * FROM t1;
---echo # Switch to connection con2
connection con2;
reap;
SELECT * FROM t1;
diff --git a/mysql-test/t/partition_innodb_stmt.test b/mysql-test/t/partition_innodb_stmt.test
index c6f30f41969..96a59cb9311 100644
--- a/mysql-test/t/partition_innodb_stmt.test
+++ b/mysql-test/t/partition_innodb_stmt.test
@@ -2,7 +2,6 @@
--source include/have_binlog_format_statement.inc
--source include/have_innodb.inc
---echo # connection default
SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ;
CREATE TABLE t1
@@ -28,14 +27,12 @@ SELECT * FROM t1;
connect (con1, localhost, root,,);
connection con1;
---echo #connection con1
SET TRANSACTION ISOLATION LEVEL REPEATABLE READ;
BEGIN;
INSERT INTO t1 VALUES(7);
COMMIT;
connection default;
---echo # connection default
COMMIT;
FLUSH TABLES;
@@ -47,7 +44,6 @@ SELECT * FROM t1;
connection con1;
---echo # connection con1
SET TRANSACTION ISOLATION LEVEL READ COMMITTED;
BEGIN;
--error ER_BINLOG_STMT_MODE_AND_ROW_ENGINE
diff --git a/mysql-test/t/partition_sync.test b/mysql-test/t/partition_sync.test
index d5d60c176c5..fd704f35534 100644
--- a/mysql-test/t/partition_sync.test
+++ b/mysql-test/t/partition_sync.test
@@ -16,22 +16,18 @@ INSERT INTO t1 VALUES (0),(1);
connect(con1,localhost,root);
---echo # Connection 2
connection con1;
BEGIN;
SELECT * FROM t1;
---echo # Connection 1
connection default;
--error ER_DROP_PARTITION_NON_EXISTENT
ALTER TABLE t1 DROP PARTITION p3;
---echo # Connection 2
connection con1;
--echo # This failed with deadlock and should not do so.
SELECT * FROM t1;
---echo # Connection 1
connection default;
disconnect con1;
DROP TABLE t1;
@@ -53,34 +49,28 @@ INSERT INTO tbl_with_partitions VALUES (1);
connect(con2,localhost,root);
connect(con3,localhost,root);
---echo # Connection 3
connection con3;
LOCK TABLE tbl_with_partitions READ;
---echo # Connection 1
--echo # Access table with disabled autocommit
connection default;
SET AUTOCOMMIT = 0;
SELECT * FROM tbl_with_partitions;
---echo # Connection 2
--echo # Alter table, abort after prepare
connection con2;
set session debug_dbug="+d,abort_copy_table";
--error ER_LOCK_WAIT_TIMEOUT
ALTER TABLE tbl_with_partitions ADD COLUMN f INT;
---echo # Connection 1
--echo # Try accessing the table after Alter aborted.
--echo # This used to give ER_LOCK_DEADLOCK.
connection default;
SELECT * FROM tbl_with_partitions;
---echo # Connection 3
connection con3;
UNLOCK TABLES;
---echo # Connection 1
--echo # Cleanup
connection default;
disconnect con2;
diff --git a/mysql-test/t/plugin_auth_qa_1.test b/mysql-test/t/plugin_auth_qa_1.test
index 55fef4254e1..b0b8ffb3544 100644
--- a/mysql-test/t/plugin_auth_qa_1.test
+++ b/mysql-test/t/plugin_auth_qa_1.test
@@ -99,22 +99,16 @@ CREATE USER plug_user
IDENTIFIED WITH test_plugin_server AS 'plug_dest';
CREATE USER plug_dest IDENTIFIED BY 'plug_dest_passwd';
GRANT PROXY ON plug_dest TO plug_user;
---echo connect(plug_user,localhost,plug_user,plug_dest);
connect(plug_user,localhost,plug_user,plug_dest);
select USER(),CURRENT_USER();
---echo connection default;
connection default;
---echo disconnect plug_user;
disconnect plug_user;
RENAME USER plug_user TO new_user;
---echo connect(plug_user,localhost,new_user,plug_dest);
connect(plug_user,localhost,new_user,plug_dest);
select USER(),CURRENT_USER();
---echo connection default;
connection default;
--sorted_result
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
---echo disconnect plug_user;
disconnect plug_user;
UPDATE mysql.user SET user='plug_user' WHERE user='new_user';
FLUSH PRIVILEGES;
@@ -128,12 +122,9 @@ CREATE USER plug_user
IDENTIFIED WITH test_plugin_server AS 'plug_dest';
CREATE USER plug_dest IDENTIFIED BY 'plug_dest_passwd';
GRANT PROXY ON plug_dest TO plug_user;
---echo connect(plug_user,localhost,plug_user,plug_dest);
connect(plug_user,localhost,plug_user,plug_dest);
select USER(),CURRENT_USER();
---echo connection default;
connection default;
---echo disconnect plug_user;
disconnect plug_user;
--sorted_result
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
@@ -149,7 +140,6 @@ UPDATE mysql.user SET plugin='new_plugin_server' WHERE user='new_user';
FLUSH PRIVILEGES;
--sorted_result
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
---echo connect(plug_user,localhost,new_user,new_dest);
--disable_query_log
--error ER_PLUGIN_IS_NOT_LOADED
connect(plug_user,localhost,new_user,new_dest);
@@ -160,12 +150,9 @@ FLUSH PRIVILEGES;
GRANT PROXY ON new_dest TO new_user;
--sorted_result
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
---echo connect(plug_user,localhost,new_user,new_dest);
connect(plug_user,localhost,new_user,new_dest);
select USER(),CURRENT_USER();
---echo connection default;
connection default;
---echo disconnect plug_user;
disconnect plug_user;
UPDATE mysql.user SET USER='plug_dest' WHERE user='new_dest';
FLUSH PRIVILEGES;
@@ -173,12 +160,9 @@ CREATE USER new_dest IDENTIFIED BY 'new_dest_passwd';
--sorted_result
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
GRANT ALL PRIVILEGES ON test.* TO new_user;
---echo connect(plug_user,localhost,new_dest,new_dest_passwd);
connect(plug_user,localhost,new_dest,new_dest_passwd);
select USER(),CURRENT_USER();
---echo connection default;
connection default;
---echo disconnect plug_user;
disconnect plug_user;
DROP USER new_user,new_dest,plug_dest;
@@ -188,36 +172,26 @@ CREATE USER ''@'%%' IDENTIFIED WITH test_plugin_server AS 'proxied_user';
CREATE USER proxied_user IDENTIFIED BY 'proxied_user_passwd';
--sorted_result
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
---echo connect(proxy_con,localhost,proxied_user,proxied_user_passwd);
connect(proxy_con,localhost,proxied_user,proxied_user_passwd);
SELECT USER(),CURRENT_USER();
--echo ========== test 2.2.1 ======================================
SELECT @@proxy_user;
---echo connection default;
connection default;
---echo disconnect proxy_con;
disconnect proxy_con;
---echo connect(proxy_con,localhost,proxy_user,proxied_user);
--disable_query_log
--error ER_ACCESS_DENIED_ERROR : this should fail : no grant
connect(proxy_con,localhost,proxy_user,proxied_user);
--enable_query_log
GRANT PROXY ON proxied_user TO ''@'%%';
---echo connect(proxy_con,localhost,proxied_user,proxied_user_passwd);
connect(proxy_con,localhost,proxied_user,proxied_user_passwd);
SELECT USER(),CURRENT_USER();
---echo connection default;
connection default;
---echo disconnect proxy_con;
disconnect proxy_con;
---echo connect(proxy_con,localhost,proxy_user,proxied_user);
connect(proxy_con,localhost,proxy_user,proxied_user);
SELECT USER(),CURRENT_USER();
--echo ========== test 2.2.1 ======================================
SELECT @@proxy_user;
---echo connection default;
connection default;
---echo disconnect proxy_con;
disconnect proxy_con;
DROP USER ''@'%%',proxied_user;
#
@@ -226,34 +200,24 @@ GRANT ALL PRIVILEGES ON test_user_db.* TO ''@'%%'
CREATE USER proxied_user IDENTIFIED BY 'proxied_user_passwd';
--sorted_result
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
---echo connect(proxy_con,localhost,proxied_user,proxied_user_passwd);
connect(proxy_con,localhost,proxied_user,proxied_user_passwd);
SELECT USER(),CURRENT_USER();
SELECT @@proxy_user;
---echo connection default;
connection default;
---echo disconnect proxy_con;
disconnect proxy_con;
---echo connect(proxy_con,localhost,proxy_user,proxied_user);
--disable_query_log
--error ER_ACCESS_DENIED_ERROR : this should fail : no grant
connect(proxy_con,localhost,proxy_user,proxied_user);
--enable_query_log
GRANT PROXY ON proxied_user TO ''@'%%';
---echo connect(proxy_con,localhost,proxied_user,proxied_user_passwd);
connect(proxy_con,localhost,proxied_user,proxied_user_passwd);
SELECT USER(),CURRENT_USER();
---echo connection default;
connection default;
---echo disconnect proxy_con;
disconnect proxy_con;
---echo connect(proxy_con,localhost,proxy_user,proxied_user);
connect(proxy_con,localhost,proxy_user,proxied_user);
SELECT USER(),CURRENT_USER();
SELECT @@proxy_user;
---echo connection default;
connection default;
---echo disconnect proxy_con;
disconnect proxy_con;
DROP USER ''@'%%',proxied_user;
#
@@ -270,47 +234,31 @@ GRANT PROXY ON proxied_user_4 TO ''@'%%';
GRANT PROXY ON proxied_user_5 TO ''@'%%';
--sorted_result
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
---echo connect(proxy_con_1,localhost,proxied_user_1,'proxied_user_1_pwd');
connect(proxy_con_1,localhost,proxied_user_1,'proxied_user_1_pwd');
---echo connect(proxy_con_2,localhost,proxied_user_2,proxied_user_2_pwd);
connect(proxy_con_2,localhost,proxied_user_2,proxied_user_2_pwd);
---echo connect(proxy_con_3,localhost,proxied_user_3,proxied_user_3_pwd);
connect(proxy_con_3,localhost,proxied_user_3,proxied_user_3_pwd);
---echo connect(proxy_con_4,localhost,proxied_user_4,proxied_user_4_pwd);
connect(proxy_con_4,localhost,proxied_user_4,proxied_user_4_pwd);
---echo connect(proxy_con_5,localhost,proxied_user_5,proxied_user_5_pwd);
connect(proxy_con_5,localhost,proxied_user_5,proxied_user_5_pwd);
---echo connection proxy_con_1;
connection proxy_con_1;
SELECT USER(),CURRENT_USER();
SELECT @@proxy_user;
---echo connection proxy_con_2;
connection proxy_con_2;
SELECT USER(),CURRENT_USER();
SELECT @@proxy_user;
---echo connection proxy_con_3;
connection proxy_con_3;
SELECT USER(),CURRENT_USER();
SELECT @@proxy_user;
---echo connection proxy_con_4;
connection proxy_con_4;
SELECT USER(),CURRENT_USER();
SELECT @@proxy_user;
---echo connection proxy_con_5;
connection proxy_con_5;
SELECT USER(),CURRENT_USER();
SELECT @@proxy_user;
---echo connection default;
connection default;
---echo disconnect proxy_con_1;
disconnect proxy_con_1;
---echo disconnect proxy_con_2;
disconnect proxy_con_2;
---echo disconnect proxy_con_3;
disconnect proxy_con_3;
---echo disconnect proxy_con_4;
disconnect proxy_con_4;
---echo disconnect proxy_con_5;
disconnect proxy_con_5;
DROP USER ''@'%%',proxied_user_1,proxied_user_2,proxied_user_3,proxied_user_4,proxied_user_5;
diff --git a/mysql-test/t/query_cache_28249.test b/mysql-test/t/query_cache_28249.test
index b1be7c57343..a08371fe576 100644
--- a/mysql-test/t/query_cache_28249.test
+++ b/mysql-test/t/query_cache_28249.test
@@ -19,12 +19,10 @@ SET @query_cache_min_res_unit= @@global.query_cache_min_res_unit;
SET @query_cache_size= @@global.query_cache_size;
--echo # Bug#28249 Query Cache returns wrong result with concurrent insert/ certain lock
---echo # Establish connections user1,user2,user3 (user=root)
connect (user1,localhost,root,,test,,);
connect (user2,localhost,root,,test,,);
connect (user3,localhost,root,,test,,);
---echo # Switch to connection user1
connection user1;
SET GLOBAL query_cache_type=1;
@@ -40,11 +38,9 @@ CREATE TABLE t1 (a INT);
CREATE TABLE t2 (a INT);
INSERT INTO t1 VALUES (1),(2),(3);
---echo # Switch to connection user2
connection user2;
LOCK TABLE t2 WRITE;
---echo # Switch to connection user1
connection user1;
--echo # "send" the next select, "reap" the result later.
--echo # The select will be blocked by the write lock on the t1.
@@ -53,7 +49,6 @@ SELECT *, (SELECT COUNT(*) FROM t2) FROM t1;
send;
eval $select_for_qc;
---echo # Switch to connection user3
connection user3;
# Typical information_schema.processlist content after sufficient sleep time
# ID USER COMMAND TIME STATE INFO
@@ -73,11 +68,9 @@ WHERE state = 'Waiting for table metadata lock'
AND info = '$select_for_qc';
INSERT INTO t1 VALUES (4);
---echo # Switch to connection user2
connection user2;
UNLOCK TABLES;
---echo # Switch to connection user1
connection user1;
#
# Since the lock ordering rule in thr_multi_lock depends on
@@ -95,13 +88,11 @@ connection user1;
--reap
--enable_result_log
---echo # Switch to connection user3
connection user3;
--echo # The next select enforces that effects of "concurrent_inserts" like the
--echo # record with a = 4 is missing in result sets can no more happen.
SELECT 1 FROM t1 WHERE a = 4;
---echo # Switch to connection user1
connection user1;
--echo # The next result set must contain 4 rows.
# If not, we have a regression of Bug#28249
@@ -111,7 +102,6 @@ eval $select_for_qc;
DROP TABLE t1,t2;
---echo # Switch to connection default + close connections user1,user2,user3
connection default;
disconnect user1;
disconnect user2;
@@ -121,4 +111,3 @@ SET GLOBAL query_cache_type= @query_cache_type;
SET GLOBAL query_cache_limit= @query_cache_limit;
SET GLOBAL query_cache_min_res_unit= @query_cache_min_res_unit;
SET GLOBAL query_cache_size= @query_cache_size;
-
diff --git a/mysql-test/t/query_cache_debug.test b/mysql-test/t/query_cache_debug.test
index 5eba778cf9e..31f2d786efb 100644
--- a/mysql-test/t/query_cache_debug.test
+++ b/mysql-test/t/query_cache_debug.test
@@ -27,7 +27,7 @@ connection default;
set debug_sync="now WAIT_FOR parked";
connection bug30887con2;
---echo On a second connection; clear the query cache.
+--echo clear the query cache.
show status like 'Qcache_queries_in_cache';
set global query_cache_size= 0;
@@ -71,28 +71,23 @@ connect(con1,localhost,root,,test,,);
connect(con2,localhost,root,,test,,);
connection con1;
---echo # Switch to connection con1
SET DEBUG_SYNC = "wait_after_query_cache_invalidate SIGNAL parked WAIT_FOR go";
--echo # Send concurrent insert, will wait in the query cache table invalidate
--send INSERT INTO t1 VALUES (4)
connection default;
---echo # Switch to connection default
--echo # Wait for concurrent insert to reach the debug point
SET DEBUG_SYNC = "now WAIT_FOR parked";
connection con2;
---echo # Switch to connection con2
--echo # Send SELECT that shouldn't be cached
SELECT * FROM t1;
connection default;
---echo # Switch to connection default
--echo # Notify the concurrent insert to proceed
SET DEBUG_SYNC = "now SIGNAL go";
connection con1;
---echo # Switch to connection con1
--echo # Gather insert result
--reap
SHOW STATUS LIKE "Qcache_queries_in_cache";
@@ -100,7 +95,6 @@ SHOW STATUS LIKE "Qcache_queries_in_cache";
SELECT * FROM t1;
SHOW STATUS LIKE "Qcache_queries_in_cache";
---echo # Disconnect
disconnect con1;
disconnect con2;
@@ -140,7 +134,6 @@ connect (thd3, localhost, root, ,test);
connect (thd1, localhost, root, ,test);
connection thd1;
---echo =================================== Connection thd1
--echo **
--echo ** Load Query Cache with a result set and one table.
--echo **
@@ -162,13 +155,11 @@ SET DEBUG_SYNC="wait_in_query_cache_invalidate2 SIGNAL parked1_2 WAIT_FOR go1_2"
--send DELETE FROM t1 WHERE a like '%a%';
connection default;
---echo =================================== Connection default
--echo ** Assert that the expect process status is obtained.
SET DEBUG_SYNC="now WAIT_FOR parked1_1";
-- echo **
connection thd2;
---echo =================================== Connection thd2
--echo ** On THD2: Insert a result into the cache. This attempt will be blocked
--echo ** because of a debug hook placed just before the mutex lock after which
--echo ** the first part of the result set is written.
@@ -176,21 +167,18 @@ SET DEBUG_SYNC="wait_in_query_cache_insert SIGNAL parked2 WAIT_FOR go2 EXECUTE 1
--send SELECT SQL_CACHE * FROM t2 UNION SELECT * FROM t3
connection default;
---echo =================================== Connection default
--echo ** Assert that the SELECT-stmt thread reaches the sync point.
SET DEBUG_SYNC="now WAIT_FOR parked2";
--echo **
--echo **
connection thd3;
---echo =================================== Connection thd3
--echo ** On THD3: Insert another result into the cache and block on the same
--echo ** debug hook.
SET DEBUG_SYNC="wait_in_query_cache_insert SIGNAL parked3 WAIT_FOR go3 EXECUTE 1";
--send SELECT SQL_CACHE * FROM t4 UNION SELECT * FROM t5
connection default;
---echo =================================== Connection default
--echo ** Assert that the SELECT-stmt thread reaches the sync point.
SET DEBUG_SYNC="now WAIT_FOR parked3";
--echo **
@@ -225,20 +213,17 @@ SET DEBUG_SYNC="now SIGNAL go1_2";
--echo *************************************************************************
--echo ** No tables should be locked
connection thd2;
---echo =================================== Connection thd2
reap;
DELETE FROM t1;
DELETE FROM t2;
DELETE FROM t3;
connection thd3;
---echo =================================== Connection thd3
reap;
DELETE FROM t4;
DELETE FROM t5;
connection thd1;
---echo =================================== Connection thd1
reap;
--echo ** Done.
@@ -278,23 +263,19 @@ connect(con1,localhost,root,,test,,);
connect(con2,localhost,root,,test,,);
connection con1;
---echo # Switch to connection con1
SET DEBUG_SYNC = "wait_in_query_cache_invalidate2 SIGNAL parked WAIT_FOR go";
--echo # Send INSERT, will wait in the query cache table invalidation
--send INSERT INTO t1 VALUES (4);
connection default;
---echo # Switch to connection default
--echo # Wait for insert to reach the debug point
SET DEBUG_SYNC = "now WAIT_FOR parked";
connection con2;
---echo # Switch to connection con2
--echo # Send a query that should wait on the query cache lock
--send RESET QUERY CACHE
connection default;
---echo # Switch to connection default
--echo # Wait for the state to be reflected in the processlist
let $wait_condition=
SELECT COUNT(*) = 1 FROM information_schema.processlist
@@ -304,12 +285,10 @@ let $wait_condition=
SET DEBUG_SYNC="now SIGNAL go";
connection con1;
---echo # Reap con1 and disconnect
--reap
disconnect con1;
connection con2;
---echo # Reap con2 and disconnect
--reap
disconnect con2;
diff --git a/mysql-test/t/read_only.test b/mysql-test/t/read_only.test
index 3e5d4fc8ce1..3e970fc6da7 100644
--- a/mysql-test/t/read_only.test
+++ b/mysql-test/t/read_only.test
@@ -18,15 +18,12 @@ DROP TABLE IF EXISTS t1,t2,t3;
create user test@localhost;
grant CREATE, SELECT, DROP on *.* to test@localhost;
---echo connect (con1,localhost,test,,test);
connect (con1,localhost,test,,test);
---echo connection default;
connection default;
set global read_only=0;
---echo connection con1;
connection con1;
create table t1 (a int);
@@ -36,7 +33,6 @@ insert into t1 values(1);
create table t2 select * from t1;
---echo connection default;
connection default;
set global read_only=1;
@@ -46,7 +42,6 @@ set global read_only=1;
create table t3 (a int);
drop table t3;
---echo connection con1;
connection con1;
select @@global.read_only;
@@ -123,16 +118,13 @@ insert into t1 values(1);
# - is an error in the same connection
# - is ok in a different connection
---echo connection default;
connection default;
set global read_only=0;
lock table t1 write;
---echo connection con1;
connection con1;
lock table t2 write;
---echo connection default;
connection default;
--error ER_LOCK_OR_ACTIVE_TRANSACTION
set global read_only=1;
@@ -142,7 +134,6 @@ unlock tables ;
--echo send set global read_only=1;
send set global read_only=1;
---echo connection con1;
connection con1;
select @@global.read_only;
unlock tables ;
@@ -150,7 +141,6 @@ let $wait_condition= SELECT @@global.read_only= 1;
--source include/wait_condition.inc
select @@global.read_only;
---echo connection default;
connection default;
--echo reap;
reap;
@@ -159,16 +149,13 @@ reap;
# - is an error in the same connection
# - is ok in a different connection
---echo connection default;
connection default;
set global read_only=0;
lock table t1 read;
---echo connection con1;
connection con1;
lock table t2 read;
---echo connection default;
connection default;
--error ER_LOCK_OR_ACTIVE_TRANSACTION
set global read_only=1;
@@ -179,28 +166,23 @@ unlock tables ;
set global read_only=1;
select @@global.read_only;
---echo connection con1;
connection con1;
select @@global.read_only;
unlock tables ;
---echo connection default;
connection default;
# pending transaction / READ_ONLY
# - is an error in the same connection
# - is ok in a different connection
---echo connection default;
connection default;
set global read_only=0;
BEGIN;
---echo connection con1;
connection con1;
BEGIN;
---echo connection default;
connection default;
--error ER_LOCK_OR_ACTIVE_TRANSACTION
set global read_only=1;
@@ -208,7 +190,6 @@ ROLLBACK;
set global read_only=1;
---echo connection con1;
connection con1;
select @@global.read_only;
ROLLBACK;
@@ -217,26 +198,21 @@ ROLLBACK;
# - in the same SUPER connection
# - in another SUPER connection
---echo connection default;
connection default;
set global read_only=0;
flush tables with read lock;
set global read_only=1;
unlock tables;
---echo connect (root2,localhost,root,,test);
connect (root2,localhost,root,,test);
---echo connection default;
connection default;
set global read_only=0;
flush tables with read lock;
---echo connection root2;
connection root2;
set global read_only=1;
---echo connection default;
connection default;
select @@global.read_only;
unlock tables;
@@ -256,7 +232,6 @@ drop temporary table if exists ttt;
#
# Cleanup
#
---echo connection default;
connection default;
set global read_only=0;
disconnect con1;
@@ -283,18 +258,14 @@ grant all on mysqltest_db2.* to `mysqltest_u1`@`%`;
create database mysqltest_db1;
grant all on mysqltest_db1.* to `mysqltest_u1`@`%`;
flush privileges;
---echo connect (con_bug27440,127.0.0.1,mysqltest_u1,,test,MASTER_MYPORT,);
connect (con_bug27440,127.0.0.1,mysqltest_u1,,test,$MASTER_MYPORT,);
---echo connection con_bug27440;
connection con_bug27440;
--error ER_OPTION_PREVENTS_STATEMENT
create database mysqltest_db2;
show databases like '%mysqltest_db2%';
--error ER_OPTION_PREVENTS_STATEMENT
drop database mysqltest_db1;
---echo disconnect con_bug27440;
disconnect con_bug27440;
---echo connection default;
connection default;
delete from mysql.user where User like 'mysqltest_%';
delete from mysql.db where User like 'mysqltest_%';
diff --git a/mysql-test/t/read_only_innodb.test b/mysql-test/t/read_only_innodb.test
index f404ba17579..9ba3ccaca07 100644
--- a/mysql-test/t/read_only_innodb.test
+++ b/mysql-test/t/read_only_innodb.test
@@ -84,19 +84,15 @@ COMMIT;
connection default;
UNLOCK TABLES;
---echo connection con1;
connection con1;
lock table t1 read;
---echo connection default;
connection default;
set global read_only=1;
---echo connection con1;
connection con1;
unlock tables;
---echo connection default;
connection default;
SET GLOBAL read_only=0;
@@ -127,7 +123,6 @@ GRANT CREATE TEMPORARY TABLES, DROP, INSERT, DELETE, UPDATE,
SELECT, LOCK TABLES ON db1.* TO bug33669@localhost;
SET GLOBAL READ_ONLY = ON;
connect(con1,localhost,bug33669,,db1);
---echo # Connection con1 (user bug33669):
--echo
--echo # Create, insert and drop temporary table:
diff --git a/mysql-test/t/schema.test b/mysql-test/t/schema.test
index 6af7ee20b02..8f9047e2e3f 100644
--- a/mysql-test/t/schema.test
+++ b/mysql-test/t/schema.test
@@ -27,7 +27,6 @@ DROP SCHEMA IF EXISTS schema1;
connect(con2, localhost, root);
---echo # Connection default
connection default;
CREATE SCHEMA schema1;
@@ -36,11 +35,9 @@ CREATE TABLE schema1.t1 (a INT);
SET autocommit= FALSE;
INSERT INTO schema1.t1 VALUES (1);
---echo # Connection 2
connection con2;
--send DROP SCHEMA schema1
---echo # Connection default
connection default;
let $wait_condition= SELECT COUNT(*)= 1 FROM information_schema.processlist
WHERE state= 'Waiting for table metadata lock'
@@ -52,11 +49,9 @@ let $wait_condition= SELECT COUNT(*)= 1 FROM information_schema.processlist
ALTER SCHEMA schema1 DEFAULT CHARACTER SET utf8;
SET autocommit= TRUE;
---echo # Connection 2
connection con2;
--reap
---echo # Connection default
connection default;
disconnect con2;
@@ -71,17 +66,14 @@ DROP SCHEMA IF EXISTS schema1;
connect (con2, localhost, root);
---echo # Connection default
connection default;
CREATE SCHEMA schema1;
CREATE TABLE schema1.t1 (id INT);
LOCK TABLE schema1.t1 WRITE;
---echo # Connection con2
connection con2;
--send DROP SCHEMA schema1
---echo # Connection default
connection default;
let $wait_condition=SELECT COUNT(*)=1 FROM information_schema.processlist
WHERE state='Waiting for schema metadata lock' and info='DROP SCHEMA schema1';
@@ -95,11 +87,9 @@ CREATE SCHEMA IF NOT EXISTS schema1;
--echo # UNLOCK TABLES so DROP SCHEMA can continue.
UNLOCK TABLES;
---echo # Connection con2
connection con2;
--reap
---echo # Connection default
connection default;
disconnect con2;
@@ -112,22 +102,18 @@ CREATE DATABASE db1;
CREATE TABLE db1.t1 (a INT);
INSERT INTO db1.t1 VALUES (1), (2);
---echo # Connection con1
connect (con1, localhost, root);
HANDLER db1.t1 OPEN;
---echo # Connection default
connection default;
--echo # Sending:
--send DROP DATABASE db1
---echo # Connection con2
connect (con2, localhost, root);
let $wait_condition=SELECT COUNT(*)=1 FROM information_schema.processlist
WHERE state='Waiting for table metadata lock' AND info='DROP DATABASE db1';
--source include/wait_condition.inc
---echo # Connection con1
connection con1;
# All these statements before resulted in deadlock.
CREATE DATABASE db2;
@@ -135,7 +121,6 @@ ALTER DATABASE db2 DEFAULT CHARACTER SET utf8;
DROP DATABASE db2;
HANDLER t1 CLOSE;
---echo # Connection default
connection default;
--echo # Reaping: DROP DATABASE db1
--reap
@@ -156,20 +141,17 @@ DROP DATABASE IF EXISTS db2;
connect (con2, localhost, root);
connect (con3, localhost, root);
---echo # Connection default
connection default;
CREATE DATABASE db1;
CREATE TABLE db1.t1 (id INT);
START TRANSACTION;
INSERT INTO db1.t1 VALUES (1);
---echo # Connection 2
connection con2;
--echo # DROP DATABASE should block due to the active transaction
--echo # Sending:
--send DROP DATABASE db1
---echo # Connection 3
connection con3;
let $wait_condition=SELECT COUNT(*)=1 FROM information_schema.processlist
WHERE state='Waiting for table metadata lock' and info='DROP DATABASE db1';
@@ -179,17 +161,14 @@ CREATE DATABASE db2;
ALTER DATABASE db2 DEFAULT CHARACTER SET utf8;
DROP DATABASE db2;
---echo # Connection default
connection default;
--echo # End the transaction so DROP DATABASE db1 can continue
COMMIT;
---echo # Connection 2
connection con2;
--echo # Reaping: DROP DATABASE db1
--reap
---echo # Connection default;
connection default;
disconnect con2;
disconnect con3;
diff --git a/mysql-test/t/show_check.test b/mysql-test/t/show_check.test
index d9aed952fce..a14c42d8ade 100644
--- a/mysql-test/t/show_check.test
+++ b/mysql-test/t/show_check.test
@@ -1232,7 +1232,6 @@ connection default;
CREATE TABLE t1 (i INT PRIMARY KEY);
LOCK TABLE t1 WRITE;
---echo # Switching to connection 'con1'.
connection con1;
--echo # This statement used to be blocked.
SHOW CREATE TABLE t1;
@@ -1240,7 +1239,6 @@ SHOW CREATE TABLE t1;
disconnect con1;
--source include/wait_until_disconnected.inc
---echo # Switching to connection 'default'.
connection default;
UNLOCK TABLES;
DROP TABLE t1;
@@ -1257,22 +1255,18 @@ DROP TABLE IF EXISTS t1;
CREATE TABLE t1(a INT);
---echo # Connection con1
connect (con1,localhost,root);
LOCK TABLE t1 WRITE;
---echo # Connection default
connection default;
START TRANSACTION;
SHOW CREATE TABLE t1;
---echo # Connection con1
connection con1;
# Used to block
ALTER TABLE t1 CHARACTER SET = utf8;
UNLOCK TABLES;
---echo # Connection default
connection default;
COMMIT;
disconnect con1;
@@ -1292,27 +1286,22 @@ CREATE TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET new.a = 1;
--echo # Test 1: SHOW CREATE TRIGGER with WRITE locked table.
---echo # Connection con1
connect (con1, localhost, root);
LOCK TABLE t1 WRITE;
---echo # Connection default
connection default;
# Should not block.
SHOW CREATE TRIGGER t1_bi;
---echo # Connection con1
connection con1;
UNLOCK TABLES;
--echo # Test 2: ALTER TABLE with SHOW CREATE TRIGGER in transaction
---echo # Connection default
connection default;
START TRANSACTION;
SHOW CREATE TRIGGER t1_bi;
---echo # Connection con1
connection con1;
# Should not block.
ALTER TABLE t1 CHARACTER SET = utf8;
@@ -1320,7 +1309,6 @@ ALTER TABLE t1 CHARACTER SET = utf8;
disconnect con1;
--source include/wait_until_disconnected.inc
---echo # Connection default
connection default;
COMMIT;
DROP TRIGGER t1_bi;
diff --git a/mysql-test/t/show_grants_with_plugin-7985.test b/mysql-test/t/show_grants_with_plugin-7985.test
index 9c05cb2e06d..84f71c72667 100644
--- a/mysql-test/t/show_grants_with_plugin-7985.test
+++ b/mysql-test/t/show_grants_with_plugin-7985.test
@@ -1,5 +1,4 @@
--source include/not_embedded.inc
---enable_connect_log
call mtr.add_suppression("password and an authentication plugin");
--echo #
diff --git a/mysql-test/t/sp-lock.test b/mysql-test/t/sp-lock.test
index a01c9e19908..83ea07d4bda 100644
--- a/mysql-test/t/sp-lock.test
+++ b/mysql-test/t/sp-lock.test
@@ -142,7 +142,6 @@ drop temporary table t1;
--echo # connection, try to use the routine.
--echo # That should block on the pending exclusive lock.
--echo #
---echo # Establish helper connections.
connect(con1, localhost, root,,);
connect(con2, localhost, root,,);
connect(con3, localhost, root,,);
@@ -150,7 +149,6 @@ connect(con3, localhost, root,,);
--echo #
--echo # Test DROP PROCEDURE.
--echo #
---echo # --> connection default
connection default;
create procedure p1() begin end;
delimiter |;
@@ -162,11 +160,9 @@ end|
delimiter ;|
begin;
select f1();
---echo # --> connection con1
connection con1;
--echo # Sending 'drop procedure p1'...
send drop procedure p1;
---echo # --> connection con2
connection con2;
--echo # Waiting for 'drop procedure t1' to get blocked on MDL lock...
let $wait_condition=select count(*)=1 from information_schema.processlist
@@ -176,24 +172,19 @@ info='drop procedure p1';
--echo # Demonstrate that there is a pending exclusive lock.
--echo # Sending 'select f1()'...
send select f1();
---echo # --> connection con3
connection con3;
--echo # Waiting for 'select f1()' to get blocked by a pending MDL lock...
let $wait_condition=select count(*)=1 from information_schema.processlist
where state='Waiting for stored procedure metadata lock' and info='select f1()';
---echo # --> connection default
connection default;
commit;
---echo # --> connection con1
connection con1;
--echo # Reaping 'drop procedure p1'...
reap;
---echo # --> connection con2
connection con2;
--echo # Reaping 'select f1()'
--error ER_SP_DOES_NOT_EXIST
reap;
---echo # --> connection default
connection default;
--echo #
@@ -202,11 +193,9 @@ connection default;
create procedure p1() begin end;
begin;
select f1();
---echo # --> connection con1
connection con1;
--echo # Sending 'create procedure p1'...
send create procedure p1() begin end;
---echo # --> connection con2
connection con2;
--echo # Waiting for 'create procedure t1' to get blocked on MDL lock...
let $wait_condition=select count(*)=1 from information_schema.processlist
@@ -216,20 +205,16 @@ info='create procedure p1() begin end';
--echo # Demonstrate that there is a pending exclusive lock.
--echo # Sending 'select f1()'...
send select f1();
---echo # --> connection con3
connection con3;
--echo # Waiting for 'select f1()' to get blocked by a pending MDL lock...
let $wait_condition=select count(*)=1 from information_schema.processlist
where state='Waiting for stored procedure metadata lock' and info='select f1()';
---echo # --> connection default
connection default;
commit;
---echo # --> connection con1
connection con1;
--echo # Reaping 'create procedure p1'...
--error ER_SP_ALREADY_EXISTS
reap;
---echo # --> connection con2
connection con2;
--echo # Reaping 'select f1()'
reap;
@@ -240,11 +225,9 @@ connection default;
--echo #
begin;
select f1();
---echo # --> connection con1
connection con1;
--echo # Sending 'alter procedure p1'...
send alter procedure p1 contains sql;
---echo # --> connection con2
connection con2;
--echo # Waiting for 'alter procedure t1' to get blocked on MDL lock...
let $wait_condition=select count(*)=1 from information_schema.processlist
@@ -254,23 +237,18 @@ info='alter procedure p1 contains sql';
--echo # Demonstrate that there is a pending exclusive lock.
--echo # Sending 'select f1()'...
send select f1();
---echo # --> connection con3
connection con3;
--echo # Waiting for 'select f1()' to get blocked by a pending MDL lock...
let $wait_condition=select count(*)=1 from information_schema.processlist
where state='Waiting for stored procedure metadata lock' and info='select f1()';
---echo # --> connection default
connection default;
commit;
---echo # --> connection con1
connection con1;
--echo # Reaping 'alter procedure p1'...
reap;
---echo # --> connection con2
connection con2;
--echo # Reaping 'select f1()'
reap;
---echo # --> connection default
connection default;
--echo #
@@ -278,11 +256,9 @@ connection default;
--echo #
begin;
select f1();
---echo # --> connection con1
connection con1;
--echo # Sending 'drop function f1'...
send drop function f1;
---echo # --> connection con2
connection con2;
--echo # Waiting for 'drop function f1' to get blocked on MDL lock...
let $wait_condition=select count(*)=1 from information_schema.processlist
@@ -292,24 +268,19 @@ info='drop function f1';
--echo # Demonstrate that there is a pending exclusive lock.
--echo # Sending 'select f1()'...
send select f1();
---echo # --> connection con3
connection con3;
--echo # Waiting for 'select f1()' to get blocked by a pending MDL lock...
let $wait_condition=select count(*)=1 from information_schema.processlist
where state='Waiting for stored function metadata lock' and info='select f1()';
---echo # --> connection default
connection default;
commit;
---echo # --> connection con1
connection con1;
--echo # Reaping 'drop function f1'...
reap;
---echo # --> connection con2
connection con2;
--echo # Reaping 'select f1()'
--error ER_SP_DOES_NOT_EXIST
reap;
---echo # --> connection default
connection default;
--echo #
@@ -318,11 +289,9 @@ connection default;
create function f1() returns int return 1;
begin;
select f1();
---echo # --> connection con1
connection con1;
--echo # Sending 'create function f1'...
send create function f1() returns int return 2;
---echo # --> connection con2
connection con2;
--echo # Waiting for 'create function f1' to get blocked on MDL lock...
let $wait_condition=select count(*)=1 from information_schema.processlist
@@ -332,24 +301,19 @@ info='create function f1() returns int return 2';
--echo # Demonstrate that there is a pending exclusive lock.
--echo # Sending 'select f1()'...
send select f1();
---echo # --> connection con3
connection con3;
--echo # Waiting for 'select f1()' to get blocked by a pending MDL lock...
let $wait_condition=select count(*)=1 from information_schema.processlist
where state='Waiting for stored function metadata lock' and info='select f1()';
---echo # --> connection default
connection default;
commit;
---echo # --> connection con1
connection con1;
--echo # Reaping 'create function f1'...
--error ER_SP_ALREADY_EXISTS
reap;
---echo # --> connection con2
connection con2;
--echo # Reaping 'select f1()'
reap;
---echo # --> connection default
connection default;
--echo #
@@ -357,11 +321,9 @@ connection default;
--echo #
begin;
select f1();
---echo # --> connection con1
connection con1;
--echo # Sending 'alter function f1'...
send alter function f1 contains sql;
---echo # --> connection con2
connection con2;
--echo # Waiting for 'alter function f1' to get blocked on MDL lock...
let $wait_condition=select count(*)=1 from information_schema.processlist
@@ -371,23 +333,18 @@ info='alter function f1 contains sql';
--echo # Demonstrate that there is a pending exclusive lock.
--echo # Sending 'select f1()'...
send select f1();
---echo # --> connection con3
connection con3;
--echo # Waiting for 'select f1()' to get blocked by a pending MDL lock...
let $wait_condition=select count(*)=1 from information_schema.processlist
where state='Waiting for stored function metadata lock' and info='select f1()';
---echo # --> connection default
connection default;
commit;
---echo # --> connection con1
connection con1;
--echo # Reaping 'alter function f1'...
reap;
---echo # --> connection con2
connection con2;
--echo # Reaping 'select f1()'
reap;
---echo # --> connection default
connection default;
drop function f1;
drop procedure p1;
@@ -427,13 +384,11 @@ call p4();
prepare stmt from "call p4()";
execute stmt;
execute stmt;
---echo # --> connection con1
connection con1;
drop procedure p1;
drop procedure p2;
drop procedure p3;
drop procedure p4;
---echo # --> connection default
connection default;
--echo # This is to verify there was no implicit commit.
rollback to savepoint sv;
@@ -456,25 +411,20 @@ create trigger t1_ai after insert on t1 for each row
insert into t2 (a, b) values (new.a, f1());
begin;
insert into t1 (a) values (1);
---echo # --> connection con1
connection con1;
--echo # Sending 'drop function f1'
send drop function f1;
---echo # --> connection con2
connection con2;
--echo # Waiting for 'drop function f1' to get blocked on MDL lock...
let $wait_condition=select count(*)=1 from information_schema.processlist
where state='Waiting for stored function metadata lock' and
info='drop function f1';
--source include/wait_condition.inc
---echo # --> connnection default
connection default;
commit;
---echo # --> connection con1
connection con1;
--echo # Reaping 'drop function f1'...
reap;
---echo # --> connection default
connection default;
--echo #
--echo # A function is used from a view.
@@ -483,25 +433,20 @@ create function f1() returns int return 1;
create view v1 as select f1() as a;
begin;
select * from v1;
---echo # --> connection con1
connection con1;
--echo # Sending 'drop function f1'
send drop function f1;
---echo # --> connection con2
connection con2;
--echo # Waiting for 'drop function f1' to get blocked on MDL lock...
let $wait_condition=select count(*)=1 from information_schema.processlist
where state='Waiting for stored function metadata lock' and
info='drop function f1';
--source include/wait_condition.inc
---echo # --> connnection default
connection default;
commit;
---echo # --> connection con1
connection con1;
--echo # Reaping 'drop function f1'...
reap;
---echo # --> connection default
connection default;
--echo #
--echo # A procedure is used from a function.
@@ -517,25 +462,20 @@ delimiter ;|
create procedure p1(out v_out int) set v_out=3;
begin;
select * from v1;
---echo # --> connection con1
connection con1;
--echo # Sending 'drop procedure p1'
send drop procedure p1;
---echo # --> connection con2
connection con2;
--echo # Waiting for 'drop procedure p1' to get blocked on MDL lock...
let $wait_condition=select count(*)=1 from information_schema.processlist
where state='Waiting for stored procedure metadata lock' and
info='drop procedure p1';
--source include/wait_condition.inc
---echo # --> connnection default
connection default;
commit;
---echo # --> connection con1
connection con1;
--echo # Reaping 'drop procedure p1'...
reap;
---echo # --> connection default
connection default;
--echo #
@@ -549,25 +489,20 @@ create trigger t1_ai after insert on t1 for each row
insert into t2 (a, b) values (new.a, (select max(a) from v1));
begin;
insert into t1 (a) values (3);
---echo # --> connection con1
connection con1;
--echo # Sending 'drop function f2'
send drop function f2;
---echo # --> connection con2
connection con2;
--echo # Waiting for 'drop function f2' to get blocked on MDL lock...
let $wait_condition=select count(*)=1 from information_schema.processlist
where state='Waiting for stored function metadata lock' and
info='drop function f2';
--source include/wait_condition.inc
---echo # --> connnection default
connection default;
commit;
---echo # --> connection con1
connection con1;
--echo # Reaping 'drop function f2'...
reap;
---echo # --> connection default
connection default;
drop view v1;
@@ -612,11 +547,9 @@ lock table v1 read;
select * from v1;
savepoint sv;
select f2();
---echo # --> connection con1
connection con1;
--echo # Sending 'drop function f1'...
send drop function f1;
---echo # --> connection con2
connection con2;
--echo # Waiting for 'drop function f1' to get blocked on MDL lock...
let $wait_condition=select count(*)=1 from information_schema.processlist
@@ -625,7 +558,6 @@ info='drop function f1';
--source include/wait_condition.inc
--echo # Sending 'drop function f2'...
send drop function f2;
---echo # --> connection default
connection default;
--echo # Waiting for 'drop function f2' to get blocked on MDL lock...
let $wait_condition=select count(*)=1 from information_schema.processlist
@@ -633,18 +565,14 @@ where state='Waiting for stored function metadata lock' and
info='drop function f2';
--source include/wait_condition.inc
rollback to savepoint sv;
---echo # --> connection con2
connection con2;
--echo # Reaping 'drop function f2'...
reap;
---echo # --> connection default
connection default;
unlock tables;
---echo # --> connection con1
connection con1;
--echo # Reaping 'drop function f1'...
reap;
---echo # --> connection default
connection default;
--error ER_SP_DOES_NOT_EXIST
drop function f1;
@@ -683,18 +611,14 @@ begin
execute stmt;
end|
delimiter ;|
---echo # --> connection con2
connection con2;
prepare stmt from "select f2()";
---echo # --> connection default
connection default;
begin;
select f1();
---echo # --> connection con1
connection con1;
--echo # Sending 'alter function f1 ...'...
send alter function f1 comment "comment";
---echo # --> connection con2
connection con2;
--echo # Waiting for 'alter function f1 ...' to get blocked on MDL lock...
let $wait_condition=select count(*)=1 from information_schema.processlist
@@ -711,16 +635,13 @@ info='select f1() into @var';
--source include/wait_condition.inc
--echo # Let 'alter function f1 ...' go through...
commit;
---echo # --> connection con1
connection con1;
--echo # Reaping 'alter function f1 ...'
reap;
---echo # --> connection con2
connection con2;
--echo # Reaping 'call p1()'...
reap;
deallocate prepare stmt;
---echo # --> connection default
connection default;
drop function f1;
drop function f2;
@@ -739,11 +660,9 @@ drop procedure p1;
create function f1() returns int return 1;
begin;
select f1();
---echo # --> connection con1
connection con1;
--echo # Sending 'alter function f1 ...'...
send alter function f1 comment "comment";
---echo # --> connection con2
connection con2;
--echo # Waiting for 'alter function f1 ...' to get blocked on MDL lock...
let $wait_condition=select count(*)=1 from information_schema.processlist
@@ -781,15 +700,12 @@ info='select f1() into @var';
--source include/wait_condition.inc
--echo # Let 'alter function f1 ...' go through...
commit;
---echo # --> connection con1
connection con1;
--echo # Reaping 'alter function f1 ...'
reap;
---echo # --> connection con2
connection con2;
--echo # Reaping 'call p1()'...
reap;
---echo # --> connection default
connection default;
drop function f1;
drop function f2;
@@ -817,14 +733,11 @@ begin
return res;
end|
delimiter ;|
---echo # --> connection con1
connection con1;
select get_lock("30977", 0);
---echo # --> connection default
connection default;
--echo # Sending 'select f3()'...
send select f3();
---echo # --> connection con1
connection con1;
--echo # Waiting for 'select f3()' to get blocked on the user level lock...
let $wait_condition=select count(*)=1 from information_schema.processlist
@@ -834,7 +747,6 @@ where state='User lock' and info='select f1() into @var';
create function f4() returns int return 4;
drop function f4;
select release_lock("30977");
---echo # --> connection default
connection default;
--echo # Reaping 'select f3()'...
--echo # Routine 'f2()' should exist and get executed successfully.
@@ -880,19 +792,15 @@ drop procedure p1;
drop function f1;
set @@session.max_sp_recursion_depth=default;
---echo # --> connection con1
connection con1;
disconnect con1;
--source include/wait_until_disconnected.inc
---echo # --> connection con2
connection con2;
disconnect con2;
--source include/wait_until_disconnected.inc
---echo # --> connection con3
connection con3;
disconnect con3;
--source include/wait_until_disconnected.inc
---echo # --> connection default
connection default;
@@ -914,17 +822,14 @@ delimiter ;|
connect (con2, localhost, root);
connect (con3, localhost, root);
---echo # Connection default
connection default;
SELECT get_lock("test", 10);
---echo # Connection 2
connection con2;
--echo # Will halt before executing SHOW CREATE PROCEDURE p1
--echo # Sending:
--send CALL p1()
---echo # Connection 3
connection con3;
let $wait_condition=SELECT COUNT(*)=1 FROM information_schema.processlist
WHERE state='User lock' and info='SELECT get_lock("test", 10)';
@@ -933,25 +838,20 @@ let $wait_condition=SELECT COUNT(*)=1 FROM information_schema.processlist
DROP PROCEDURE p1;
CREATE PROCEDURE p1() BEGIN END;
---echo # Connection default
connection default;
--echo # Resume CALL p1, now with new p1
SELECT release_lock("test");
---echo # Connection 2
connection con2;
--echo # Reaping: CALL p1()
--reap
---echo # Connection 3
connection con3;
disconnect con3;
--source include/wait_until_disconnected.inc
---echo # Connection 2
connection con2;
disconnect con2;
--source include/wait_until_disconnected.inc
---echo # Connection default;
connection default;
DROP PROCEDURE p1;
@@ -972,19 +872,16 @@ connect(con2, localhost, root);
--echo # Test 1: Check that DROP DATABASE block if a function is used
--echo # by an active transaction.
---echo # Connection default
connection default;
CREATE DATABASE db1;
CREATE FUNCTION db1.f1() RETURNS INTEGER RETURN 1;
START TRANSACTION;
SELECT db1.f1();
---echo # Connection con1
connection con1;
--echo # Sending:
--send DROP DATABASE db1
---echo # Connection default
connection default;
--echo # Waiting for DROP DATABASE to be blocked by the lock on f1()
let $wait_condition= SELECT COUNT(*)= 1 FROM information_schema.processlist
@@ -993,7 +890,6 @@ let $wait_condition= SELECT COUNT(*)= 1 FROM information_schema.processlist
--source include/wait_condition.inc
COMMIT;
---echo # Connection con1
connection con1;
--echo # Reaping: DROP DATABASE db1
--reap
@@ -1001,7 +897,6 @@ connection con1;
--echo # Test 2: Check that DROP DATABASE blocks if a procedure is
--echo # used by an active transaction.
---echo # Connection default
connection default;
CREATE DATABASE db1;
CREATE PROCEDURE db1.p1() BEGIN END;
@@ -1015,12 +910,10 @@ delimiter ;|
START TRANSACTION;
SELECT f1();
---echo # Connection con1
connection con1;
--echo # Sending:
--send DROP DATABASE db1
---echo # Connection default
connection default;
--echo # Waiting for DROP DATABASE to be blocked by the lock on p1()
let $wait_condition= SELECT COUNT(*)= 1 FROM information_schema.processlist
@@ -1029,7 +922,6 @@ let $wait_condition= SELECT COUNT(*)= 1 FROM information_schema.processlist
--source include/wait_condition.inc
COMMIT;
---echo # Connection con1
connection con1;
--echo # Reaping: DROP DATABASE db1
--reap
@@ -1037,7 +929,6 @@ connection con1;
--echo # Test 3: Check that DROP DATABASE is not selected as a victim if a
--echo # deadlock is discovered with DML statements.
---echo # Connection default
connection default;
CREATE DATABASE db1;
CREATE TABLE db1.t1 (a INT);
@@ -1046,12 +937,10 @@ START TRANSACTION;
# DROP DATABASE will lock tables (t1) before functions (f1)
SELECT db1.f1();
---echo # Connection con1
connection con1;
--echo # Sending:
--send DROP DATABASE db1
---echo # Connection default
connection default;
--echo # Waiting for DROP DATABASE to be blocked by the lock on f1()
let $wait_condition= SELECT COUNT(*)= 1 FROM information_schema.processlist
@@ -1062,14 +951,12 @@ let $wait_condition= SELECT COUNT(*)= 1 FROM information_schema.processlist
SELECT * FROM db1.t1;
COMMIT;
---echo # Connection con1
connection con1;
--echo # Reaping: DROP DATABASE db1
--reap
--echo # Test 4: Check that active DROP DATABASE blocks stored routine DDL.
---echo # Connection default
connection default;
CREATE DATABASE db1;
CREATE FUNCTION db1.f1() RETURNS INTEGER RETURN 1;
@@ -1077,12 +964,10 @@ CREATE FUNCTION db1.f2() RETURNS INTEGER RETURN 2;
START TRANSACTION;
SELECT db1.f2();
---echo # Connection con1
connection con1;
--echo # Sending:
--send DROP DATABASE db1
---echo # Connection con2
connection con2;
--echo # Waiting for DROP DATABASE to be blocked by the lock on f2()
let $wait_condition= SELECT COUNT(*)= 1 FROM information_schema.processlist
@@ -1092,7 +977,6 @@ let $wait_condition= SELECT COUNT(*)= 1 FROM information_schema.processlist
--echo # Sending:
--send ALTER FUNCTION db1.f1 COMMENT "test"
---echo # Connection default
connection default;
--echo # Waiting for ALTER FUNCTION to be blocked by the schema lock on db1
let $wait_condition= SELECT COUNT(*)= 1 FROM information_schema.processlist
@@ -1101,14 +985,12 @@ let $wait_condition= SELECT COUNT(*)= 1 FROM information_schema.processlist
--source include/wait_condition.inc
COMMIT;
---echo # Connection con1
connection con1;
--echo # Reaping: DROP DATABASE db1
--reap
disconnect con1;
--source include/wait_until_disconnected.inc
---echo # Connection con2
connection con2;
--echo # Reaping: ALTER FUNCTION f1 COMMENT 'test'
--error ER_SP_DOES_NOT_EXIST
@@ -1116,7 +998,6 @@ connection con2;
disconnect con2;
--source include/wait_until_disconnected.inc
---echo # Connection default
connection default;
DROP FUNCTION f1;
diff --git a/mysql-test/t/sp-security.test b/mysql-test/t/sp-security.test
index a5df4859d6b..f719cbff11c 100644
--- a/mysql-test/t/sp-security.test
+++ b/mysql-test/t/sp-security.test
@@ -580,8 +580,6 @@ drop database db_bug14533;
# Setup the environment.
---echo
---echo ---> connection: root
--connection con1root
--disable_warnings
@@ -602,8 +600,6 @@ GRANT ALL PRIVILEGES ON mysqltest.* TO mysqltest_2@localhost;
# test case (1).
---echo
---echo ---> connection: mysqltest_2_con
--connection mysqltest_2_con
USE mysqltest;
@@ -614,8 +610,6 @@ CREATE FUNCTION wl2897_f1() RETURNS INT RETURN 1;
# test case (2).
---echo
---echo ---> connection: mysqltest_1_con
--connection mysqltest_1_con
USE mysqltest;
@@ -628,8 +622,6 @@ CREATE DEFINER=root@localhost FUNCTION wl2897_f2() RETURNS INT RETURN 2;
# test case (3).
---echo
---echo ---> connection: mysqltest_2_con
--connection mysqltest_2_con
use mysqltest;
@@ -640,8 +632,6 @@ CREATE DEFINER='a @ b @ c'@localhost FUNCTION wl2897_f3() RETURNS INT RETURN 3;
# test case (4).
---echo
---echo ---> connection: con1root
--connection con1root
USE mysqltest;
@@ -669,8 +659,6 @@ DROP DATABASE mysqltest;
# Prepare environment.
---echo
---echo ---> connection: root
--connection con1root
--disable_warnings
@@ -690,8 +678,6 @@ GRANT ALL PRIVILEGES ON mysqltest.* TO mysqltest_2@localhost;
# Create a procedure/function under u1.
---echo
---echo ---> connection: mysqltest_1_con
--connection mysqltest_1_con
USE mysqltest;
@@ -708,8 +694,6 @@ SELECT bug13198_f1();
# Check that u2 can call the procedure/function.
---echo
---echo ---> connection: mysqltest_2_con
--connection mysqltest_2_con
USE mysqltest;
@@ -720,8 +704,6 @@ SELECT bug13198_f1();
# Drop user u1 (definer of the object);
---echo
---echo ---> connection: root
--connection con1root
--disconnect mysqltest_1_con
@@ -730,8 +712,6 @@ DROP USER mysqltest_1@localhost;
# Check that u2 can not call the procedure/function.
---echo
---echo ---> connection: mysqltest_2_con
--connection mysqltest_2_con
USE mysqltest;
@@ -744,8 +724,6 @@ SELECT bug13198_f1();
# Cleanup.
---echo
---echo ---> connection: root
--connection con1root
--disconnect mysqltest_2_con
@@ -767,8 +745,6 @@ user19857@localhost;
SELECT Host,User,Password FROM mysql.user WHERE User='user19857';
--connect (mysqltest_2_con,localhost,user19857,meow,test)
---echo
---echo ---> connection: mysqltest_2_con
--connection mysqltest_2_con
USE test;
@@ -790,8 +766,6 @@ SHOW CREATE PROCEDURE test.sp19857;
DROP PROCEDURE IF EXISTS test.sp19857;
---echo
---echo ---> connection: root
--connection con1root
--disconnect mysqltest_2_con
@@ -949,7 +923,6 @@ create database mysqltest_db;
create user bug57061_user@localhost;
create function mysqltest_db.f1() returns int return 0;
create procedure mysqltest_db.p1() begin end;
---echo # Connect as user 'bug57061_user@localhost'
connect (conn1, localhost, bug57061_user,,);
--echo # Attempt to drop routine on which user doesn't have privileges
--echo # should result in the same 'access denied' type of error whether
@@ -962,7 +935,6 @@ drop procedure if exists mysqltest_db.p_does_not_exist;
drop function if exists mysqltest_db.f1;
--error ER_PROCACCESS_DENIED_ERROR
drop procedure if exists mysqltest_db.p1;
---echo # Connection 'default'.
connection default;
disconnect conn1;
drop user bug57061_user@localhost;
@@ -983,23 +955,19 @@ CREATE PROCEDURE db1.p1() SELECT 1;
CREATE USER user2@localhost IDENTIFIED BY '';
GRANT SELECT(db) ON mysql.proc TO user2@localhost;
---echo # Connection con2 as user2
connect (con2, localhost, user2);
--echo # The statement below before disclosed info from body_utf8 column.
--error ER_SP_DOES_NOT_EXIST
SHOW CREATE PROCEDURE db1.p1;
--echo # Check that SHOW works with SELECT grant on whole table
---echo # Connection default
connection default;
GRANT SELECT ON mysql.proc TO user2@localhost;
---echo # Connection con2
connection con2;
--echo # This should work
SHOW CREATE PROCEDURE db1.p1;
---echo # Connection default
connection default;
disconnect con2;
DROP USER user2@localhost;
@@ -1020,7 +988,6 @@ create procedure mysqltest_db.p1() begin end;
--echo # Create user with no privileges on mysqltest_db database.
create user bug12602983_user@localhost;
---echo # Connect as user 'bug12602983_user@localhost'
connect (conn1, localhost, bug12602983_user,,);
--echo # Attempt to execute routine on which user doesn't have privileges
@@ -1041,7 +1008,6 @@ create view bug12602983_v1 as select mysqltest_db.f_does_not_exist();
--error ER_PROCACCESS_DENIED_ERROR
create view bug12602983_v1 as select mysqltest_db.f1();
---echo # Connection 'default'.
connection default;
disconnect conn1;
drop user bug12602983_user@localhost;
diff --git a/mysql-test/t/sp_notembedded.test b/mysql-test/t/sp_notembedded.test
index d7aaaa4340f..c620f415e22 100644
--- a/mysql-test/t/sp_notembedded.test
+++ b/mysql-test/t/sp_notembedded.test
@@ -331,7 +331,6 @@ FLUSH PRIVILEGES;
--echo #
SELECT GET_LOCK('Bug44521', 0);
--connect (con1,localhost,root,,)
---echo ** Connection con1
delimiter $;
CREATE PROCEDURE p()
BEGIN
@@ -342,7 +341,6 @@ END$
delimiter ;$
--send CALL p();
--connection default
---echo ** Default connection
let $wait_condition=
SELECT count(*) = 1 FROM information_schema.processlist
WHERE state = "User lock" AND info = "SELECT GET_LOCK('Bug44521', 100)";
@@ -420,14 +418,12 @@ use `my.db`;
CREATE FUNCTION f1(a int) RETURNS INT RETURN a;
---echo # Create new connection.
connect (addcon, localhost, root,,);
connection addcon;
USE `my.db`;
SELECT f1(1);
SELECT `my.db`.f1(2);
---echo # Switching to default connection.
connection default;
disconnect addcon;
DROP DATABASE `my.db`;
diff --git a/mysql-test/t/sp_sync.test b/mysql-test/t/sp_sync.test
index 589832bb570..a5682fc572f 100644
--- a/mysql-test/t/sp_sync.test
+++ b/mysql-test/t/sp_sync.test
@@ -24,7 +24,6 @@ SET DEBUG_SYNC= 'RESET';
connect (con2, localhost, root);
---echo # Connection default
connection default;
CREATE FUNCTION f1() RETURNS INT RETURN 1;
--echo # Get f1 cached
@@ -34,7 +33,6 @@ SET DEBUG_SYNC= 'before_execute_sql_command SIGNAL before WAIT_FOR changed';
--echo # Sending:
--send SELECT f1()
---echo # Connection 2
connection con2;
SET DEBUG_SYNC= 'now WAIT_FOR before';
--echo # ... but before f1 is locked, change it.
@@ -42,7 +40,6 @@ DROP FUNCTION f1;
CREATE FUNCTION f1() RETURNS INT RETURN 2;
SET DEBUG_SYNC= 'now SIGNAL changed';
---echo # Connection default
--echo # We should now get '2' and not '1'.
connection default;
--echo # Reaping: SELECT f1()
@@ -66,25 +63,21 @@ DROP FUNCTION IF EXISTS f1;
connect (con2, localhost, root);
connect (con3, localhost, root);
---echo # Connection default
connection default;
CREATE FUNCTION f1() RETURNS INT RETURN 0;
---echo # Connection con2
connection con2;
SET DEBUG_SYNC= 'after_wait_locked_pname SIGNAL locked WAIT_FOR issued';
--echo # con2 will now have an x-lock on f1
--echo # Sending:
--send ALTER FUNCTION f1 COMMENT 'comment'
---echo # Connection default
connection default;
SET DEBUG_SYNC= 'now WAIT_FOR locked';
--disable_result_log
--echo # This query will block due to the x-lock on f1 and back-off
--send SHOW OPEN TABLES WHERE f1()=0
---echo # Connection con3
connection con3;
let $wait_condition= SELECT COUNT(*)= 1 FROM information_schema.processlist
WHERE state= 'Waiting for stored function metadata lock'
@@ -93,7 +86,6 @@ let $wait_condition= SELECT COUNT(*)= 1 FROM information_schema.processlist
--echo # Check that the IS query is blocked before releasing the x-lock
SET DEBUG_SYNC= 'now SIGNAL issued';
---echo # Connection default
connection default;
--echo # Reaping: ALTER FUNCTION f1 COMMENT 'comment'
--reap
@@ -116,7 +108,6 @@ CREATE PROCEDURE p1() SELECT COUNT(f1(a)) FROM t1, t0;
INSERT INTO t0 VALUES(1);
INSERT INTO t1 VALUES(1), (2);
---echo # Connection 2
connect (con2, localhost, root);
CALL p1();
@@ -128,7 +119,6 @@ SET DEBUG_SYNC= 'after_open_table_mdl_shared SIGNAL locked_t1 WAIT_FOR go_for_t0
--echo # Sending:
--send CALL p1()
---echo # Connection default
connection default;
SET DEBUG_SYNC= 'now WAIT_FOR locked_t1';
--echo # Issue LOCK TABLES statement which will enter in MDL deadlock
@@ -138,12 +128,10 @@ SET DEBUG_SYNC= 'mdl_acquire_lock_wait SIGNAL go_for_t0';
LOCK TABLES t0 WRITE, t1 WRITE;
UNLOCK TABLES;
---echo # Connection 2
connection con2;
--echo # Reaping: CALL p1()
--reap;
---echo # Connection default
connection default;
disconnect con2;
DROP PROCEDURE p1;
diff --git a/mysql-test/t/ssl_connect.test b/mysql-test/t/ssl_connect.test
index 05d6dc45c74..ce57e4f746d 100644
--- a/mysql-test/t/ssl_connect.test
+++ b/mysql-test/t/ssl_connect.test
@@ -4,12 +4,14 @@
# Repeat connect/disconnect
let $i=100;
+disable_connect_log;
while ($i)
{
connect (test_con1,localhost,root,,,,,SSL);
disconnect test_con1;
dec $i;
}
+enable_connect_log;
echo completed;
## This test file is for testing encrypted communication only, not other
diff --git a/mysql-test/t/status.test b/mysql-test/t/status.test
index 32b903c0265..e0b0d9c8838 100644
--- a/mysql-test/t/status.test
+++ b/mysql-test/t/status.test
@@ -30,7 +30,6 @@ show status like 'Table_lock%';
select * from information_schema.session_status where variable_name like 'Table_lock%';
connection con1;
---echo # Switched to connection: con1
set sql_log_bin=0;
set @old_general_log = @@global.general_log;
set global general_log = 'OFF';
@@ -45,18 +44,15 @@ insert into t1 values(1);
select 1;
connection con2;
---echo # Switched to connection: con2
lock tables t1 read;
unlock tables;
lock tables t1 read;
connection con1;
---echo # Switched to connection: con1
let $ID= `select connection_id()`;
--send update t1 set n = 3
connection con2;
---echo # Switched to connection: con2
# wait for the other query to start executing
let $wait_condition= select 1 from INFORMATION_SCHEMA.PROCESSLIST
where ID = $ID and STATE = "Waiting for table level lock";
@@ -64,7 +60,6 @@ let $wait_condition= select 1 from INFORMATION_SCHEMA.PROCESSLIST
unlock tables;
connection con1;
---echo # Switched to connection: con1
reap;
show status like 'Table_locks_waited';
drop table t1;
@@ -73,7 +68,6 @@ set global general_log = @old_general_log;
disconnect con2;
disconnect con1;
connection default;
---echo # Switched to connection: default
# End of 4.1 tests
diff --git a/mysql-test/t/trans_read_only.test b/mysql-test/t/trans_read_only.test
index f50fb7db376..38b2a833216 100644
--- a/mysql-test/t/trans_read_only.test
+++ b/mysql-test/t/trans_read_only.test
@@ -10,7 +10,7 @@
--echo # Check that the option was set by the .opt file.
SELECT @@tx_read_only;
---echo # Also for new connections. Switching to con1
+--echo # Also for new connections.
connect (con1, localhost, root);
SELECT @@tx_read_only;
SET SESSION TRANSACTION READ WRITE;
@@ -18,7 +18,6 @@ SELECT @@tx_read_only;
disconnect con1;
--source include/wait_until_disconnected.inc
---echo # Connection default
connection default;
SELECT @@tx_read_only;
diff --git a/mysql-test/t/trigger-compat.test b/mysql-test/t/trigger-compat.test
index c627d1a6040..2d949b0c91e 100644
--- a/mysql-test/t/trigger-compat.test
+++ b/mysql-test/t/trigger-compat.test
@@ -42,8 +42,6 @@ GRANT CREATE, TRIGGER ON mysqltest_db1.* TO mysqltest_dfn@localhost;
--connect (wl2818_definer_con,localhost,mysqltest_dfn,,mysqltest_db1)
--connection wl2818_definer_con
---echo
---echo ---> connection: wl2818_definer_con
CREATE TABLE t1(num_value INT);
CREATE TABLE t2(user_str TEXT);
diff --git a/mysql-test/t/trigger-trans.test b/mysql-test/t/trigger-trans.test
index c17202055e1..17656c3516e 100644
--- a/mysql-test/t/trigger-trans.test
+++ b/mysql-test/t/trigger-trans.test
@@ -191,7 +191,6 @@ drop table t1,t2;
--echo # AND TRIGGER HANDLERS TO BE IGNORED
--echo #Code fixed in Bug#16041903
---enable_connect_log
CREATE TABLE t1 (id int unsigned PRIMARY KEY, val int DEFAULT 0)
ENGINE=InnoDB;
@@ -232,7 +231,5 @@ connection default;
DROP TABLE t3, t2, t1;
---disable_connect_log
-
# Wait till we reached the initial number of concurrent sessions
--source include/wait_until_count_sessions.inc
diff --git a/mysql-test/t/trigger_notembedded.test b/mysql-test/t/trigger_notembedded.test
index f0c565be41f..df5637790af 100644
--- a/mysql-test/t/trigger_notembedded.test
+++ b/mysql-test/t/trigger_notembedded.test
@@ -47,8 +47,6 @@ GRANT CREATE ON mysqltest_db1.* TO mysqltest_dfn@localhost;
--connect (wl2818_definer_con,localhost,mysqltest_dfn,,mysqltest_db1)
--connection wl2818_definer_con
---echo
---echo ---> connection: wl2818_definer_con
CREATE TABLE t1(num_value INT);
CREATE TABLE t2(user_str TEXT);
@@ -56,8 +54,6 @@ CREATE TABLE t2(user_str TEXT);
--disconnect wl2818_definer_con
--connection default
---echo
---echo ---> connection: default
GRANT INSERT, DROP ON mysqltest_db1.t1 TO mysqltest_dfn@localhost;
GRANT INSERT, DROP ON mysqltest_db1.t2 TO mysqltest_dfn@localhost;
@@ -67,15 +63,11 @@ GRANT INSERT, DROP ON mysqltest_db1.t2 TO mysqltest_dfn@localhost;
#
--connection default
---echo
---echo ---> connection: default
GRANT SUPER ON *.* TO mysqltest_dfn@localhost;
--connect (wl2818_definer_con,localhost,mysqltest_dfn,,mysqltest_db1)
--connection wl2818_definer_con
---echo
---echo ---> connection: wl2818_definer_con
--error ER_TABLEACCESS_DENIED_ERROR
CREATE TRIGGER trg1 AFTER INSERT ON t1
@@ -89,15 +81,11 @@ CREATE TRIGGER trg1 AFTER INSERT ON t1
#
--connection default
---echo
---echo ---> connection: default
GRANT TRIGGER ON mysqltest_db1.t1 TO mysqltest_dfn@localhost;
--connect (wl2818_definer_con,localhost,mysqltest_dfn,,mysqltest_db1)
--connection wl2818_definer_con
---echo
---echo ---> connection: wl2818_definer_con
CREATE TRIGGER trg1 AFTER INSERT ON t1
FOR EACH ROW
@@ -106,15 +94,11 @@ CREATE TRIGGER trg1 AFTER INSERT ON t1
--disconnect wl2818_definer_con
--connection default
---echo
---echo ---> connection: default
REVOKE TRIGGER ON mysqltest_db1.t1 FROM mysqltest_dfn@localhost;
--connect (wl2818_definer_con,localhost,mysqltest_dfn,,mysqltest_db1)
--connection wl2818_definer_con
---echo
---echo ---> connection: wl2818_definer_con
--error ER_TABLEACCESS_DENIED_ERROR
DROP TRIGGER trg1;
@@ -127,8 +111,6 @@ DROP TRIGGER trg1;
--connect (wl2818_definer_con,localhost,mysqltest_dfn,,mysqltest_db1)
--connection wl2818_definer_con
---echo
---echo ---> connection: wl2818_definer_con
--error ER_TABLEACCESS_DENIED_ERROR
INSERT INTO t1 VALUES(0);
@@ -136,15 +118,11 @@ INSERT INTO t1 VALUES(0);
--disconnect wl2818_definer_con
--connection default
---echo
---echo ---> connection: default
GRANT TRIGGER ON mysqltest_db1.t1 TO mysqltest_dfn@localhost;
--connect (wl2818_definer_con,localhost,mysqltest_dfn,,mysqltest_db1)
--connection wl2818_definer_con
---echo
---echo ---> connection: wl2818_definer_con
INSERT INTO t1 VALUES(0);
@@ -156,8 +134,6 @@ TRUNCATE TABLE t2;
--disconnect wl2818_definer_con
--connection default
---echo
---echo ---> connection: default
REVOKE SUPER ON *.* FROM mysqltest_dfn@localhost;
@@ -175,16 +151,12 @@ REVOKE SUPER ON *.* FROM mysqltest_dfn@localhost;
--connect (wl2818_definer_con,localhost,mysqltest_dfn,,mysqltest_db1)
--connection wl2818_definer_con
---echo
---echo ---> connection: wl2818_definer_con
CREATE TRIGGER trg1 AFTER INSERT ON t1
FOR EACH ROW
INSERT INTO t2 VALUES(CURRENT_USER());
--connection default
---echo
---echo ---> connection: default
# Setup definer's privileges.
@@ -200,8 +172,6 @@ GRANT SELECT ON mysqltest_db1.t2
TO 'mysqltest_inv'@localhost;
--connection wl2818_definer_con
---echo
---echo ---> connection: wl2818_definer_con
use mysqltest_db1;
@@ -212,8 +182,6 @@ SELECT * FROM t2;
--connect (wl2818_invoker_con,localhost,mysqltest_inv,,mysqltest_db1)
--connection wl2818_invoker_con
---echo
---echo ---> connection: wl2818_invoker_con
use mysqltest_db1;
@@ -234,16 +202,12 @@ SELECT * FROM t2;
#
--connection default
---echo
---echo ---> connection: default
use mysqltest_db1;
REVOKE INSERT ON mysqltest_db1.t2 FROM mysqltest_dfn@localhost;
--connection wl2818_invoker_con
---echo
---echo ---> connection: wl2818_invoker_con
use mysqltest_db1;
@@ -273,8 +237,6 @@ SELECT * FROM t2;
#
--connection wl2818_definer_con
---echo
---echo ---> connection: wl2818_definer_con
use mysqltest_db1;
@@ -289,8 +251,6 @@ CREATE DEFINER='mysqltest_inv'@'localhost'
SET @new_sum = 0;
--connection default
---echo
---echo ---> connection: default
use mysqltest_db1;
@@ -299,8 +259,6 @@ GRANT SUPER ON *.* TO mysqltest_dfn@localhost;
--disconnect wl2818_definer_con
--connect (wl2818_definer_con,localhost,mysqltest_dfn,,mysqltest_db1)
--connection wl2818_definer_con
---echo
---echo ---> connection: wl2818_definer_con
CREATE DEFINER='mysqltest_inv'@'localhost'
TRIGGER trg1 BEFORE INSERT ON t1
@@ -388,8 +346,6 @@ SELECT * FROM INFORMATION_SCHEMA.TRIGGERS ORDER BY trigger_name;
#
--connection default
---echo
---echo ---> connection: default
DROP USER mysqltest_dfn@localhost;
DROP USER mysqltest_inv@localhost;
@@ -445,8 +401,6 @@ SET @mysqltest_var = NULL;
# NEW/OLD variables.
--connection default
---echo
---echo ---> connection: default
use mysqltest_db1;
@@ -454,8 +408,6 @@ GRANT DELETE ON mysqltest_db1.* TO mysqltest_u1@localhost;
SHOW GRANTS FOR mysqltest_u1@localhost;
--connection bug15166_u1_con
---echo
---echo ---> connection: bug15166_u1_con
use mysqltest_db1;
@@ -468,8 +420,6 @@ CREATE TRIGGER t1_trg_after_delete AFTER DELETE ON t1
# - check that UPDATE is required to modify the value;
--connection default
---echo
---echo ---> connection: default
use mysqltest_db1;
@@ -480,8 +430,6 @@ GRANT UPDATE(col) ON mysqltest_db1.t3 TO mysqltest_u1@localhost;
GRANT UPDATE(col) ON mysqltest_db1.t4 TO mysqltest_u1@localhost;
--connection bug15166_u1_con
---echo
---echo ---> connection: bug15166_u1_con
use mysqltest_db1;
@@ -530,8 +478,6 @@ CREATE TRIGGER t4_trg_before_insert BEFORE INSERT ON t4
# - check that SELECT is not enough to modify the value;
--connection default
---echo
---echo ---> connection: default
use mysqltest_db1;
@@ -546,8 +492,6 @@ GRANT SELECT(col) on mysqltest_db1.t3 TO mysqltest_u1@localhost;
GRANT SELECT(col) on mysqltest_db1.t4 TO mysqltest_u1@localhost;
--connection bug15166_u1_con
---echo
---echo ---> connection: bug15166_u1_con
use mysqltest_db1;
@@ -604,8 +548,6 @@ DROP TRIGGER t4_trg_err_2;
# - check that UPDATE is required to modify the value;
--connection default
---echo
---echo ---> connection: default
use mysqltest_db1;
@@ -648,8 +590,6 @@ SELECT * FROM t4;
# - check that SELECT is not enough to modify the value;
--connection default
---echo
---echo ---> connection: default
use mysqltest_db1;
@@ -959,13 +899,10 @@ drop table if exists t1;
create table t1 (i int);
connect (flush,localhost,root,,test,,);
connection default;
---echo connection: default
lock tables t1 write;
connection flush;
---echo connection: flush
--send flush tables with read lock;
connection default;
---echo connection: default
let $wait_condition=
select count(*) = 1 from information_schema.processlist
where state = "Waiting for global read lock";
@@ -973,7 +910,6 @@ let $wait_condition=
create trigger t1_bi before insert on t1 for each row begin end;
unlock tables;
connection flush;
---echo connection: flush
--reap
unlock tables;
connection default;
diff --git a/mysql-test/t/truncate_coverage.test b/mysql-test/t/truncate_coverage.test
index 6f5c773ac6a..0834f7a3eca 100644
--- a/mysql-test/t/truncate_coverage.test
+++ b/mysql-test/t/truncate_coverage.test
@@ -27,16 +27,12 @@ INSERT INTO t1 VALUES (1);
# TRUNCATE shall block on this metadata lock.
# We can't use normal DML as such statements would also block LOCK TABLES.
#
---echo #
---echo # connection con1
--connect (con1, localhost, root,,)
HANDLER t1 OPEN;
#
# Get connection id of default connection.
# Lock the table and start TRUNCATE, which will block on MDL upgrade.
#
---echo #
---echo # connection default
--connection default
let $ID= `SELECT @id := CONNECTION_ID()`;
LOCK TABLE t1 WRITE;
@@ -47,27 +43,19 @@ send TRUNCATE TABLE t1;
# Kill the TRUNCATE query. This shall result in an error return
# from wait_while_table_is_used().
#
---echo #
---echo # connection con2
--connect (con2, localhost, root,,)
SET DEBUG_SYNC='now WAIT_FOR waiting';
let $invisible_assignment_in_select = `SELECT @id := $ID`;
KILL QUERY @id;
--disconnect con2
---echo #
---echo # connection default
--connection default
--error ER_QUERY_INTERRUPTED
reap;
UNLOCK TABLES;
---echo #
---echo # connection con1
--connection con1
--echo # Release shared metadata lock by closing HANDLER.
HANDLER t1 CLOSE;
--disconnect con1
---echo #
---echo # connection default
--connection default
DROP TABLE t1;
SET DEBUG_SYNC='RESET';
@@ -81,15 +69,11 @@ INSERT INTO t1 VALUES (1);
# TRUNCATE shall block on this metadata lock.
# We can't use normal DML as such statements would also block LOCK TABLES.
#
---echo #
---echo # connection con1
--connect (con1, localhost, root,,)
HANDLER t1 OPEN;
#
# Lock the table and start TRUNCATE, which will block on MDL upgrade.
#
---echo #
---echo # connection default
--connection default
LOCK TABLE t1 WRITE;
SET DEBUG_SYNC='mdl_upgrade_lock SIGNAL waiting';
@@ -98,19 +82,13 @@ send TRUNCATE TABLE t1;
# Remove datafile.
# Commit to let TRUNCATE continue.
#
---echo #
---echo # connection con2
--connect (con2, localhost, root,,)
SET DEBUG_SYNC='now WAIT_FOR waiting';
--remove_file $MYSQLD_DATADIR/test/t1.frm
--disconnect con2
---echo #
---echo # connection con1
--connection con1
HANDLER t1 CLOSE;
--disconnect con1
---echo #
---echo # connection default
--connection default
--error ER_NO_SUCH_TABLE
reap;
@@ -128,8 +106,6 @@ INSERT INTO t1 VALUES (1);
# Start a transaction and execute a DML in it. Since 5.4.4 this leaves
# a shared meta data lock (MDL) behind. TRUNCATE shall block on it.
#
---echo #
---echo # connection con1
--connect (con1, localhost, root,,)
START TRANSACTION;
INSERT INTO t1 VALUES (2);
@@ -137,8 +113,6 @@ INSERT INTO t1 VALUES (2);
# Get connection id of default connection.
# Start TRUNCATE, which will block on acquire_exclusive_locks().
#
---echo #
---echo # connection default
--connection default
let $ID= `SELECT @id := CONNECTION_ID()`;
SET DEBUG_SYNC='mdl_acquire_lock_wait SIGNAL waiting';
@@ -148,25 +122,17 @@ send TRUNCATE TABLE t1;
# Kill the TRUNCATE query. This shall result in an error return
# from wait_while_table_is_used().
#
---echo #
---echo # connection con1
--connection con1
SET DEBUG_SYNC='now WAIT_FOR waiting';
let $invisible_assignment_in_select = `SELECT @id := $ID`;
KILL QUERY @id;
---echo #
---echo # connection default
--connection default
--error ER_QUERY_INTERRUPTED
reap;
---echo #
---echo # connection con1
--connection con1
--echo # Release SW lock by committing transaction.
COMMIT;
--disconnect con1
---echo #
---echo # connection default
--connection default
UNLOCK TABLES;
DROP TABLE t1;
@@ -187,19 +153,16 @@ CREATE TABLE t1(a INT) engine=memory;
CREATE TABLE m1(a INT) engine=merge UNION(t1);
connect(con2, localhost, root);
---echo # Connection con1
connect(con1, localhost, root);
SET DEBUG_SYNC= 'open_tables_after_open_and_process_table SIGNAL opened WAIT_FOR dropped';
--echo # Sending:
--send TRUNCATE TABLE m1
---echo # Connection con2
connection con2;
SET DEBUG_SYNC= 'now WAIT_FOR opened';
--echo # Sending:
--send FLUSH TABLES
---echo # Connection default
connection default;
--echo # Waiting for FLUSH TABLES to be blocked.
let $wait_condition= SELECT COUNT(*)=1 FROM information_schema.processlist
@@ -207,7 +170,6 @@ let $wait_condition= SELECT COUNT(*)=1 FROM information_schema.processlist
--source include/wait_condition.inc
SET DEBUG_SYNC= 'now SIGNAL dropped';
---echo # Connection con1
connection con1;
--echo # Reaping: TRUNCATE TABLE m1
--error ER_WRONG_MRG_TABLE
@@ -215,14 +177,12 @@ connection con1;
disconnect con1;
--source include/wait_until_disconnected.inc
---echo # Connection con2
connection con2;
--echo # Reaping: FLUSH TABLES
--reap
disconnect con2;
--source include/wait_until_disconnected.inc
---echo # Connection default
connection default;
SET DEBUG_SYNC= 'RESET';
DROP TABLE m1, t1;
diff --git a/mysql-test/t/variables.test b/mysql-test/t/variables.test
index 8f29528ac25..4d97f380dff 100644
--- a/mysql-test/t/variables.test
+++ b/mysql-test/t/variables.test
@@ -562,7 +562,6 @@ select @@lc_time_names;
select @@global.lc_time_names, @@lc_time_names;
set @@global.lc_time_names=fr_FR;
select @@global.lc_time_names, @@lc_time_names;
---echo New connection
connect (con1,localhost,root,,);
connection con1;
select @@global.lc_time_names, @@lc_time_names;
@@ -570,7 +569,6 @@ set @@lc_time_names=ru_RU;
select @@global.lc_time_names, @@lc_time_names;
disconnect con1;
connection default;
---echo Returnung to default connection
select @@global.lc_time_names, @@lc_time_names;
set lc_time_names=default;
select @@global.lc_time_names, @@lc_time_names;
diff --git a/mysql-test/t/view.test b/mysql-test/t/view.test
index 83b7e5839ef..d11b7f0bc37 100644
--- a/mysql-test/t/view.test
+++ b/mysql-test/t/view.test
@@ -4643,7 +4643,6 @@ DROP PROCEDURE IF EXISTS p1;
connect (con2, localhost, root);
connect (con3, localhost, root);
---echo # Connection default
connection default;
CREATE VIEW v1 AS SELECT schema_name FROM information_schema.schemata;
@@ -4653,17 +4652,14 @@ CREATE PROCEDURE p1() INSERT INTO t1 SELECT * FROM v1;
--echo # CALL p1() so the view is merged.
CALL p1();
---echo # Connection 3
connection con3;
LOCK TABLE t1 READ;
---echo # Connection default
connection default;
--echo # Try to CALL p1() again, this time it should block for t1.
--echo # Sending:
--send CALL p1()
---echo # Connection 2
connection con2;
let $wait_condition=
SELECT COUNT(*) = 1 from information_schema.processlist
@@ -4674,7 +4670,6 @@ let $wait_condition=
--echo # Sending:
--send DROP VIEW v1
---echo # Connection 3
connection con3;
let $wait_condition=
SELECT COUNT(*) = 1 from information_schema.processlist
@@ -4683,17 +4678,14 @@ let $wait_condition=
--echo # Now allow CALL p1() to complete
UNLOCK TABLES;
---echo # Connection default
connection default;
--echo # Reaping: CALL p1()
--reap
---echo # Connection 2
connection con2;
--echo # Reaping: DROP VIEW v1
--reap
---echo # Connection default
connection default;
DROP PROCEDURE p1;
DROP TABLE t1;
diff --git a/mysql-test/t/view_grant.test b/mysql-test/t/view_grant.test
index 6d0cd8e5c28..a70241138aa 100644
--- a/mysql-test/t/view_grant.test
+++ b/mysql-test/t/view_grant.test
@@ -1197,8 +1197,6 @@ GRANT SELECT, DELETE ON mysqltest1.t4 TO mysqltest_u1@localhost;
GRANT ALL PRIVILEGES ON mysqltest2.* TO mysqltest_u1@localhost;
--connect (bug24040_con,localhost,mysqltest_u1,,mysqltest2)
---echo
---echo ---> connection: bug24040_con
SELECT * FROM mysqltest1.t1;
INSERT INTO mysqltest1.t2 VALUES(25);
@@ -1238,8 +1236,6 @@ CREATE VIEW v42 AS SELECT c4, c2 FROM mysqltest1.t4, mysqltest1.t2;
CREATE VIEW v43 AS SELECT c4, c3 FROM mysqltest1.t4, mysqltest1.t3;
--connection default
---echo
---echo ---> connection: default
SELECT * FROM mysqltest1.t1;
SELECT * FROM mysqltest1.t2;
@@ -1965,13 +1961,9 @@ GRANT SELECT ON t1 TO 'mysqluser1'@'%';
GRANT SELECT ON t2 TO 'mysqluser1'@'%';
GRANT SELECT ON v1_uses_t1 TO 'mysqluser1'@'%';
GRANT SELECT ON v1_uses_t2 TO 'mysqluser1'@'%';
---echo #
---echo # Connection 'mysqluser1'.
--connect (mysqluser1, localhost, mysqluser1,,mysqltest1)
CREATE SQL SECURITY DEFINER VIEW v2_uses_t1 AS SELECT * FROM v1_uses_t1;
CREATE SQL SECURITY DEFINER VIEW v2_uses_t2 AS SELECT * FROM v1_uses_t2;
---echo #
---echo # Connection 'default'.
--connection default
CREATE USER 'mysqluser2'@'%';
GRANT SELECT ON v2_uses_t1 TO 'mysqluser2'@'%';
@@ -1980,8 +1972,6 @@ GRANT SELECT ON t2 TO 'mysqluser2'@'%';
GRANT CREATE VIEW ON mysqltest1.* TO 'mysqluser2'@'%';
--echo # Make 'mysqluser1' unable to access t2.
REVOKE SELECT ON t2 FROM 'mysqluser1'@'%';
---echo #
---echo # Connection 'mysqluser2'.
--connect (mysqluser2, localhost, mysqluser2,,mysqltest1)
--echo # The below statement should succeed thanks to suid nature of v2_uses_t1.
SELECT * FROM v2_uses_t1;
@@ -1990,8 +1980,6 @@ SELECT * FROM v2_uses_t1;
SELECT * FROM v2_uses_t2;
--echo #
--echo # 2) INVOKER-security view uses INVOKER-security view.
---echo #
---echo # Connection 'default'.
--connection default
DROP VIEW v2_uses_t1, v2_uses_t2;
CREATE SQL SECURITY INVOKER VIEW v2_uses_t1 AS SELECT * FROM v1_uses_t1;
@@ -2000,15 +1988,11 @@ GRANT SELECT ON v2_uses_t1 TO 'mysqluser1'@'%';
GRANT SELECT ON v2_uses_t2 TO 'mysqluser1'@'%';
GRANT SELECT ON v1_uses_t1 TO 'mysqluser2'@'%';
GRANT SELECT ON v1_uses_t2 TO 'mysqluser2'@'%';
---echo #
---echo # Connection 'mysqluser1'.
--connection mysqluser1
--echo # For both versions of 'v2' 'mysqluser1' privileges should be used.
SELECT * FROM v2_uses_t1;
--error ER_VIEW_INVALID
SELECT * FROM v2_uses_t2;
---echo #
---echo # Connection 'mysqluser2'.
--connection mysqluser2
--echo # And now for both versions of 'v2' 'mysqluser2' privileges should
--echo # be used.
@@ -2017,24 +2001,16 @@ SELECT * FROM v2_uses_t1;
SELECT * FROM v2_uses_t2;
--echo #
--echo # 3) INVOKER-security view uses DEFINER-security view.
---echo #
---echo # Connection 'default'.
--connection default
DROP VIEW v1_uses_t1, v1_uses_t2;
--echo # To be able create 'v1_uses_t2' we also need select on t2.
GRANT SELECT ON t2 TO 'mysqluser1'@'%';
---echo #
---echo # Connection 'mysqluser1'.
--connection mysqluser1
CREATE SQL SECURITY DEFINER VIEW v1_uses_t1 AS SELECT * FROM t1;
CREATE SQL SECURITY DEFINER VIEW v1_uses_t2 AS SELECT * FROM t2;
---echo #
---echo # Connection 'default'.
--connection default
--echo # Make 'mysqluser1' unable to access t2.
REVOKE SELECT ON t2 FROM 'mysqluser1'@'%';
---echo #
---echo # Connection 'mysqluser2'.
--connection mysqluser2
--echo # Due to suid nature of v1_uses_t1 and v1_uses_t2 the first
--echo # select should succeed and the second select should fail.
@@ -2043,24 +2019,16 @@ SELECT * FROM v2_uses_t1;
SELECT * FROM v2_uses_t2;
--echo #
--echo # 4) DEFINER-security view uses DEFINER-security view.
---echo #
---echo # Connection 'default'.
--connection default
DROP VIEW v2_uses_t1, v2_uses_t2;
--echo # To be able create 'v2_uses_t2' we also need select on t2.
GRANT SELECT ON t2 TO 'mysqluser1'@'%';
---echo #
---echo # Connection 'mysqluser2'.
--connection mysqluser2
CREATE SQL SECURITY DEFINER VIEW v2_uses_t1 AS SELECT * FROM v1_uses_t1;
CREATE SQL SECURITY DEFINER VIEW v2_uses_t2 AS SELECT * FROM v1_uses_t2;
---echo #
---echo # Connection 'default'.
--connection default
--echo # Make 'mysqluser1' unable to access t2.
REVOKE SELECT ON t2 FROM 'mysqluser1'@'%';
---echo #
---echo # Connection 'mysqluser2'.
--connection mysqluser2
--echo # Again privileges of creator of innermost views should apply.
SELECT * FROM v2_uses_t1;
@@ -2132,8 +2100,6 @@ create sql security invoker view v42 as
where t2.id = v2.id;
---echo #
---echo # Connect as user_11766767
connect (conn_11766767, localhost, user_11766767,,);
--echo #
@@ -2231,7 +2197,6 @@ update mysqltest1.t11 as t11, mysqltest2.v42 as v4 set v4.val= 'test20'
--echo #
--echo # Clean-up.
--echo #
---echo # Switching to connection 'default'.
disconnect conn_11766767;
connection default;
drop user user_11766767;
diff --git a/mysql-test/t/wait_timeout.test b/mysql-test/t/wait_timeout.test
index 68c0957347d..4ece5fd1749 100644
--- a/mysql-test/t/wait_timeout.test
+++ b/mysql-test/t/wait_timeout.test
@@ -19,14 +19,12 @@
let $start_value= `SELECT @@global.wait_timeout`;
SET @@global.wait_timeout= 2;
---echo disconnect default;
disconnect default;
# Connect with another connection and reset counters
---disable_query_log
connect (wait_con,localhost,root,,test,,);
---echo connection wait_con;
connection wait_con;
+--disable_query_log
SET SESSION wait_timeout=100;
let $retries=300;
SET @aborted_clients= 0;
@@ -34,16 +32,14 @@ SET @aborted_clients= 0;
# Disable reconnect and do the query
connect (default,localhost,root,,test,,);
---echo connection default;
connection default;
--echo --disable_reconnect;
--disable_reconnect
SELECT 1;
# Switch to wait_con and wait until server has aborted the connection
---disable_query_log
---echo connection wait_con;
connection wait_con;
+--disable_query_log
while (!`select @aborted_clients`)
{
real_sleep 0.1;
@@ -61,7 +57,6 @@ while (!`select @aborted_clients`)
# the disconnect has reached client
let $wait_condition= SELECT COUNT(*)=1 FROM information_schema.processlist;
--source include/wait_condition.inc
---echo connection default;
connection default;
# When the connection is closed in this way, the error code should
# be consistent see Bug#2845 for an explanation
@@ -73,7 +68,6 @@ SELECT 2;
SELECT 3;
# Disconnect so that we will not be confused by a future abort from this
# connection.
---echo disconnection default;
disconnect default;
#
@@ -81,24 +75,21 @@ disconnect default;
# (which we get by specifying an ip adress)
# Connect with another connection and reset counters
---disable_query_log
---echo connection wait_con;
connection wait_con;
+--disable_query_log
FLUSH STATUS; # Reset counters
let $retries=300;
SET @aborted_clients= 0;
--enable_query_log
---echo connection con1;
connect (con1,127.0.0.1,root,,test,$MASTER_MYPORT,);
--echo --disable_reconnect;
--disable_reconnect
SELECT 1;
# Switch to wait_con and wait until server has aborted the connection
---disable_query_log
---echo connection wait_con;
connection wait_con;
+--disable_query_log
while (!`select @aborted_clients`)
{
real_sleep 0.1;
@@ -118,7 +109,6 @@ let $wait_condition= SELECT COUNT(*)=1 FROM information_schema.processlist;
--source include/wait_condition.inc
disconnect wait_con;
---echo connection con1;
connection con1;
# When the connection is closed in this way, the error code should
# be consistent see Bug#2845 for an explanation
@@ -130,7 +120,6 @@ SELECT 2;
SELECT 3;
--replace_result $start_value <start_value>
eval SET @@global.wait_timeout= $start_value;
---echo disconnection con1;
disconnect con1;
diff --git a/mysql-test/t/xa.test b/mysql-test/t/xa.test
index 1709886eb0c..f1576f021ec 100644
--- a/mysql-test/t/xa.test
+++ b/mysql-test/t/xa.test
@@ -258,19 +258,16 @@ DROP TABLE IF EXISTS t1;
CREATE TABLE t1(a INT, b INT, PRIMARY KEY(a)) engine=InnoDB;
INSERT INTO t1 VALUES (1, 1), (2, 2);
---echo # Connection con1
connect (con1, localhost, root);
XA START 'a';
UPDATE t1 SET b= 3 WHERE a=1;
---echo # Connection default
connection default;
XA START 'b';
UPDATE t1 SET b=4 WHERE a=2;
--echo # Sending:
--send UPDATE t1 SET b=5 WHERE a=1
---echo # Connection con1
connection con1;
--sleep 1
--error ER_LOCK_DEADLOCK
@@ -279,7 +276,6 @@ UPDATE t1 SET b=6 WHERE a=2;
--error ER_XA_RBDEADLOCK
XA COMMIT 'a';
---echo # Connection default
connection default;
--echo # Reaping: UPDATE t1 SET b=5 WHERE a=1
--reap
@@ -343,13 +339,11 @@ CREATE TABLE t2 (a INT) ENGINE=InnoDB;
START TRANSACTION;
INSERT INTO t1 VALUES (1);
---echo # Connection con2
--connect (con2,localhost,root)
XA START 'xid1';
--echo # Sending:
--send INSERT INTO t2 SELECT a FROM t1
---echo # Connection default
--connection default
let $wait_condition=
SELECT COUNT(*) = 1 FROM information_schema.processlist
@@ -360,7 +354,6 @@ let $wait_condition=
--sleep 0.1
DELETE FROM t1;
---echo # Connection con2
--connection con2
--echo # Reaping: INSERT INTO t2 SELECT a FROM t1
--error ER_LOCK_DEADLOCK
@@ -368,12 +361,10 @@ DELETE FROM t1;
--error ER_XA_RBDEADLOCK
XA COMMIT 'xid1';
---echo # Connection default
connection default;
COMMIT;
---echo # Connection con2
connection con2;
# This caused the assert to be triggered
XA START 'xid1';
@@ -382,7 +373,6 @@ XA END 'xid1';
XA PREPARE 'xid1';
XA ROLLBACK 'xid1';
---echo # Connection default
connection default;
DROP TABLE t1, t2;
disconnect con2;