diff options
author | Sergei Golubchik <sergii@pisem.net> | 2013-10-18 12:17:49 -0700 |
---|---|---|
committer | Sergei Golubchik <sergii@pisem.net> | 2013-10-18 12:17:49 -0700 |
commit | b2f16628cf4500111d59a8e52cc44851742ddfcc (patch) | |
tree | a09b5dcacded4cf82fc40707874e39feb8a72e7a /sql/sp_head.cc | |
parent | b0547006192730d6281ca96f2151802ee7fe2ba0 (diff) | |
download | mariadb-git-b2f16628cf4500111d59a8e52cc44851742ddfcc.tar.gz |
support DEFINER=role and DEFINER=current_role
Diffstat (limited to 'sql/sp_head.cc')
-rw-r--r-- | sql/sp_head.cc | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/sql/sp_head.cc b/sql/sp_head.cc index 25e64339379..122b6c9b796 100644 --- a/sql/sp_head.cc +++ b/sql/sp_head.cc @@ -2549,8 +2549,13 @@ sp_head::set_definer(const char *definer, uint definerlen) char host_name_holder[HOSTNAME_LENGTH + 1]; LEX_STRING host_name= { host_name_holder, HOSTNAME_LENGTH }; - parse_user(definer, definerlen, user_name.str, &user_name.length, - host_name.str, &host_name.length); + if (parse_user(definer, definerlen, user_name.str, &user_name.length, + host_name.str, &host_name.length) && + user_name.length && !host_name.length) + { + // 'user@' -> 'user@%' + host_name= host_not_specified; + } set_definer(&user_name, &host_name); } |