mirror of
https://github.com/MariaDB/server.git
synced 2026-01-06 05:22:24 +03:00
fix for bug#16407 (Events: Changes in sql_mode won't be taken into account)
WL#1032 sql_mode setting was disregarded during create/alter event and wasn't set during event execution. (post-review small fixes)
This commit is contained in:
@@ -3877,8 +3877,16 @@ fill_events_copy_to_schema_table(THD *thd, TABLE *sch_table, TABLE *event_table)
|
||||
sch_table->field[3]->store(et.definer.str, et.definer.length, scs);
|
||||
sch_table->field[4]->store(et.body.str, et.body.length, scs);
|
||||
|
||||
// [9] is SQL_MODE and is NULL for now, will be fixed later
|
||||
sch_table->field[9]->set_null();
|
||||
// [9] is SQL_MODE
|
||||
{
|
||||
const char *sql_mode_str="";
|
||||
ulong sql_mode_len=0;
|
||||
sql_mode_str=
|
||||
sys_var_thd_sql_mode::symbolic_mode_representation(thd, et.sql_mode,
|
||||
&sql_mode_len);
|
||||
sch_table->field[9]->store((const char*)sql_mode_str, sql_mode_len, scs);
|
||||
}
|
||||
|
||||
if (et.expression)
|
||||
{
|
||||
//type
|
||||
@@ -4720,7 +4728,7 @@ ST_FIELD_INFO events_fields_info[]=
|
||||
{"EXECUTE_AT", 0, MYSQL_TYPE_TIMESTAMP, 0, 1, "Execute at"},
|
||||
{"INTERVAL_VALUE", 11, MYSQL_TYPE_LONG, 0, 1, "Interval value"},
|
||||
{"INTERVAL_FIELD", 18, MYSQL_TYPE_STRING, 0, 1, "Interval field"},
|
||||
{"SQL_MODE", 65535, MYSQL_TYPE_STRING, 0, 1, 0},
|
||||
{"SQL_MODE", 65535, MYSQL_TYPE_STRING, 0, 0, 0},
|
||||
{"STARTS", 0, MYSQL_TYPE_TIMESTAMP, 0, 1, "Starts"},
|
||||
{"ENDS", 0, MYSQL_TYPE_TIMESTAMP, 0, 1, "Ends"},
|
||||
{"STATUS", 8, MYSQL_TYPE_STRING, 0, 0, "Status"},
|
||||
|
||||
Reference in New Issue
Block a user