Commit 3752c3b3 authored by unknown's avatar unknown
Browse files

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)


sql/table.cc:
  Print a warning when an old table is opened and the
  default character set is multi-byte that warns about
  character column sizes possibly getting changed
parent 0b076d2c
Loading
Loading
Loading
Loading
+12 −1
Original line number Diff line number Diff line
@@ -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));
    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->db_record_offset=1;
  if (db_create_options & HA_OPTION_LONG_BLOB_PTR)
    outparam->blob_ptr_size=portable_sizeof_char_ptr;