# This test doesn't work with the embedded version as this code # assumes that one query is running while we are doing queries on # a second connection. # This would work if mysqltest run would be threaded and handle each # connection in a separate thread. # -- source include/not_embedded.inc connect (con1, localhost, root,,); connect (con2, localhost, root,,); #remember id of con1 connection con1; --disable_warnings drop table if exists t1, t2, t3; --enable_warnings --disable_reconnect create table t1 (kill_id int); insert into t1 values(connection_id()); #kill con1 connection con2; select ((@id := kill_id) - kill_id) from t1; kill @id; connection con1; --sleep 2 --disable_query_log --disable_result_log # One of the following statements should fail --error 0,2006,2013 select 1; --error 0,2006,2013 select 1; --enable_query_log --enable_result_log --enable_reconnect # this should work, and we should have a new connection_id() select ((@id := kill_id) - kill_id) from t1; select @id != connection_id(); #make sure the server is still alive connection con2; select 4; drop table t1; connection default; --error 1064 kill (select count(*) from mysql.user); # # BUG#14851: killing long running subquery processed via a temporary table. # create table t1 (id int primary key); create table t2 (id int unsigned not null); connect (conn1, localhost, root,,); connection conn1; -- disable_result_log -- disable_query_log let $1 = 4096; while ($1) { eval insert into t1 values ($1); dec $1; } -- enable_query_log -- enable_result_log insert into t2 select id from t1; create table t3 (kill_id int); insert into t3 values(connection_id()); connect (conn2, localhost, root,,); connection conn2; connection conn1; -- disable_result_log send select id from t1 where id in (select distinct id from t2); -- enable_result_log connection conn2; select ((@id := kill_id) - kill_id) from t3; -- sleep 1 kill @id; connection conn1; -- error 1053,2013 reap; connection default; drop table t1, t2, t3; # End of 4.1 tests # # test of blocking of sending ERROR after OK or EOF # connection con1; select get_lock("a", 10); connection con2; let $ID= `select connection_id()`; send select get_lock("a", 10); real_sleep 2; connection con1; disable_query_log; eval kill query $ID; enable_query_log; connection con2; reap; select 1; connection con1; select RELEASE_LOCK("a");