Fix for bug#22397 Events: crash with procedure which alters events
ALTER EVENT in stored procedure body led to a crash during the procedure call. Affected was only ALTER EVENT which changed the interval of the event. No problems with AT, STARTS, ENDS and so on. mysql-test/r/events_bugs.result: fix result mysql-test/t/events_bugs.test: add test case for bug 22397 : Events, crash with procedure which alters body sql/event_data_objects.cc: fix copy&paste error in code, which resulted in bug#22397 Events: crash with procedure which alters body
This commit is contained in:
parent
038fbc273a
commit
6c9400b930
@ -213,4 +213,17 @@ create event e_53 on schedule every 5 second starts (select s1 from ttx) do drop
|
||||
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'select s1 from ttx) do drop table t' at line 1
|
||||
create event e_53 on schedule every 5 second ends (select s1 from ttx) do drop table t;
|
||||
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'select s1 from ttx) do drop table t' at line 1
|
||||
drop event if exists e_16;
|
||||
drop procedure if exists p_16;
|
||||
create event e_16 on schedule every 1 second do set @a=5;
|
||||
create procedure p_16 () alter event e_16 on schedule every @a second;
|
||||
set @a = null;
|
||||
call p_16();
|
||||
ERROR HY000: Incorrect INTERVAL value: 'NULL'
|
||||
call p_16();
|
||||
ERROR HY000: Incorrect INTERVAL value: 'NULL'
|
||||
set @a= 6;
|
||||
call p_16();
|
||||
drop procedure p_16;
|
||||
drop event e_16;
|
||||
drop database events_test;
|
||||
|
@ -234,4 +234,23 @@ create event e_53 on schedule every 5 second ends (select s1 from ttx) do drop t
|
||||
# END - BUG#16394: Events: Crash if schedule contains SELECT
|
||||
#
|
||||
|
||||
#
|
||||
# START - BUG#22397: Events: crash with procedure which alters events
|
||||
#
|
||||
--disable_warnings
|
||||
drop event if exists e_16;
|
||||
drop procedure if exists p_16;
|
||||
--enable_warnings
|
||||
create event e_16 on schedule every 1 second do set @a=5;
|
||||
create procedure p_16 () alter event e_16 on schedule every @a second;
|
||||
set @a = null;
|
||||
--error ER_WRONG_VALUE
|
||||
call p_16();
|
||||
--error ER_WRONG_VALUE
|
||||
call p_16();
|
||||
set @a= 6;
|
||||
call p_16();
|
||||
|
||||
drop procedure p_16;
|
||||
drop event e_16;
|
||||
drop database events_test;
|
||||
|
@ -353,7 +353,7 @@ Event_parse_data::init_interval(THD *thd)
|
||||
DBUG_RETURN(0);
|
||||
|
||||
wrong_value:
|
||||
report_bad_value("INTERVAL", item_execute_at);
|
||||
report_bad_value("INTERVAL", item_expression);
|
||||
DBUG_RETURN(ER_WRONG_VALUE);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user