mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Bug#32430:'show innodb status' causes errors Invalid (old?) table
or database name in logs Problem was that InnoDB used filenam_to_tablename, which do not handle partitions (due to the '#' in the filename). Solution is to add a new function for explaining what the filename means: explain_filename. It expands the database, table, partition and subpartition parts and uses errmsg.txt for localization. It also converts from my_charset_filename to system_charset_info (i.e. human readable form for non ascii characters). http://lists.mysql.com/commits/70370 2773 Mattias Jonsson 2009-03-25 It has three different output styles. NOTE: This is the server side ONLY part (introducing the explain_filename function). There will be a patch for InnoDB using this function to solve the bug. sql/mysql_priv.h: Bug#32430:'show innodb status' causes errors Invalid (old?) table or database name in logs Added EXPLAIN_FILENAME_MAX_EXTRA_LENGTH, enum_explain_filename_mode and explain_filename. sql/share/errmsg.txt: Bug#32430:'show innodb status' causes errors Invalid (old?) table or database name in logs Added localization names for Database, Table, Partition, Subpartition Temporary and Renamed. sql/sql_table.cc: Bug#32430:'show innodb status' causes errors Invalid (old?) table or database name in logs Added explain_filename function for giving better information to the user about a specific table/partitions file.
This commit is contained in:
@ -2253,6 +2253,16 @@ char *fn_rext(char *name);
|
||||
#if defined MYSQL_SERVER || defined INNODB_COMPATIBILITY_HOOKS
|
||||
uint strconvert(CHARSET_INFO *from_cs, const char *from,
|
||||
CHARSET_INFO *to_cs, char *to, uint to_length, uint *errors);
|
||||
/* depends on errmsg.txt Database `db`, Table `t` ... */
|
||||
#define EXPLAIN_FILENAME_MAX_EXTRA_LENGTH 63
|
||||
enum enum_explain_filename_mode
|
||||
{
|
||||
EXPLAIN_ALL_VERBOSE= 0,
|
||||
EXPLAIN_PARTITIONS_VERBOSE,
|
||||
EXPLAIN_PARTITIONS_AS_COMMENT
|
||||
};
|
||||
uint explain_filename(const char *from, char *to, uint to_length,
|
||||
enum_explain_filename_mode explain_mode);
|
||||
uint filename_to_tablename(const char *from, char *to, uint to_length);
|
||||
uint tablename_to_filename(const char *from, char *to, uint to_length);
|
||||
uint check_n_cut_mysql50_prefix(const char *from, char *to, uint to_length);
|
||||
|
Reference in New Issue
Block a user