Bug #26436 Bad handling of Cyrillic uppercase characters in table names on Windows
Submitted: 16 Feb 2007 1:29 Modified: 21 Dec 2007 9:27
Reporter: Lachlan Mulcahy Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Charsets Severity:S3 (Non-critical)
Version:5.0.34 OS:Windows (Windows)
Assigned to: CPU Architecture:Any
Tags: cyrillic charactersets

[16 Feb 2007 1:29] Lachlan Mulcahy
Description:
Creating tables that contain non-Latin capital letters embedded in their names on Windows causes problems. 

An example is a table named cyrillic capital letter A (unicode 0x410). SHOW FULL TABLES won't match the tablename back after it has been created.

Lowercase cyrillic letters seem unaffected -- I think this has something to do with the lower-case-table-names default and it's behaviour on Windows.

How to repeat:
SET NAMES UTF8;

Create a table named cyrillic capital letter A (unicode 0x410) on a Windows MySQL server.

Issue a SHOW FULL TABLES FROM `test` LIKE '<unicode 0x410>';

Observe that nothing is returned.

On disk there will be a file named "D°.frm" which we assume occurred when the server tried to create the table.

Suggested fix:
Ensure that the correct conversion between filesystem and tablenames occurs when upper/lower-casing tablenames.
[16 Feb 2007 1:44] Lachlan Mulcahy
Please note that this only seems to occur on Windows. The same process works just fine on Linux/Unix.
[20 Feb 2007 23:27] Lachlan Mulcahy
Looks like this is a known limitation/issue in the way the MySQL server handles identifiers in MySQL 5.0.x and earlier.

The server uses utf8 encoding for them, which is fine on systems like Linux, but can cause troubles for many Unicode characters on OSes like MacOS X and Windows.

A major change to the way the server handles identifiers was introduced in MySQL 5.1.6, which you can read more about here:

http://dev.mysql.com/doc/refman/5.1/en/identifier-mapping.html

I think it is safe to assume that this will not be backported to MySQL 5.0, as it is deemed too significant a change.
[21 Dec 2007 9:27] Alexander Barkov
This problem was fixed in version 5.1.x