mirror of
https://github.com/MariaDB/server.git
synced 2025-01-19 05:22:25 +01:00
19a22f87e9
The event scheduler was not designed to work in embedded mode. This patch disables and excludes the event scheduler when the server is compiled for embedded build.
116 lines
2.5 KiB
C++
116 lines
2.5 KiB
C++
/* Copyright (C) 2000-2003 MySQL AB
|
|
|
|
This program is free software; you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation; version 2 of the License.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program; if not, write to the Free Software
|
|
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
|
|
|
#ifndef _EVENT_PARSE_DATA_H_
|
|
#define _EVENT_PARSE_DATA_H_
|
|
|
|
#define EVEX_GET_FIELD_FAILED -2
|
|
#define EVEX_BAD_PARAMS -5
|
|
#define EVEX_MICROSECOND_UNSUP -6
|
|
#define EVEX_MAX_INTERVAL_VALUE 1000000000L
|
|
|
|
class Event_parse_data : public Sql_alloc
|
|
{
|
|
public:
|
|
/*
|
|
ENABLED = feature can function normally (is turned on)
|
|
SLAVESIDE_DISABLED = feature is turned off on slave
|
|
DISABLED = feature is turned off
|
|
*/
|
|
enum enum_status
|
|
{
|
|
ENABLED = 1,
|
|
DISABLED,
|
|
SLAVESIDE_DISABLED
|
|
};
|
|
|
|
enum enum_on_completion
|
|
{
|
|
ON_COMPLETION_DROP = 1,
|
|
ON_COMPLETION_PRESERVE
|
|
};
|
|
|
|
int on_completion;
|
|
int status;
|
|
longlong originator;
|
|
/*
|
|
do_not_create will be set if STARTS time is in the past and
|
|
on_completion == ON_COMPLETION_DROP.
|
|
*/
|
|
bool do_not_create;
|
|
|
|
bool body_changed;
|
|
|
|
LEX_STRING dbname;
|
|
LEX_STRING name;
|
|
LEX_STRING definer;// combination of user and host
|
|
LEX_STRING comment;
|
|
|
|
Item* item_starts;
|
|
Item* item_ends;
|
|
Item* item_execute_at;
|
|
|
|
my_time_t starts;
|
|
my_time_t ends;
|
|
my_time_t execute_at;
|
|
my_bool starts_null;
|
|
my_bool ends_null;
|
|
my_bool execute_at_null;
|
|
|
|
sp_name *identifier;
|
|
Item* item_expression;
|
|
longlong expression;
|
|
interval_type interval;
|
|
|
|
static Event_parse_data *
|
|
new_instance(THD *thd);
|
|
|
|
bool
|
|
check_parse_data(THD *thd);
|
|
|
|
private:
|
|
|
|
void
|
|
init_definer(THD *thd);
|
|
|
|
void
|
|
init_name(THD *thd, sp_name *spn);
|
|
|
|
int
|
|
init_execute_at(THD *thd);
|
|
|
|
int
|
|
init_interval(THD *thd);
|
|
|
|
int
|
|
init_starts(THD *thd);
|
|
|
|
int
|
|
init_ends(THD *thd);
|
|
|
|
Event_parse_data();
|
|
~Event_parse_data();
|
|
|
|
void
|
|
report_bad_value(const char *item_name, Item *bad_item);
|
|
|
|
void
|
|
check_if_in_the_past(THD *thd, my_time_t ltime_utc);
|
|
|
|
Event_parse_data(const Event_parse_data &); /* Prevent use of these */
|
|
void check_originator_id(THD *thd);
|
|
void operator=(Event_parse_data &);
|
|
};
|
|
#endif
|