⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 kill.test

📁 视频监控网络部分的协议ddns,的模块的实现代码,请大家大胆指正.
💻 TEST
字号:
# 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.incconnect (con1, localhost, root,,);connect (con2, localhost, root,,);#remember id of con1connection con1;--disable_warningsdrop table if exists t1, t2, t3;--enable_warnings--disable_reconnectcreate table t1 (kill_id int);insert into t1 values(connection_id());#kill con1connection 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,2013select 1;--error 0,2006,2013select 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 aliveconnection con2;select 4;drop table t1;connection default;--error 1064kill (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_loglet $1 = 4096;while ($1){  eval insert into t1 values ($1);  dec $1;}-- enable_query_log-- enable_result_loginsert 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# This is a very long running query. If this test start failing, it may# be necessary to change to an even longer query.send select id from t1 where id in (select distinct a.id from t2 a, t2 b, t2 c, t2 d group by a.id, b.id, c.id, d.id having a.id between 10 and 20);-- enable_result_logconnection conn2;select ((@id := kill_id) - kill_id) from t3;-- sleep 1kill @id;connection conn1;-- error 1053,2013reap;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");## Bug#27563: Stored functions and triggers wasn't throwing an error when killed.#create table t1(f1 int);delimiter |;create function bug27563() returns int(11)deterministicbegin  declare continue handler for sqlstate '70100' set @a:= 'killed';  declare continue handler for sqlexception set @a:= 'exception';  set @a= get_lock("lock27563", 10);  return 1;end|delimiter ;|# Test stored functions# Test INSERTconnection con1;select get_lock("lock27563",10);connection con2;let $ID= `select connection_id()`;send insert into t1 values (bug27563());real_sleep 2;connection con1;disable_query_log;eval kill query $ID;enable_query_log;connection con2;--error 1317reap;select @a;connection con1;select * from t1;# Test UPDATEinsert into t1 values(0);connection con2;send update t1 set f1= bug27563();real_sleep 2;connection con1;disable_query_log;eval kill query $ID;enable_query_log;connection con2;--error 1317reap;select @a;connection con1;select * from t1;# Test DELETEinsert into t1 values(1);connection con2;send delete from t1 where bug27563() is null;real_sleep 2;connection con1;disable_query_log;eval kill query $ID;enable_query_log;connection con2;--error 1317reap;select @a;connection con1;select * from t1;# Test SELECTconnection con2;send select * from t1 where f1= bug27563();real_sleep 2;connection con1;disable_query_log;eval kill query $ID;enable_query_log;connection con2;--error 1317reap;select @a;# Test PROCEDUREconnection con2;delimiter |;create procedure proc27563()begin  declare continue handler for sqlstate '70100' set @a:= 'killed';  declare continue handler for sqlexception set @a:= 'exception';  select get_lock("lock27563",10);  select "shouldn't be selected";end|delimiter ;|send call proc27563();real_sleep 2;connection con1;disable_query_log;eval kill query $ID;enable_query_log;connection con2;--error 1317reap;select @a;# Test TRIGGERSconnection con2;create table t2 (f2 int);delimiter |;create trigger trg27563 before insert on t1 for each row begin   declare continue handler for sqlstate '70100' set @a:= 'killed';  declare continue handler for sqlexception set @a:= 'exception';  set @a:= get_lock("lock27563",10);  insert into t2 values(1);end|delimiter ;|send insert into t1 values(2),(3);real_sleep 2;connection con1;disable_query_log;eval kill query $ID;enable_query_log;connection con2;--error 1317reap;select @a;connection con1;select * from t1;select * from t2;# Cleanupselect release_lock("lock27563");drop table t1, t2;drop function bug27563;drop procedure proc27563;## Bug#28598: mysqld crash when killing a long-running explain query.#--disable_query_logconnection con1;let $ID= `select connection_id()`;let $tab_count= 40;let $i= $tab_count;while ($i){  eval CREATE TABLE t$i (a$i int, KEY(a$i));  eval INSERT INTO t$i VALUES (1),(2),(3),(4),(5),(6),(7);  dec $i ;}set session optimizer_search_depth=0;let $i=$tab_count;while ($i){ let $a= a$i; let $t= t$i; dec $i; if ($i) {   let $comma=,;   let $from=$comma$t$from;   let $where=a$i=$a $and $where; } if (!$i)  {   let $from=FROM $t$from;   let $where=WHERE $where; } let $and=AND;}--enable_query_logeval PREPARE stmt FROM 'EXPLAIN SELECT * $from $where';send EXECUTE stmt;--disable_query_logconnection con2;real_sleep 2;eval kill query $ID;let $i= $tab_count;while ($i){  eval DROP TABLE t$i;  dec $i ;}--enable_query_log

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -