mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Bug#35997 Event scheduler seems to let the server crash, if it is embedded.
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.
This commit is contained in:
@ -25,8 +25,10 @@
|
||||
#include "sql_trigger.h"
|
||||
#include "authors.h"
|
||||
#include "contributors.h"
|
||||
#ifdef HAVE_EVENT_SCHEDULER
|
||||
#include "events.h"
|
||||
#include "event_data_objects.h"
|
||||
#endif
|
||||
#include <my_dir.h>
|
||||
|
||||
#define STR_OR_NIL(S) ((S) ? (S) : "<nil>")
|
||||
@ -287,7 +289,9 @@ static struct show_privileges_st sys_privileges[]=
|
||||
{"Create user", "Server Admin", "To create new users"},
|
||||
{"Delete", "Tables", "To delete existing rows"},
|
||||
{"Drop", "Databases,Tables", "To drop databases, tables, and views"},
|
||||
#ifdef HAVE_EVENT_SCHEDULER
|
||||
{"Event","Server Admin","To create, alter, drop and execute events"},
|
||||
#endif
|
||||
{"Execute", "Functions,Procedures", "To execute stored routines"},
|
||||
{"File", "File access on server", "To read and write files on the server"},
|
||||
{"Grant option", "Databases,Tables,Functions,Procedures", "To give to other users those privileges you possess"},
|
||||
@ -4959,7 +4963,7 @@ static interval_type get_real_interval_type(interval_type i_type)
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef HAVE_EVENT_SCHEDULER
|
||||
/*
|
||||
Loads an event from mysql.event and copies it's data to a row of
|
||||
I_S.EVENTS
|
||||
@ -5079,14 +5083,14 @@ copy_event_to_schema_table(THD *thd, TABLE *sch_table, TABLE *event_table)
|
||||
|
||||
switch (et.status)
|
||||
{
|
||||
case Event_timed::ENABLED:
|
||||
case Event_parse_data::ENABLED:
|
||||
sch_table->field[ISE_STATUS]->store(STRING_WITH_LEN("ENABLED"), scs);
|
||||
break;
|
||||
case Event_timed::SLAVESIDE_DISABLED:
|
||||
case Event_parse_data::SLAVESIDE_DISABLED:
|
||||
sch_table->field[ISE_STATUS]->store(STRING_WITH_LEN("SLAVESIDE_DISABLED"),
|
||||
scs);
|
||||
break;
|
||||
case Event_timed::DISABLED:
|
||||
case Event_parse_data::DISABLED:
|
||||
sch_table->field[ISE_STATUS]->store(STRING_WITH_LEN("DISABLED"), scs);
|
||||
break;
|
||||
default:
|
||||
@ -5095,7 +5099,7 @@ copy_event_to_schema_table(THD *thd, TABLE *sch_table, TABLE *event_table)
|
||||
sch_table->field[ISE_ORIGINATOR]->store(et.originator, TRUE);
|
||||
|
||||
/* on_completion */
|
||||
if (et.on_completion == Event_timed::ON_COMPLETION_DROP)
|
||||
if (et.on_completion == Event_parse_data::ON_COMPLETION_DROP)
|
||||
sch_table->field[ISE_ON_COMPLETION]->
|
||||
store(STRING_WITH_LEN("NOT PRESERVE"), scs);
|
||||
else
|
||||
@ -5145,7 +5149,7 @@ copy_event_to_schema_table(THD *thd, TABLE *sch_table, TABLE *event_table)
|
||||
|
||||
DBUG_RETURN(0);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
int fill_open_tables(THD *thd, TABLE_LIST *tables, COND *cond)
|
||||
{
|
||||
@ -6541,8 +6545,10 @@ ST_SCHEMA_TABLE schema_tables[]=
|
||||
fill_schema_column_privileges, 0, 0, -1, -1, 0, 0},
|
||||
{"ENGINES", engines_fields_info, create_schema_table,
|
||||
fill_schema_engines, make_old_format, 0, -1, -1, 0, 0},
|
||||
#ifdef HAVE_EVENT_SCHEDULER
|
||||
{"EVENTS", events_fields_info, create_schema_table,
|
||||
Events::fill_schema_events, make_old_format, 0, -1, -1, 0, 0},
|
||||
#endif
|
||||
{"FILES", files_fields_info, create_schema_table,
|
||||
fill_schema_files, 0, 0, -1, -1, 0, 0},
|
||||
{"GLOBAL_STATUS", variables_fields_info, create_schema_table,
|
||||
|
Reference in New Issue
Block a user