1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-30 16:24:05 +03:00

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.
This commit is contained in:
unknown
2006-01-11 02:07:40 +03:00
parent ffc206d9be
commit d4d29edb83
17 changed files with 175 additions and 43 deletions

View File

@ -2887,7 +2887,7 @@ int fill_schema_proc(THD *thd, TABLE_LIST *tables, COND *cond)
int res= 0;
TABLE *table= tables->table;
bool full_access;
char definer[HOSTNAME_LENGTH+USERNAME_LENGTH+2];
char definer[USER_HOST_BUFF_SIZE];
Open_tables_state open_tables_state_backup;
DBUG_ENTER("fill_schema_proc");
@ -3029,7 +3029,7 @@ static int get_schema_views_record(THD *thd, struct st_table_list *tables,
{
CHARSET_INFO *cs= system_charset_info;
DBUG_ENTER("get_schema_views_record");
char definer[HOSTNAME_LENGTH + USERNAME_LENGTH + 2];
char definer[USER_HOST_BUFF_SIZE];
uint definer_len;
if (tables->view)
@ -3213,7 +3213,7 @@ static int get_schema_triggers_record(THD *thd, struct st_table_list *tables,
LEX_STRING trigger_name;
LEX_STRING trigger_stmt;
ulong sql_mode;
char definer_holder[HOSTNAME_LENGTH + USERNAME_LENGTH + 2];
char definer_holder[USER_HOST_BUFF_SIZE];
LEX_STRING definer_buffer;
definer_buffer.str= definer_holder;
if (triggers->get_trigger_info(thd, (enum trg_event_type) event,