summaryrefslogtreecommitdiff
path: root/sql/sql_trigger.cc
diff options
context:
space:
mode:
authorguilhem@mysql.com <>2005-11-10 17:50:51 +0100
committerguilhem@mysql.com <>2005-11-10 17:50:51 +0100
commitff46e549322d7c83a05a058a88bd7d4bb3ec74ed (patch)
tree9f5312705476f9f7218439c118f72bd97002bf5d /sql/sql_trigger.cc
parent1379dd180feb23995aebe5702280a21fdd91993b (diff)
downloadmariadb-git-ff46e549322d7c83a05a058a88bd7d4bb3ec74ed.tar.gz
WL#2971 "change log-bin-trust-routine-creators=0 to apply only to functions".
Indeed now that stored procedures CALL is not binlogged, but instead the invoked substatements are, the restrictions applied by log-bin-trust-routine-creators=0 are superfluous for procedures. They still need to apply to functions where function calls are written to the binlog (for example as "DO myfunc(3)"). We rename the variable to log-bin-trust-function-creators but allow the old name until some future version (and issue a warning if old name is used).
Diffstat (limited to 'sql/sql_trigger.cc')
-rw-r--r--sql/sql_trigger.cc7
1 files changed, 5 insertions, 2 deletions
diff --git a/sql/sql_trigger.cc b/sql/sql_trigger.cc
index dbad8dcffb5..3eaa067807a 100644
--- a/sql/sql_trigger.cc
+++ b/sql/sql_trigger.cc
@@ -131,9 +131,12 @@ bool mysql_create_or_drop_trigger(THD *thd, TABLE_LIST *tables, bool create)
But a trigger can in theory be used to do nasty things (if it supported
DROP for example) so we do the check for privileges. For now there is
already a stronger test right above; but when this stronger test will
- be removed, the test below will hold.
+ be removed, the test below will hold. Because triggers have the same
+ nature as functions regarding binlogging: their body is implicitely
+ binlogged, so they share the same danger, so trust_function_creators
+ applies to them too.
*/
- if (!trust_routine_creators && mysql_bin_log.is_open() &&
+ if (!trust_function_creators && mysql_bin_log.is_open() &&
!(thd->security_ctx->master_access & SUPER_ACL))
{
my_error(ER_BINLOG_CREATE_ROUTINE_NEED_SUPER, MYF(0));