Commit dbe43d34 authored by jimw@mysql.com's avatar jimw@mysql.com

Print a warning when an old table (with no character set stored) is opened

and the default character set is multi-byte, which will result in character
column size changes. (Bug #6913)
parent 63689a21
...@@ -145,8 +145,19 @@ int openfrm(const char *name, const char *alias, uint db_stat, uint prgflag, ...@@ -145,8 +145,19 @@ int openfrm(const char *name, const char *alias, uint db_stat, uint prgflag,
outparam->table_charset=get_charset((uint) head[38],MYF(0)); outparam->table_charset=get_charset((uint) head[38],MYF(0));
null_field_first=1; null_field_first=1;
} }
if (!outparam->table_charset) /* unknown charset in head[38] or pre-3.23 frm */ if (!outparam->table_charset)
{
/* unknown charset in head[38] or pre-3.23 frm */
if (use_mb(default_charset_info))
{
/* Warn that we may be changing the size of character columns */
sql_print_warning("'%s' had no or invalid character set, "
"and default character set is multi-byte, "
"so character column sizes may have changed",
name);
}
outparam->table_charset=default_charset_info; outparam->table_charset=default_charset_info;
}
outparam->db_record_offset=1; outparam->db_record_offset=1;
if (db_create_options & HA_OPTION_LONG_BLOB_PTR) if (db_create_options & HA_OPTION_LONG_BLOB_PTR)
outparam->blob_ptr_size=portable_sizeof_char_ptr; outparam->blob_ptr_size=portable_sizeof_char_ptr;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment