1
0
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:
unknown
2002-06-19 21:21:30 +05:00
parent 2ec3617476
commit e38f8e8ce2
7 changed files with 39 additions and 14 deletions

View File

@@ -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 &