mirror of
https://github.com/MariaDB/server.git
synced 2025-01-18 04:53:01 +01:00
Merge bk-internal:/home/bk/mysql-5.0-runtime
into mysql.com:/home/jimw/my/mysql-5.0-18005 sql/sql_trigger.cc: Auto merged
This commit is contained in:
commit
d127fa3b51
4 changed files with 46 additions and 1 deletions
|
@ -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…
Reference in a new issue