mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
parser cleanup: don't store field properties in LEX, use Create_field directly
length/dec/charset are still in LEX, because they're also used for CAST and dynamic columns. also 1. fix "MDEV-7041 COLLATION(CAST('a' AS CHAR BINARY)) returns a wrong result" 2. allow BINARY modifier in stored function RETURN clause 3. allow "COLLATION without CHARSET" in SP/SF (parameters, RETURN, DECLARE) 4. print correct variable name in error messages for stored routine parameters
This commit is contained in:
@ -3248,18 +3248,10 @@ mysql_prepare_create_table(THD *thd, HA_CREATE_INFO *create_info,
|
||||
*/
|
||||
sql_field->length= sql_field->char_length;
|
||||
/* Set field charset. */
|
||||
save_cs= sql_field->charset= get_sql_field_charset(sql_field,
|
||||
create_info);
|
||||
save_cs= sql_field->charset= get_sql_field_charset(sql_field, create_info);
|
||||
if ((sql_field->flags & BINCMP_FLAG) &&
|
||||
!(sql_field->charset= get_charset_by_csname(sql_field->charset->csname,
|
||||
MY_CS_BINSORT,MYF(0))))
|
||||
{
|
||||
char tmp[65];
|
||||
strmake(strmake(tmp, save_cs->csname, sizeof(tmp)-4),
|
||||
STRING_WITH_LEN("_bin"));
|
||||
my_error(ER_UNKNOWN_COLLATION, MYF(0), tmp);
|
||||
!(sql_field->charset= find_bin_collation(sql_field->charset)))
|
||||
DBUG_RETURN(TRUE);
|
||||
}
|
||||
|
||||
/*
|
||||
Convert the default value from client character
|
||||
|
Reference in New Issue
Block a user