25#ifndef _EVENT_PARSE_DATA_H_
26#define _EVENT_PARSE_DATA_H_
40#define EVEX_MICROSECOND_UNSUP -6
41#define EVEX_MAX_INTERVAL_VALUE 1000000000L
Definition: event_parse_data.h:43
Event_parse_data()=default
enum_status status
Definition: event_parse_data.h:63
Item * item_execute_at
Definition: event_parse_data.h:82
void report_bad_value(THD *thd, const char *item_name, Item *bad_item)
Prints an error message about invalid value.
Definition: event_parse_data.cc:420
bool starts_null
Definition: event_parse_data.h:87
sp_head * event_body
Definition: event_parse_data.h:96
longlong expression
Definition: event_parse_data.h:93
interval_type interval
Definition: event_parse_data.h:94
LEX_CSTRING comment
Definition: event_parse_data.h:78
Item * item_starts
Definition: event_parse_data.h:80
LEX_CSTRING dbname
Definition: event_parse_data.h:75
void init_name(THD *thd, sp_name *spn)
Set a name of the event.
Definition: event_parse_data.cc:61
bool init_interval(THD *thd)
Sets time for execution of multi-time event.
Definition: event_parse_data.cc:221
my_time_t starts
Definition: event_parse_data.h:84
sp_name * identifier
Definition: event_parse_data.h:91
bool check_for_execute(THD *)
Checks performed on every execute.
Definition: event_parse_data.cc:474
void init_definer(THD *thd)
Inits definer (definer_user and definer_host) during parsing.
Definition: event_parse_data.cc:486
enum_on_completion on_completion
Definition: event_parse_data.h:62
Item * item_ends
Definition: event_parse_data.h:81
bool init_execute_at(THD *thd)
Sets time for execution for one-time event.
Definition: event_parse_data.cc:174
my_time_t execute_at
Definition: event_parse_data.h:86
LEX_CSTRING definer
Definition: event_parse_data.h:77
bool init_ends(THD *thd)
Sets ENDS (deactivation time).
Definition: event_parse_data.cc:371
Event_parse_data(const Event_parse_data &)=delete
my_time_t ends
Definition: event_parse_data.h:85
bool resolve(THD *)
Resolves the event parse data by checking the validity of the data gathered during the parsing phase.
Definition: event_parse_data.cc:439
bool do_not_create
Definition: event_parse_data.h:71
std::uint64_t originator
Definition: event_parse_data.h:66
void check_originator_id(THD *thd)
Set the originator id of the event to the server_id if executing on the source or set to the server_i...
Definition: event_parse_data.cc:525
bool execute_at_null
Definition: event_parse_data.h:89
enum_status
Definition: event_parse_data.h:50
@ REPLICA_SIDE_DISABLED
Definition: event_parse_data.h:50
@ ENABLED
Definition: event_parse_data.h:50
@ DISABLED
Definition: event_parse_data.h:50
bool init_starts(THD *thd)
Sets STARTS.
Definition: event_parse_data.cc:324
bool check_dates(THD *thd, enum_on_completion previous_on_completion)
Check time/dates in ALTER EVENT.
Definition: event_parse_data.cc:138
bool ends_null
Definition: event_parse_data.h:88
bool body_changed
Definition: event_parse_data.h:73
void operator=(Event_parse_data &)=delete
enum_on_completion
Definition: event_parse_data.h:52
@ ON_COMPLETION_DEFAULT
Definition: event_parse_data.h:57
@ ON_COMPLETION_PRESERVE
Definition: event_parse_data.h:59
@ ON_COMPLETION_DROP
Definition: event_parse_data.h:58
Item * item_expression
Definition: event_parse_data.h:92
LEX_CSTRING name
Definition: event_parse_data.h:76
bool check_if_in_the_past(THD *thd, my_time_t ltime_utc)
This function is called on CREATE EVENT or ALTER EVENT.
Definition: event_parse_data.cc:93
bool status_changed
Definition: event_parse_data.h:64
Base class that is used to represent any kind of expression in a relational query.
Definition: item.h:930
Representation of an SQL command.
Definition: sql_cmd.h:83
For each client connection we create a separate thread with THD serving as a thread/connection descri...
Definition: sql_lexer_thd.h:36
sp_head represents one instance of a stored program.
Definition: sp_head.h:383
Definition: sp_head.h:123
Sql_cmd * make_create_event_sql_cmd(THD *, sp_name *)
Factory function used by the parser to create the actual Sql_cmd for create event,...
Definition: event_parse_data.cc:678
Event_parse_data * get_event_parse_data(LEX *)
Helper function to retrieve Event_parse_data from the type erased Sql_cmd.
Definition: event_parse_data.cc:710
Sql_cmd * make_alter_event_sql_cmd(THD *, sp_name *)
Factory function used by the parser to create the actual Sql_cmd for alter event, since no Parse_tree...
Definition: event_parse_data.cc:689
void cleanup_event_parse_data(LEX *)
Cleans up event parse data by destroying the event_body sp_head.
Definition: event_parse_data.cc:717
Sql_cmd * make_drop_event_sql_cmd(THD *, sp_name *)
Factory function used by the parser to create the actual Sql_cmd for drop event, since no Parse_tree ...
Definition: event_parse_data.cc:699
Some integer typedefs for easier portability.
long long int longlong
Definition: my_inttypes.h:55
Interface for low level time utilities.
interval_type
Available interval types used in any statement.
Definition: my_time.h:455
@ INTERVAL_LAST
Definition: my_time.h:476
int64_t my_time_t
Portable time_t replacement.
Definition: my_time_t.h:32
The LEX object currently serves three different purposes:
Definition: sql_lex.h:3844
Definition: mysql_lex_string.h:40