Bug #2135 ENUM fields do not show Hebrew values correctly
Submitted: 17 Dec 2003 0:55 Modified: 18 Dec 2003 2:47
Reporter: Comrax Ltd. Email Updates:
Status: Duplicate Impact on me:
None 
Category:MySQL Server Severity:S2 (Serious)
Version:4.1.1-alpha OS:FreeBSD (FreeBSD 4.9 (i386))
Assigned to: Assigned Account CPU Architecture:Any

[17 Dec 2003 0:55] Comrax Ltd.
Description:
Hello,

Up until recently I used MySQL from branch 4.0, and all went smooth and well.
This week I deployed 4.1.1-alpha to take advantage of the new features, like UTF-8 and collations.

I compiled MySQL from sources, with the following ``configure`` command:

./configure --prefix=/usr/local/mysql --with-unix-socket-path=/tmp/mysql.sock --with-raid --with-mysqld-user=mysql --without-debug --without-docs --without-bench --without-readline --with-charset=hebrew --with-collation=hebrew_general_ci --with-extra-charsets=utf8

See the following output from ``SHOW VARIABLES`` command:

mysql> show variables like '%char%';
+--------------------------+----------------------------------------+
| Variable_name            | Value                                  |
+--------------------------+----------------------------------------+
| character_set_server     | hebrew                                 |
| character_set_system     | utf8                                   |
| character_set_database   | hebrew                                 |
| character_set_client     | hebrew                                 |
| character_set_connection | hebrew                                 |
| character-sets-dir       | /usr/local/mysql/share/mysql/charsets/ |
| character_set_results    | hebrew                                 |
+--------------------------+----------------------------------------+
7 rows in set (0.00 sec)

mysql> show variables like '%coll%';
+----------------------+-------------------+
| Variable_name        | Value             |
+----------------------+-------------------+
| collation_connection | hebrew_general_ci |
| collation_database   | hebrew_general_ci |
| collation_server     | hebrew_general_ci |
+----------------------+-------------------+
3 rows in set (0.00 sec)

This produced a server compatible with current character set that I used with 4.0 -- Hebrew. Although most of the upgrade went smooth, I noticed that ENUM, and possibly SET, fields do not identify Hebrew values correctly, and display question marks (???) instead.

This would of course affect the way many applications interact with ENUM fields.

Please take care of this problem, and fix it as soon as possible.

Thanks.

How to repeat:
Create a dummy table:

CREATE TABLE dummyTable (id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, enumCheck ENUM('','ok','not-ok','à','á','â','ã','ä')) TYPE=MyISAM CHARACTER SET hebrew;

Insert few values:

INSERT INTO dummyTable (enumCheck) VALUES ('');
INSERT INTO dummyTable (enumCheck) VALUES ('ok');
INSERT INTO dummyTable (enumCheck) VALUES ('not-ok');
INSERT INTO dummyTable (enumCheck) VALUES ('à');
INSERT INTO dummyTable (enumCheck) VALUES ('á');
INSERT INTO dummyTable (enumCheck) VALUES ('â');
INSERT INTO dummyTable (enumCheck) VALUES ('ã');
INSERT INTO dummyTable (enumCheck) VALUES ('ä');

Select from table:

+----+-----------+
| id | enumCheck |
+----+-----------+
|  1 |           |
|  2 | ok        |
|  3 | not-ok    |
|  4 | ?         |
|  5 | ?         |
|  6 | ?         |
|  7 | ?         |
|  8 | ?         |
+----+-----------+
8 rows in set (0.00 sec)

Describe table:

+-----------+--------------------------------------------+------+-----+---------+----------------+
| Field     | Type                                       | Null | Key | Default | Extra          |
+-----------+--------------------------------------------+------+-----+---------+----------------+
| id        | int(10) unsigned                           |      | PRI | NULL    | auto_increment |
| enumCheck | enum('','ok','not-ok','?','?','?','?','?') | YES  |     | NULL    |                |
+-----------+--------------------------------------------+------+-----+---------+----------------+
2 rows in set (0.00 sec)

Suggested fix:
I don't know... but if I don't have this feature, many tables would just render useless because I use non-English values in ENUM() fields.
[17 Dec 2003 3:39] Sergei Golubchik
as far as I understand, this is the bug being fixed right now
Should be fixed in 4.1.2 anyway
[18 Dec 2003 2:47] Alexander Barkov
We already had another report about this bug,
and we are working on it now. It will be fixed in 4.1.2.
Thank you for reporting anyway!