diff options
author | bar@bar.myoffice.izhnet.ru <> | 2007-01-23 14:37:12 +0400 |
---|---|---|
committer | bar@bar.myoffice.izhnet.ru <> | 2007-01-23 14:37:12 +0400 |
commit | b3ade670a681b312437dc29c2c51f1f6344ab3f4 (patch) | |
tree | f72298cf6b1bb601dc7f5250ee239dbe34d6871c | |
parent | 95f3f3f4f3193eb789669284b937698e94f9d436 (diff) | |
parent | f3156a18408edc5f794b64675497ef034e89bd0b (diff) | |
download | mariadb-git-b3ade670a681b312437dc29c2c51f1f6344ab3f4.tar.gz |
Merge abarkov@bk-internal.mysql.com:/home/bk/mysql-5.1-rpl
into mysql.com:/home/bar/mysql-5.1.b25081
-rw-r--r-- | mysql-test/r/show_check.result | 8 | ||||
-rw-r--r-- | mysql-test/t/show_check.test | 12 | ||||
-rw-r--r-- | sql/sql_show.cc | 8 |
3 files changed, 24 insertions, 4 deletions
diff --git a/mysql-test/r/show_check.result b/mysql-test/r/show_check.result index 516355839b5..823511e3196 100644 --- a/mysql-test/r/show_check.result +++ b/mysql-test/r/show_check.result @@ -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 diff --git a/mysql-test/t/show_check.test b/mysql-test/t/show_check.test index be803a74c7b..fb21b5ecaa0 100644 --- a/mysql-test/t/show_check.test +++ b/mysql-test/t/show_check.test @@ -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 diff --git a/sql/sql_show.cc b/sql/sql_show.cc index c4bb6a8fc92..c62eb61d188 100644 --- a/sql/sql_show.cc +++ b/sql/sql_show.cc @@ -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; @@ -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); @@ -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); @@ -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"), |