Loading mysql-test/r/show_check.result +8 −0 Original line number Diff line number Diff line Loading @@ -730,4 +730,12 @@ show keys from `mysqlttest\1`.`a\b`; Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment drop table `mysqlttest\1`.`a\b`; drop database `mysqlttest\1`; set names utf8; drop table if exists `été`; create table `été` (field1 int); show full tables; Tables_in_test Table_type été BASE TABLE drop table `été`; set names latin1; End of 5.1 tests mysql-test/t/show_check.test +12 −0 Original line number Diff line number Diff line Loading @@ -563,4 +563,16 @@ show keys from `mysqlttest\1`.`a\b`; drop table `mysqlttest\1`.`a\b`; drop database `mysqlttest\1`; # # Bug#25081 SHOW FULL TABLES on table with latin chars in name fails # set names utf8; --disable_warnings drop table if exists `été`; --enable_warnings create table `été` (field1 int); show full tables; drop table `été`; set names latin1; --echo End of 5.1 tests sql/sql_show.cc +4 −4 Original line number Diff line number Diff line Loading @@ -2489,7 +2489,7 @@ int get_all_tables(THD *thd, TABLE_LIST *tables, COND *cond) ST_SCHEMA_TABLE *schema_table= tables->schema_table; SELECT_LEX sel; INDEX_FIELD_VALUES idx_field_vals; char path[FN_REFLEN], *end, *base_name, *orig_base_name, *file_name; char path[FN_REFLEN], *base_name, *orig_base_name, *file_name; uint len; bool with_i_schema; enum enum_schema_tables schema_table_idx; Loading @@ -2506,7 +2506,6 @@ int get_all_tables(THD *thd, TABLE_LIST *tables, COND *cond) lex->view_prepare_mode= TRUE; DBUG_ENTER("get_all_tables"); LINT_INIT(end); LINT_INIT(len); lex->reset_n_backup_query_tables_list(&query_tables_list_backup); Loading Loading @@ -2597,7 +2596,6 @@ int get_all_tables(THD *thd, TABLE_LIST *tables, COND *cond) else { len= build_table_filename(path, sizeof(path), base_name, "", "", 0); end= path + len; len= FN_LEN - len; find_files_result res= find_files(thd, &files, base_name, path, idx_field_vals.table_value, 0); Loading Loading @@ -2647,7 +2645,9 @@ int get_all_tables(THD *thd, TABLE_LIST *tables, COND *cond) } else { my_snprintf(end, len, "/%s%s", file_name, reg_ext); build_table_filename(path, sizeof(path), base_name, file_name, reg_ext, 0); switch (mysql_frm_type(thd, path, ¬_used)) { case FRMTYPE_ERROR: table->field[3]->store(STRING_WITH_LEN("ERROR"), Loading Loading
mysql-test/r/show_check.result +8 −0 Original line number Diff line number Diff line Loading @@ -730,4 +730,12 @@ show keys from `mysqlttest\1`.`a\b`; Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment drop table `mysqlttest\1`.`a\b`; drop database `mysqlttest\1`; set names utf8; drop table if exists `été`; create table `été` (field1 int); show full tables; Tables_in_test Table_type été BASE TABLE drop table `été`; set names latin1; End of 5.1 tests
mysql-test/t/show_check.test +12 −0 Original line number Diff line number Diff line Loading @@ -563,4 +563,16 @@ show keys from `mysqlttest\1`.`a\b`; drop table `mysqlttest\1`.`a\b`; drop database `mysqlttest\1`; # # Bug#25081 SHOW FULL TABLES on table with latin chars in name fails # set names utf8; --disable_warnings drop table if exists `été`; --enable_warnings create table `été` (field1 int); show full tables; drop table `été`; set names latin1; --echo End of 5.1 tests
sql/sql_show.cc +4 −4 Original line number Diff line number Diff line Loading @@ -2489,7 +2489,7 @@ int get_all_tables(THD *thd, TABLE_LIST *tables, COND *cond) ST_SCHEMA_TABLE *schema_table= tables->schema_table; SELECT_LEX sel; INDEX_FIELD_VALUES idx_field_vals; char path[FN_REFLEN], *end, *base_name, *orig_base_name, *file_name; char path[FN_REFLEN], *base_name, *orig_base_name, *file_name; uint len; bool with_i_schema; enum enum_schema_tables schema_table_idx; Loading @@ -2506,7 +2506,6 @@ int get_all_tables(THD *thd, TABLE_LIST *tables, COND *cond) lex->view_prepare_mode= TRUE; DBUG_ENTER("get_all_tables"); LINT_INIT(end); LINT_INIT(len); lex->reset_n_backup_query_tables_list(&query_tables_list_backup); Loading Loading @@ -2597,7 +2596,6 @@ int get_all_tables(THD *thd, TABLE_LIST *tables, COND *cond) else { len= build_table_filename(path, sizeof(path), base_name, "", "", 0); end= path + len; len= FN_LEN - len; find_files_result res= find_files(thd, &files, base_name, path, idx_field_vals.table_value, 0); Loading Loading @@ -2647,7 +2645,9 @@ int get_all_tables(THD *thd, TABLE_LIST *tables, COND *cond) } else { my_snprintf(end, len, "/%s%s", file_name, reg_ext); build_table_filename(path, sizeof(path), base_name, file_name, reg_ext, 0); switch (mysql_frm_type(thd, path, ¬_used)) { case FRMTYPE_ERROR: table->field[3]->store(STRING_WITH_LEN("ERROR"), Loading