From da4734c3bcaacdab12832cad0419453bed2b805b Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 1 Sep 2006 13:08:44 +0200 Subject: WL#3337 (Event scheduler new architecture) This is a post-review patch. Fixes the typelib implementation, available only in 5.1.11. --event-scheduler cmdline : DISABLED | ON | OFF | 0 | 1 DISABLED - makes the scheduler unavailable during the server run (ON|1)- When the server is started the scheduler will be started. It can be stopped and restarted by setting appropriate values to GLOBAL event_scheduler (OFF|0)- When the server is started, the scheduler won't be started. It can be started and again stopped by setting appropriate values to GLOBAL event_scheduler. _DEFAULT_ value The GLOBAL variable event_scheduler can have the following values: OFF | ON | 0 | 1 DISABLED is not possible and every attempt will end with an error that it's not a valid value for the variable. OFF | 0 - This is the pre-5.1.11 behavior - The scheduler stops, if not already stopped, and can be started again by setting the value of the variable to ON|1. ON | 1 - This is the pre-5.1.11 behavior - The scheduler starts, if not already started, and can be stopped again by setting the value of the variable to OFF|0. mysql-test/r/events.result: update result mysql-test/r/events_bugs.result: update result mysql-test/r/events_logs_tests.result: update result mysql-test/r/events_restart_phase1.result: update result mysql-test/r/events_restart_phase3.result: update result mysql-test/r/events_scheduling.result: update result mysql-test/r/events_stress.result: update result mysql-test/t/events.test: update test: 2 -> off 1 -> on mysql-test/t/events_bugs.test: update test: 2 -> off 1 -> on mysql-test/t/events_logs_tests.test: update test: 2 -> off 1 -> on mysql-test/t/events_restart_phase1.test: update test: 2 -> off 1 -> on mysql-test/t/events_restart_phase2-master.opt: update master file : 1 => on mysql-test/t/events_scheduling.test: update test: 2 -> off 1 -> on add tests for event_scheduler global variable representation from SHOW VARIABLES. mysql-test/t/events_stress.test: update test: 2 -> off 1 -> on sql/events.cc: Implement two different TYPELIBs for --event-scheduler cmd line option and for GLOBAL variable event_scheduler --event-scheduler cmdline : DISABLED | ON | OFF | 0 | 1 DISABLED - makes the scheduler unavailable during the server run (ON|1)- When the server is started the scheduler will be started. It can be stopped and restarted by setting appropriate values to GLOBAL event_scheduler (OFF|0)- When the server is started, the scheduler won't be started. It can be started and again stopped by setting appropriate values to GLOBAL event_scheduler. _DEFAULT_ value The GLOBAL variable event_scheduler can have the following values: OFF | ON | 0 | 1 DISABLED is not possible and every attempt will end with an error that it's not a valid value for the variable. OFF | 0 - This is the pre-5.1.11 behavior - The scheduler stops, if not already stopped, and can be started again by setting the value of the variable to ON|1. ON | 1 - This is the pre-5.1.11 behavior - The scheduler starts, if not already started, and can be stopped again by setting the value of the variable to OFF|0. sql/events.h: additional TYPELIB for GLOBAL event_scheduler sql/mysqld.cc: --event-scheduler should be checked against a TYPELIB and therefore should be GET_STR, as well as we make the parameter optional. When not provided OFF|0 is used. sql/set_var.cc: Implement typelib for event_scheduler variable. If allows both INT_RESULT -> 0 | 1 and STRING_RESULT -> OFF | ON The variable is shown as DISABLED | ON | OFF sql/set_var.h: Implement typelib, which expects both STRING and INT, for event_scheduler. --- mysql-test/t/events_bugs.test | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'mysql-test/t/events_bugs.test') diff --git a/mysql-test/t/events_bugs.test b/mysql-test/t/events_bugs.test index 1fcf527c2fc..04c6d8e91f5 100644 --- a/mysql-test/t/events_bugs.test +++ b/mysql-test/t/events_bugs.test @@ -65,9 +65,9 @@ create event e_55 on schedule every 10 hour starts 10000101000000 do drop table # # Start - 16407: Events: Changes in sql_mode won't be taken into account # -set global event_scheduler=2; +set global event_scheduler=off; delete from mysql.event; -set global event_scheduler= 1; +set global event_scheduler= on; set @old_sql_mode:=@@sql_mode; set sql_mode=ansi; select get_lock('test_bug16407', 60); @@ -83,7 +83,7 @@ delimiter ;| select /*1*/ user, host, db, info from information_schema.processlist where info is null or info not like '%processlist%' order by info; select release_lock('test_bug16407'); -set global event_scheduler= 2; +set global event_scheduler= off; select event_schema, event_name, sql_mode from information_schema.events order by event_schema, event_name; --echo "Let's check whether we change the sql_mode on ALTER EVENT" @@ -132,7 +132,7 @@ select /*2*/ user, host, db, info from information_schema.processlist where info select release_lock('ee_16407_2'); --sleep 1.2 select /*3*/ user, host, db, info from information_schema.processlist where info is null or info not like '%processlist%' order by info; -set global event_scheduler= 2; +set global event_scheduler= off; select * from events_smode_test order by ev_name, a; --echo "OK, last check before we drop them" select event_schema, event_name, sql_mode from information_schema.events order by event_schema, event_name; @@ -146,7 +146,7 @@ delete from events_smode_test; set sql_mode='ansi'; select get_lock('ee_16407_5', 60); -set global event_scheduler= 1; +set global event_scheduler= on; set sql_mode='traditional'; delimiter |; @@ -179,7 +179,7 @@ drop event ee_16407_5; drop event ee_16407_6; drop procedure ee_16407_5_pendant; drop procedure ee_16407_6_pendant; -set global event_scheduler= 2; +set global event_scheduler= off; drop table events_smode_test; set sql_mode=@old_sql_mode; # @@ -189,7 +189,7 @@ set sql_mode=@old_sql_mode; # # START - 18897: Events: unauthorized action possible with alter event rename # -set global event_scheduler=2; +set global event_scheduler=off; --disable_warnings delete from mysql.user where User like 'mysqltest_%'; delete from mysql.db where User like 'mysqltest_%'; -- cgit v1.2.1