mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
table.cc:
Bug #6802 MySQL 4.0's VARCHAR(NN) BINARY is interpreted as VARBINARY(NN) in 4.1 sql/table.cc: Bug #6802 MySQL 4.0's VARCHAR(NN) BINARY is interpreted as VARBINARY(NN) in 4.1
This commit is contained in:
21
sql/table.cc
21
sql/table.cc
@ -463,7 +463,26 @@ int openfrm(const char *name, const char *alias, uint db_stat, uint prgflag,
|
|||||||
|
|
||||||
/* old frm file */
|
/* old frm file */
|
||||||
field_type= (enum_field_types) f_packtype(pack_flag);
|
field_type= (enum_field_types) f_packtype(pack_flag);
|
||||||
charset=f_is_binary(pack_flag) ? &my_charset_bin : outparam->table_charset;
|
if (f_is_binary(pack_flag))
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
Try to choose the best 4.1 type:
|
||||||
|
- for 4.0 "CHAR(N) BINARY" or "VARCHAR(N) BINARY"
|
||||||
|
try to find a binary collation for character set.
|
||||||
|
- for other types (e.g. BLOB) just use my_charset_bin.
|
||||||
|
*/
|
||||||
|
if (!f_is_blob(pack_flag))
|
||||||
|
{
|
||||||
|
// 3.23 or 4.0 string
|
||||||
|
if (!(charset= get_charset_by_csname(outparam->table_charset->csname,
|
||||||
|
MY_CS_BINSORT, MYF(0))))
|
||||||
|
charset= &my_charset_bin;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
charset= &my_charset_bin;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
charset= outparam->table_charset;
|
||||||
bzero((char*) &comment, sizeof(comment));
|
bzero((char*) &comment, sizeof(comment));
|
||||||
}
|
}
|
||||||
*field_ptr=reg_field=
|
*field_ptr=reg_field=
|
||||||
|
Reference in New Issue
Block a user