mirror of
				https://github.com/MariaDB/server.git
				synced 2025-11-03 14:33:32 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			120 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			120 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
# 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");
 |