summaryrefslogtreecommitdiff
path: root/sql/set_var.cc
diff options
context:
space:
mode:
authorunknown <andrey@example.com>2006-08-14 15:26:59 +0200
committerunknown <andrey@example.com>2006-08-14 15:26:59 +0200
commit66fb56f1158453262581be4efa2c0232dff6bd6b (patch)
tree383d73f49b56ca07c2200d1bcb11c1ea020525e1 /sql/set_var.cc
parent021cea21fdbfe50db647fe2ab3606f1e075c0654 (diff)
parent3391899858d2acb0d18e036ff7208116eab58aca (diff)
downloadmariadb-git-66fb56f1158453262581be4efa2c0232dff6bd6b.tar.gz
Merge ahristov@bk-internal.mysql.com:/home/bk/mysql-5.1-wl3337
into example.com:/work/mysql-5.1-runtime-wl3337 BitKeeper/etc/ignore: auto-union client/mysqltest.c: Auto merged libmysqld/Makefile.am: Auto merged mysql-test/mysql-test-run.pl: Auto merged mysql-test/r/sp_notembedded.result: Auto merged sql/CMakeLists.txt: Auto merged sql/Makefile.am: Auto merged sql/mysqld.cc: Auto merged sql/set_var.cc: Auto merged sql/sp_head.cc: Auto merged sql/sql_class.cc: Auto merged sql/sql_class.h: Auto merged sql/sql_db.cc: Auto merged sql/sql_lex.cc: Auto merged sql/sql_lex.h: Auto merged sql/sql_parse.cc: Auto merged sql/sql_show.cc: Auto merged sql/share/errmsg.txt: C mysql-test/r/events_bugs.result: update result manual merge mysql-test/r/ps_1general.result: update result manual merge sql/sql_yacc.yy: manual merge
Diffstat (limited to 'sql/set_var.cc')
-rw-r--r--sql/set_var.cc32
1 files changed, 16 insertions, 16 deletions
diff --git a/sql/set_var.cc b/sql/set_var.cc
index 75a419019b8..5c7220da54d 100644
--- a/sql/set_var.cc
+++ b/sql/set_var.cc
@@ -57,7 +57,7 @@
#include <myisam.h>
#include <my_dir.h>
-#include "event_scheduler.h"
+#include "events.h"
/* WITH_BERKELEY_STORAGE_ENGINE */
extern bool berkeley_shared_data;
@@ -3943,30 +3943,32 @@ byte *sys_var_thd_dbug::value_ptr(THD *thd, enum_var_type type, LEX_STRING *b)
bool
sys_var_event_scheduler::update(THD *thd, set_var *var)
{
- enum Event_scheduler::enum_error_code res;
- Event_scheduler *scheduler= Event_scheduler::get_instance();
+ int res;
/* here start the thread if not running. */
DBUG_ENTER("sys_var_event_scheduler::update");
-
- DBUG_PRINT("new_value", ("%lu", (bool)var->save_result.ulong_value));
- if (!scheduler->initialized())
+ if (Events::opt_event_scheduler == 0)
{
my_error(ER_OPTION_PREVENTS_STATEMENT, MYF(0), "--event-scheduler=0");
- DBUG_RETURN(true);
+ DBUG_RETURN(TRUE);
}
+ DBUG_PRINT("new_value", ("%lu", (bool)var->save_result.ulong_value));
+
if (var->save_result.ulonglong_value < 1 ||
var->save_result.ulonglong_value > 2)
{
char buf[64];
my_error(ER_WRONG_VALUE_FOR_VAR, MYF(0), "event_scheduler",
llstr(var->save_result.ulonglong_value, buf));
- DBUG_RETURN(true);
+ DBUG_RETURN(TRUE);
}
- if ((res= scheduler->suspend_or_resume(var->save_result.ulonglong_value == 1?
- Event_scheduler::RESUME :
- Event_scheduler::SUSPEND)))
- my_error(ER_EVENT_SET_VAR_ERROR, MYF(0), (uint) res);
+ if (var->save_result.ulonglong_value == 1)
+ res= Events::get_instance()->start_execution_of_events();
+ else
+ res= Events::get_instance()->stop_execution_of_events();
+
+ if (res)
+ my_error(ER_EVENT_SET_VAR_ERROR, MYF(0));
DBUG_RETURN((bool) res);
}
@@ -3974,11 +3976,9 @@ sys_var_event_scheduler::update(THD *thd, set_var *var)
byte *sys_var_event_scheduler::value_ptr(THD *thd, enum_var_type type,
LEX_STRING *base)
{
- Event_scheduler *scheduler= Event_scheduler::get_instance();
-
- if (!scheduler->initialized())
+ if (Events::opt_event_scheduler == 0)
thd->sys_var_tmp.long_value= 0;
- else if (scheduler->get_state() == Event_scheduler::RUNNING)
+ else if (Events::get_instance()->is_started())
thd->sys_var_tmp.long_value= 1;
else
thd->sys_var_tmp.long_value= 2;