Loading mysql-test/r/information_schema.result +11 −11 Original line number Diff line number Diff line Loading @@ -156,14 +156,14 @@ drop tables testtets.t4, testtets.t1, t2, t3; drop database testtets; select * from information_schema.CHARACTER_SETS where CHARACTER_SET_NAME like 'latin1%'; CHARACTER_SET_NAME DESCRIPTION DEFAULT_COLLATE_NAME MAXLEN latin1 ISO 8859-1 West European latin1_swedish_ci 1 CHARACTER_SET_NAME DEFAULT_COLLATE_NAME DESCRIPTION MAXLEN latin1 latin1_swedish_ci ISO 8859-1 West European 1 SHOW CHARACTER SET LIKE 'latin1%'; Charset Description Default collation Maxlen latin1 ISO 8859-1 West European latin1_swedish_ci 1 SHOW CHARACTER SET * LIKE 'latin1%'; CHARACTER_SET_NAME DESCRIPTION DEFAULT_COLLATE_NAME MAXLEN latin1 ISO 8859-1 West European latin1_swedish_ci 1 CHARACTER_SET_NAME DEFAULT_COLLATE_NAME DESCRIPTION MAXLEN latin1 latin1_swedish_ci ISO 8859-1 West European 1 SHOW CHARACTER SET WHERE CHARACTER_SET_NAME like 'latin1%'; Charset Description Default collation Maxlen latin1 ISO 8859-1 West European latin1_swedish_ci 1 Loading @@ -171,8 +171,8 @@ SHOW CHARACTER SET CHARACTER_SET_NAME WHERE CHARACTER_SET_NAME like 'latin1%'; CHARACTER_SET_NAME latin1 SHOW CHARACTER SET * WHERE CHARACTER_SET_NAME like 'latin1%'; CHARACTER_SET_NAME DESCRIPTION DEFAULT_COLLATE_NAME MAXLEN latin1 ISO 8859-1 West European latin1_swedish_ci 1 CHARACTER_SET_NAME DEFAULT_COLLATE_NAME DESCRIPTION MAXLEN latin1 latin1_swedish_ci ISO 8859-1 West European 1 select * from information_schema.COLLATIONS where COLLATION_NAME like 'latin1%'; COLLATION_NAME CHARSET ID DEFAULT COMPILED SORTLEN Loading Loading @@ -471,8 +471,8 @@ SHOW CREATE TABLE INFORMATION_SCHEMA.character_sets; Table Create Table character_sets CREATE TEMPORARY TABLE `character_sets` ( `CHARACTER_SET_NAME` varchar(30) NOT NULL default '', `DESCRIPTION` varchar(60) NOT NULL default '', `DEFAULT_COLLATE_NAME` varchar(60) NOT NULL default '', `DESCRIPTION` varchar(60) NOT NULL default '', `MAXLEN` bigint(3) NOT NULL default '0' ) ENGINE=HEAP DEFAULT CHARSET=utf8 MAX_ROWS=2252 set names latin2; Loading @@ -480,23 +480,23 @@ SHOW CREATE TABLE INFORMATION_SCHEMA.character_sets; Table Create Table character_sets CREATE TEMPORARY TABLE `character_sets` ( `CHARACTER_SET_NAME` varchar(30) NOT NULL default '', `DESCRIPTION` varchar(60) NOT NULL default '', `DEFAULT_COLLATE_NAME` varchar(60) NOT NULL default '', `DESCRIPTION` varchar(60) NOT NULL default '', `MAXLEN` bigint(3) NOT NULL default '0' ) ENGINE=HEAP DEFAULT CHARSET=utf8 MAX_ROWS=2252 set names latin1; create table t1 select * from information_schema.CHARACTER_SETS where CHARACTER_SET_NAME like "latin1"; select * from t1; CHARACTER_SET_NAME DESCRIPTION DEFAULT_COLLATE_NAME MAXLEN latin1 ISO 8859-1 West European latin1_swedish_ci 1 CHARACTER_SET_NAME DEFAULT_COLLATE_NAME DESCRIPTION MAXLEN latin1 latin1_swedish_ci ISO 8859-1 West European 1 alter table t1 default character set utf8; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( `CHARACTER_SET_NAME` varchar(30) NOT NULL default '', `DESCRIPTION` varchar(60) NOT NULL default '', `DEFAULT_COLLATE_NAME` varchar(60) NOT NULL default '', `DESCRIPTION` varchar(60) NOT NULL default '', `MAXLEN` bigint(3) NOT NULL default '0' ) ENGINE=MyISAM DEFAULT CHARSET=utf8 drop table t1; Loading sql/sql_show.cc +26 −4 Original line number Diff line number Diff line Loading @@ -2551,10 +2551,10 @@ int fill_schema_charsets(THD *thd, TABLE_LIST *tables, COND *cond) { restore_record(table, default_values); table->field[0]->store(tmp_cs->csname, strlen(tmp_cs->csname), scs); table->field[1]->store(tmp_cs->comment ? tmp_cs->comment : "", table->field[1]->store(tmp_cs->name, strlen(tmp_cs->name), scs); table->field[2]->store(tmp_cs->comment ? tmp_cs->comment : "", strlen(tmp_cs->comment ? tmp_cs->comment : ""), scs); table->field[2]->store(tmp_cs->name, strlen(tmp_cs->name), scs); table->field[3]->store((longlong) tmp_cs->mbmaxlen); table->file->write_row(table->record[0]); } Loading Loading @@ -3216,6 +3216,28 @@ int make_columns_old_format(THD *thd, ST_SCHEMA_TABLE *schema_table) } int make_character_sets_old_format(THD *thd, ST_SCHEMA_TABLE *schema_table) { int fields_arr[]= {0, 2, 1, 3, -1}; int *field_num= fields_arr; ST_FIELD_INFO *field_info; for (; *field_num >= 0; field_num++) { field_info= &schema_table->fields_info[*field_num]; Item_field *field= new Item_field(NullS, NullS, field_info->field_name); if (field) { field->set_name(field_info->old_name, strlen(field_info->old_name), system_charset_info); if (add_item_to_list(thd, field)) return 1; } } return 0; } int make_proc_old_format(THD *thd, ST_SCHEMA_TABLE *schema_table) { int fields_arr[]= {2, 3, 4, 19, 16, 15, 14, 18, -1}; Loading Loading @@ -3439,8 +3461,8 @@ ST_FIELD_INFO columns_fields_info[]= ST_FIELD_INFO charsets_fields_info[]= { {"CHARACTER_SET_NAME", 30, MYSQL_TYPE_STRING, 0, 0, "Charset"}, {"DESCRIPTION", 60, MYSQL_TYPE_STRING, 0, 0, "Description"}, {"DEFAULT_COLLATE_NAME", 60, MYSQL_TYPE_STRING, 0, 0, "Default collation"}, {"DESCRIPTION", 60, MYSQL_TYPE_STRING, 0, 0, "Description"}, {"MAXLEN", 3 ,MYSQL_TYPE_LONG, 0, 0, "Maxlen"}, {0, 0, MYSQL_TYPE_STRING, 0, 0, 0} }; Loading Loading @@ -3621,7 +3643,7 @@ ST_SCHEMA_TABLE schema_tables[]= {"COLUMNS", columns_fields_info, create_schema_table, get_all_tables, make_columns_old_format, get_schema_column_record, 1, 2}, {"CHARACTER_SETS", charsets_fields_info, create_schema_table, fill_schema_charsets, make_old_format, 0, -1, -1}, fill_schema_charsets, make_character_sets_old_format, 0, -1, -1}, {"COLLATIONS", collation_fields_info, create_schema_table, fill_schema_collation, make_old_format, 0, -1, -1}, {"COLLATION_CHARACTER_SET_APPLICABILITY", coll_charset_app_fields_info, Loading Loading
mysql-test/r/information_schema.result +11 −11 Original line number Diff line number Diff line Loading @@ -156,14 +156,14 @@ drop tables testtets.t4, testtets.t1, t2, t3; drop database testtets; select * from information_schema.CHARACTER_SETS where CHARACTER_SET_NAME like 'latin1%'; CHARACTER_SET_NAME DESCRIPTION DEFAULT_COLLATE_NAME MAXLEN latin1 ISO 8859-1 West European latin1_swedish_ci 1 CHARACTER_SET_NAME DEFAULT_COLLATE_NAME DESCRIPTION MAXLEN latin1 latin1_swedish_ci ISO 8859-1 West European 1 SHOW CHARACTER SET LIKE 'latin1%'; Charset Description Default collation Maxlen latin1 ISO 8859-1 West European latin1_swedish_ci 1 SHOW CHARACTER SET * LIKE 'latin1%'; CHARACTER_SET_NAME DESCRIPTION DEFAULT_COLLATE_NAME MAXLEN latin1 ISO 8859-1 West European latin1_swedish_ci 1 CHARACTER_SET_NAME DEFAULT_COLLATE_NAME DESCRIPTION MAXLEN latin1 latin1_swedish_ci ISO 8859-1 West European 1 SHOW CHARACTER SET WHERE CHARACTER_SET_NAME like 'latin1%'; Charset Description Default collation Maxlen latin1 ISO 8859-1 West European latin1_swedish_ci 1 Loading @@ -171,8 +171,8 @@ SHOW CHARACTER SET CHARACTER_SET_NAME WHERE CHARACTER_SET_NAME like 'latin1%'; CHARACTER_SET_NAME latin1 SHOW CHARACTER SET * WHERE CHARACTER_SET_NAME like 'latin1%'; CHARACTER_SET_NAME DESCRIPTION DEFAULT_COLLATE_NAME MAXLEN latin1 ISO 8859-1 West European latin1_swedish_ci 1 CHARACTER_SET_NAME DEFAULT_COLLATE_NAME DESCRIPTION MAXLEN latin1 latin1_swedish_ci ISO 8859-1 West European 1 select * from information_schema.COLLATIONS where COLLATION_NAME like 'latin1%'; COLLATION_NAME CHARSET ID DEFAULT COMPILED SORTLEN Loading Loading @@ -471,8 +471,8 @@ SHOW CREATE TABLE INFORMATION_SCHEMA.character_sets; Table Create Table character_sets CREATE TEMPORARY TABLE `character_sets` ( `CHARACTER_SET_NAME` varchar(30) NOT NULL default '', `DESCRIPTION` varchar(60) NOT NULL default '', `DEFAULT_COLLATE_NAME` varchar(60) NOT NULL default '', `DESCRIPTION` varchar(60) NOT NULL default '', `MAXLEN` bigint(3) NOT NULL default '0' ) ENGINE=HEAP DEFAULT CHARSET=utf8 MAX_ROWS=2252 set names latin2; Loading @@ -480,23 +480,23 @@ SHOW CREATE TABLE INFORMATION_SCHEMA.character_sets; Table Create Table character_sets CREATE TEMPORARY TABLE `character_sets` ( `CHARACTER_SET_NAME` varchar(30) NOT NULL default '', `DESCRIPTION` varchar(60) NOT NULL default '', `DEFAULT_COLLATE_NAME` varchar(60) NOT NULL default '', `DESCRIPTION` varchar(60) NOT NULL default '', `MAXLEN` bigint(3) NOT NULL default '0' ) ENGINE=HEAP DEFAULT CHARSET=utf8 MAX_ROWS=2252 set names latin1; create table t1 select * from information_schema.CHARACTER_SETS where CHARACTER_SET_NAME like "latin1"; select * from t1; CHARACTER_SET_NAME DESCRIPTION DEFAULT_COLLATE_NAME MAXLEN latin1 ISO 8859-1 West European latin1_swedish_ci 1 CHARACTER_SET_NAME DEFAULT_COLLATE_NAME DESCRIPTION MAXLEN latin1 latin1_swedish_ci ISO 8859-1 West European 1 alter table t1 default character set utf8; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( `CHARACTER_SET_NAME` varchar(30) NOT NULL default '', `DESCRIPTION` varchar(60) NOT NULL default '', `DEFAULT_COLLATE_NAME` varchar(60) NOT NULL default '', `DESCRIPTION` varchar(60) NOT NULL default '', `MAXLEN` bigint(3) NOT NULL default '0' ) ENGINE=MyISAM DEFAULT CHARSET=utf8 drop table t1; Loading
sql/sql_show.cc +26 −4 Original line number Diff line number Diff line Loading @@ -2551,10 +2551,10 @@ int fill_schema_charsets(THD *thd, TABLE_LIST *tables, COND *cond) { restore_record(table, default_values); table->field[0]->store(tmp_cs->csname, strlen(tmp_cs->csname), scs); table->field[1]->store(tmp_cs->comment ? tmp_cs->comment : "", table->field[1]->store(tmp_cs->name, strlen(tmp_cs->name), scs); table->field[2]->store(tmp_cs->comment ? tmp_cs->comment : "", strlen(tmp_cs->comment ? tmp_cs->comment : ""), scs); table->field[2]->store(tmp_cs->name, strlen(tmp_cs->name), scs); table->field[3]->store((longlong) tmp_cs->mbmaxlen); table->file->write_row(table->record[0]); } Loading Loading @@ -3216,6 +3216,28 @@ int make_columns_old_format(THD *thd, ST_SCHEMA_TABLE *schema_table) } int make_character_sets_old_format(THD *thd, ST_SCHEMA_TABLE *schema_table) { int fields_arr[]= {0, 2, 1, 3, -1}; int *field_num= fields_arr; ST_FIELD_INFO *field_info; for (; *field_num >= 0; field_num++) { field_info= &schema_table->fields_info[*field_num]; Item_field *field= new Item_field(NullS, NullS, field_info->field_name); if (field) { field->set_name(field_info->old_name, strlen(field_info->old_name), system_charset_info); if (add_item_to_list(thd, field)) return 1; } } return 0; } int make_proc_old_format(THD *thd, ST_SCHEMA_TABLE *schema_table) { int fields_arr[]= {2, 3, 4, 19, 16, 15, 14, 18, -1}; Loading Loading @@ -3439,8 +3461,8 @@ ST_FIELD_INFO columns_fields_info[]= ST_FIELD_INFO charsets_fields_info[]= { {"CHARACTER_SET_NAME", 30, MYSQL_TYPE_STRING, 0, 0, "Charset"}, {"DESCRIPTION", 60, MYSQL_TYPE_STRING, 0, 0, "Description"}, {"DEFAULT_COLLATE_NAME", 60, MYSQL_TYPE_STRING, 0, 0, "Default collation"}, {"DESCRIPTION", 60, MYSQL_TYPE_STRING, 0, 0, "Description"}, {"MAXLEN", 3 ,MYSQL_TYPE_LONG, 0, 0, "Maxlen"}, {0, 0, MYSQL_TYPE_STRING, 0, 0, 0} }; Loading Loading @@ -3621,7 +3643,7 @@ ST_SCHEMA_TABLE schema_tables[]= {"COLUMNS", columns_fields_info, create_schema_table, get_all_tables, make_columns_old_format, get_schema_column_record, 1, 2}, {"CHARACTER_SETS", charsets_fields_info, create_schema_table, fill_schema_charsets, make_old_format, 0, -1, -1}, fill_schema_charsets, make_character_sets_old_format, 0, -1, -1}, {"COLLATIONS", collation_fields_info, create_schema_table, fill_schema_collation, make_old_format, 0, -1, -1}, {"COLLATION_CHARACTER_SET_APPLICABILITY", coll_charset_app_fields_info, Loading