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.