Bug #18005: Creating a trigger on mysql.event leads to server crash on scheduler startup
Bug #18361: Triggers on mysql.user table cause server crash Because they do not work, we do not allow creating triggers on tables within the 'mysql' schema. (They may be made to work and re-enabled at some later date, but not in 5.0 or 5.1.)
This commit is contained in:
parent
8f4582db27
commit
5d2c0de578
@ -1078,3 +1078,15 @@ i1
|
||||
43
|
||||
51
|
||||
DROP TABLE t1;
|
||||
create trigger wont_work after update on mysql.user for each row
|
||||
begin
|
||||
set @a:= 1;
|
||||
end|
|
||||
ERROR HY000: Triggers can not be created on system tables
|
||||
use mysql|
|
||||
create trigger wont_work after update on event for each row
|
||||
begin
|
||||
set @a:= 1;
|
||||
end|
|
||||
ERROR HY000: Triggers can not be created on system tables
|
||||
End of 5.0 tests
|
||||
|
@ -1281,4 +1281,26 @@ SELECT * FROM t1;
|
||||
|
||||
DROP TABLE t1;
|
||||
|
||||
# End of 5.0 tests
|
||||
#
|
||||
# Bug #18005: Creating a trigger on mysql.event leads to server crash on
|
||||
# scheduler startup
|
||||
#
|
||||
# Bug #18361: Triggers on mysql.user table cause server crash
|
||||
#
|
||||
# We don't allow triggers on the mysql schema
|
||||
delimiter |;
|
||||
--error ER_NO_TRIGGERS_ON_SYSTEM_SCHEMA
|
||||
create trigger wont_work after update on mysql.user for each row
|
||||
begin
|
||||
set @a:= 1;
|
||||
end|
|
||||
# Try when we're already using the mysql schema
|
||||
use mysql|
|
||||
--error ER_NO_TRIGGERS_ON_SYSTEM_SCHEMA
|
||||
create trigger wont_work after update on event for each row
|
||||
begin
|
||||
set @a:= 1;
|
||||
end|
|
||||
delimiter ;|
|
||||
|
||||
--echo End of 5.0 tests
|
||||
|
@ -5619,3 +5619,5 @@ ER_NON_GROUPING_FIELD_USED 42000
|
||||
eng "non-grouping field '%-.64s' is used in %-.64s clause"
|
||||
ER_TABLE_CANT_HANDLE_SPKEYS
|
||||
eng "The used table type doesn't support SPATIAL indexes"
|
||||
ER_NO_TRIGGERS_ON_SYSTEM_SCHEMA
|
||||
eng "Triggers can not be created on system tables"
|
||||
|
@ -183,6 +183,15 @@ bool mysql_create_or_drop_trigger(THD *thd, TABLE_LIST *tables, bool create)
|
||||
!(tables= add_table_for_trigger(thd, thd->lex->spname)))
|
||||
DBUG_RETURN(TRUE);
|
||||
|
||||
/*
|
||||
We don't allow creating triggers on tables in the 'mysql' schema
|
||||
*/
|
||||
if (create && !my_strcasecmp(system_charset_info, "mysql", tables->db))
|
||||
{
|
||||
my_error(ER_NO_TRIGGERS_ON_SYSTEM_SCHEMA, MYF(0));
|
||||
DBUG_RETURN(TRUE);
|
||||
}
|
||||
|
||||
/* We should have only one table in table list. */
|
||||
DBUG_ASSERT(tables->next_global == 0);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user