Below is the list of changes that have just been committed into a local
5.0 repository of gluh. When gluh does a push these changes
will be propagated to the main repository and, within 24 hours after the
push, to the public repository.
For information on how to access the public repository
see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html
ChangeSet@stripped, 2008-04-10 13:30:58+05:00, gluh@stripped +4 -0
Bug#25830 SHOW TABLE STATUS behaves differently depending on table name
replace wild_case_compare with my_wildcmp which is multibyte safe function
mysql-test/r/lowercase_utf8.result@stripped, 2008-04-10 13:30:56+05:00, gluh@stripped +9 -0
New BitKeeper file ``mysql-test/r/lowercase_utf8.result''
mysql-test/r/lowercase_utf8.result@stripped, 2008-04-10 13:30:56+05:00, gluh@stripped +0 -0
mysql-test/t/lowercase_utf8-master.opt@stripped, 2008-04-10 13:30:56+05:00, gluh@stripped +4
-0
New BitKeeper file ``mysql-test/t/lowercase_utf8-master.opt''
mysql-test/t/lowercase_utf8-master.opt@stripped, 2008-04-10 13:30:56+05:00, gluh@stripped +0
-0
mysql-test/t/lowercase_utf8.test@stripped, 2008-04-10 13:30:56+05:00, gluh@stripped +9 -0
New BitKeeper file ``mysql-test/t/lowercase_utf8.test''
mysql-test/t/lowercase_utf8.test@stripped, 2008-04-10 13:30:56+05:00, gluh@stripped +0 -0
sql/sql_show.cc@stripped, 2008-04-10 13:30:56+05:00, gluh@stripped +12 -4
replace wild_case_compare with my_wildcmp which is multibyte safe function
diff -Nrup a/mysql-test/r/lowercase_utf8.result b/mysql-test/r/lowercase_utf8.result
--- /dev/null Wed Dec 31 16:00:00 196900
+++ b/mysql-test/r/lowercase_utf8.result 2008-04-10 13:30:56 +05:00
@@ -0,0 +1,9 @@
+set names utf8;
+create table `Ö` (id int);
+show tables from test like 'Ö';
+Tables_in_test (Ö)
+ö
+show tables from test like 'ö';
+Tables_in_test (ö)
+ö
+drop table `Ö`;
diff -Nrup a/mysql-test/t/lowercase_utf8-master.opt
b/mysql-test/t/lowercase_utf8-master.opt
--- /dev/null Wed Dec 31 16:00:00 196900
+++ b/mysql-test/t/lowercase_utf8-master.opt 2008-04-10 13:30:56 +05:00
@@ -0,0 +1,4 @@
+--lower-case-table-names=1 --character-set-server=utf8
+
+
+
diff -Nrup a/mysql-test/t/lowercase_utf8.test b/mysql-test/t/lowercase_utf8.test
--- /dev/null Wed Dec 31 16:00:00 196900
+++ b/mysql-test/t/lowercase_utf8.test 2008-04-10 13:30:56 +05:00
@@ -0,0 +1,9 @@
+#
+# Bug#25830 SHOW TABLE STATUS behaves differently depending on table name
+#
+set names utf8;
+create table `Ö` (id int);
+show tables from test like 'Ö';
+show tables from test like 'ö';
+drop table `Ö`;
+
diff -Nrup a/sql/sql_show.cc b/sql/sql_show.cc
--- a/sql/sql_show.cc 2008-03-19 17:32:27 +04:00
+++ b/sql/sql_show.cc 2008-04-10 13:30:56 +05:00
@@ -287,11 +287,16 @@ find_files(THD *thd, List<char> *files,
#ifndef NO_EMBEDDED_ACCESS_CHECKS
uint col_access=thd->col_access;
#endif
+ uint wild_length= 0;
TABLE_LIST table_list;
DBUG_ENTER("find_files");
- if (wild && !wild[0])
- wild=0;
+ if (wild)
+ {
+ wild_length= strlen(wild);
+ if (!wild[0])
+ wild= 0;
+ }
bzero((char*) &table_list,sizeof(table_list));
@@ -340,8 +345,11 @@ find_files(THD *thd, List<char> *files,
{
if (lower_case_table_names)
{
- if (wild_case_compare(files_charset_info, file->name, wild))
- continue;
+ if (my_wildcmp(files_charset_info,
+ file->name, file->name + strlen(file->name),
+ wild, wild + wild_length,
+ wild_prefix, wild_one,wild_many))
+ continue;
}
else if (wild_compare(file->name,wild,0))
continue;
| Thread |
|---|
| • bk commit into 5.0 tree (gluh:1.2605) BUG#25830 | gluh | 10 Apr |