diff options
author | unknown <anozdrin@mysql.com> | 2006-01-11 02:07:40 +0300 |
---|---|---|
committer | unknown <anozdrin@mysql.com> | 2006-01-11 02:07:40 +0300 |
commit | d4d29edb836c697d744bb75496b58b76554fcb68 (patch) | |
tree | 2d2fbf7237a87334eb708a2f4af55c8b443046df /include | |
parent | ffc206d9be17b67f1daed509e5939c63519960f0 (diff) | |
download | mariadb-git-d4d29edb836c697d744bb75496b58b76554fcb68.tar.gz |
Fix for BUG#15110: mysqldump --triggers: does not include DEFINER clause
There are two main idea of this fix:
- introduce a common function for server and client to split user value
(<user name>@<host name>) into user name and host name parts;
- dump DEFINER clause in correct format in mysqldump.
BitKeeper/etc/ignore:
added client/my_user.c libmysqld/my_user.c sql/my_user.c
client/Makefile.am:
Use my_user.c in linking of mysqldump executable.
client/mysqldump.c:
Fix for BUG#15110(mysqldump --triggers: does not include DEFINER clause)
include/Makefile.am:
Add my_user.c
include/mysql_com.h:
Introduce a constant for max user length.
libmysqld/Makefile.am:
Add my_user.c
mysql-test/r/mysqldump.result:
Update result file.
sql-common/Makefile.am:
Add my_user.c
sql/Makefile.am:
Add my_user.c
sql/sp.cc:
Use constant for max user length.
sql/sp_head.cc:
Use common function to parse user value.
sql/sql_acl.cc:
Use constant for max user length.
sql/sql_parse.cc:
Use constant for max user length.
sql/sql_show.cc:
Use constant for max user length.
sql/sql_trigger.cc:
Use constant for max user length.
include/my_user.h:
A header file for parse_user().
sql-common/my_user.c:
A new file for parse_user() implementation.
Diffstat (limited to 'include')
-rw-r--r-- | include/Makefile.am | 3 | ||||
-rw-r--r-- | include/my_user.h | 35 | ||||
-rw-r--r-- | include/mysql_com.h | 8 |
3 files changed, 45 insertions, 1 deletions
diff --git a/include/Makefile.am b/include/Makefile.am index 12b8c301b8d..07c32e3127b 100644 --- a/include/Makefile.am +++ b/include/Makefile.am @@ -30,7 +30,8 @@ noinst_HEADERS = config-win.h config-os2.h config-netware.h \ my_nosys.h my_alarm.h queues.h rijndael.h sha1.h \ my_aes.h my_tree.h hash.h thr_alarm.h \ thr_lock.h t_ctype.h violite.h md5.h base64.h \ - mysql_version.h.in my_handler.h my_time.h decimal.h + mysql_version.h.in my_handler.h my_time.h decimal.h \ + my_user.h # mysql_version.h are generated CLEANFILES = mysql_version.h my_config.h readline openssl diff --git a/include/my_user.h b/include/my_user.h new file mode 100644 index 00000000000..2bd4208a34c --- /dev/null +++ b/include/my_user.h @@ -0,0 +1,35 @@ +/* Copyright (C) 2005 MySQL AB + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ + +/* + This is a header for libraries containing functions used in both server and + only some of clients (but not in libmysql)... +*/ + +#ifndef _my_user_h_ +#define _my_user_h_ + +#include <my_global.h> + +C_MODE_START + +void parse_user(const char *user_id_str, uint user_id_len, + char *user_name_str, uint *user_name_len, + char *host_name_str, uint *host_name_len); + +C_MODE_END + +#endif /* _my_user_h_ */ diff --git a/include/mysql_com.h b/include/mysql_com.h index 1e595cdbba3..ec1c133799f 100644 --- a/include/mysql_com.h +++ b/include/mysql_com.h @@ -27,6 +27,14 @@ #define SERVER_VERSION_LENGTH 60 #define SQLSTATE_LENGTH 5 +/* + USER_HOST_BUFF_SIZE -- length of string buffer, that is enough to contain + username and hostname parts of the user identifier with trailing zero in + MySQL standard format: + user_name_part@host_name_part\0 +*/ +#define USER_HOST_BUFF_SIZE HOSTNAME_LENGTH + USERNAME_LENGTH + 2 + #define LOCAL_HOST "localhost" #define LOCAL_HOST_NAMEDPIPE "." |