Bug #13145 A table named Ç (C-cedilla) can't be dropped
Submitted: 13 Sep 2005 16:47 Modified: 18 Oct 2005 10:00
Reporter: Peter Gulutzan Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server Severity:S3 (Non-critical)
Version:SUSE 9.2 OS:5.0.13-beta-debug
Assigned to: Alexander Barkov

[13 Sep 2005 16:47] Peter Gulutzan
Description:
I use the mysql client with UTF-8.
I can create a base table or view named Ç (C-cedilla) (Unicode code point 00c7).
Later, if I say "DROP TABLE Ç" or "SHOW CREATE TABLE Ç", I get an error message.
The problem does not occur when I create a table named ñ (n-tilde).

How to repeat:
mysql> set names utf8;
Query OK, 0 rows affected (0.00 sec)

mysql> create view Ç as select 'a';
Query OK, 0 rows affected (0.00 sec)

mysql> drop view Ç;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '� at line 1
[16 Sep 2005 9:18] Alexander Barkov
Your client seems to be compiled with latin1 as default character set.
The problem here is that client doesn't change its character
set after calling "SET NAMES" automatically. This is a separate
task which will be fixed later when Monty adds a special extension
into protocol.

If you start "mysql --default-character-set=utf8", C-cedilla works as expected.

The reason of this problem is that "mysql" removes trailing control
characters from the query before sending it to the server.
C-cedilla is 0xC387 in UTF-8.  Thus trailing 0x87 is removed
from the query when it is sent to the server, because 0x87 is
considered to be a control character in latin1.

I would close this bug as "not a bug" or "to be fixed later", but there is another
problem here: 0x87 and most other characters in the range 0x80..0x9F
are  valid letters and punctuation characters in cp1252.
We forgot to fix "ctype" array when changed meaning of latin1
from iso-8859-1 to cp1252.

This is what I'm going to fix under terms of this bug report.
[16 Sep 2005 9:26] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/internals/29979
[14 Oct 2005 9:10] Alexander Barkov
Fixed in 4.1.16 and 5.0.16.
[18 Oct 2005 10:00] Stefan Hinz
Added to 5.0.15 changelog.