mirror of
https://github.com/MariaDB/server.git
synced 2025-12-24 11:21:21 +03:00
Default table character set has been added:
CREATE TABLE a (field,...) TYPE=type CHARSET=cset; sql/handler.h: New flag to remember whether new table default charset has been passed in ALTER TABLE sql/lex.h: New language symbol sql/sql_show.cc: Display default table charset if exists sql/sql_table.cc: Check table charset before default server charset sql/sql_yacc.yy: New create table option: default table character set sql/table.cc: Table charset sql/unireg.cc: field->charset must be initialized before. So assumes it is not NULL
This commit is contained in:
@@ -375,6 +375,9 @@ int mysql_create_table(THD *thd,const char *db, const char *table_name,
|
||||
sql_field->offset= pos;
|
||||
if (MTYP_TYPENR(sql_field->unireg_check) == Field::NEXT_NUMBER)
|
||||
auto_increment++;
|
||||
if(!sql_field->charset)
|
||||
sql_field->charset = create_info->table_charset ?
|
||||
create_info->table_charset : default_charset_info;
|
||||
pos+=sql_field->pack_length;
|
||||
}
|
||||
if (auto_increment > 1)
|
||||
@@ -1645,6 +1648,8 @@ int mysql_alter_table(THD *thd,char *new_db, char *new_name,
|
||||
create_info->max_rows=table->max_rows;
|
||||
if (!(used_fields & HA_CREATE_USED_AVG_ROW_LENGTH))
|
||||
create_info->avg_row_length=table->avg_row_length;
|
||||
if (!(used_fields & HA_CREATE_USED_CHARSET))
|
||||
create_info->table_charset=table->table_charset;
|
||||
|
||||
table->file->update_create_info(create_info);
|
||||
if ((create_info->table_options &
|
||||
|
||||
Reference in New Issue
Block a user