#
--source include/have_debug.inc


--echo #
--echo # Bug#26040870 - ASSERT ON KILL'ING A STORED ROUTINE INVOCATION.
--echo #

CREATE TABLE t1 (a INT);
DELIMITER |;
CREATE FUNCTION f1() RETURNS INT
BEGIN
  INSERT INTO t1 VALUES (1);
  RETURN 1;
END|
DELIMITER ;|

--connect(con1,localhost,root)
--let $sp_con_id= `SELECT CONNECTION_ID()`
SET DEBUG_SYNC= "sp_lex_instr_before_exec_core SIGNAL sp_ready WAIT_FOR sp_finish";
send SELECT f1();

--connection default
SET DEBUG_SYNC="now WAIT_FOR sp_ready";
--replace_result $sp_con_id sp_con_id
--eval KILL QUERY $sp_con_id
SET DEBUG_SYNC="now SIGNAL sp_finish";

--connection con1
--echo # Diagnostics area is not set if routine statement execution is
--echo # interrupted by the KILL operation. Accessing diagnostics area in such
--echo # case results in the issue reported.
--echo # Patch for the bug25586773, checks if diagnostics area is set before
--echo # accessing it.
--error ER_QUERY_INTERRUPTED
reap;

--connection default
SET DEBUG_SYNC='RESET';
DROP TABLE t1;
DROP FUNCTION f1;
disconnect con1;
