Bug #10945 problem with hungarian characters in latin2 charset
Submitted: 29 May 2005 20:31 Modified: 28 Jun 2005 13:39
Reporter: Attila Kluka Email Updates:
Status: Can't repeat Impact on me:
None 
Category:MySQL Server Severity:S3 (Non-critical)
Version:mysql-server-4.1.11_1 OS:FreeBSD (FreeBSD 5.4-RELEASE-p1)
Assigned to: CPU Architecture:Any

[29 May 2005 20:31] Attila Kluka
Description:
problem with hungarian characters in latin2 charset

mysql> select * from test;
+----+-----------------------+-----------------------+
| ID | test1                 | test2                 |
+----+-----------------------+-----------------------+
|  1 | árvíztűrőtükörfúrógép | árvízt?r?tükörfúrógép |
|  2 | ÁRVÍZTŰRŐTÜKÖRFÚRÓGÉP | ÁRVÍZT?R?TÜKÖRFÚRÓGÉP |
+----+-----------------------+-----------------------+
2 rows in set (0.01 sec)

How to repeat:
CREATE TABLE test (
        ID              int NOT NULL AUTO_INCREMENT PRIMARY KEY,
        test1           varchar(30) CHARSET utf8,
        test2           varchar(30) CHARSET latin2
); 

insert into test (test1, test2) VALUES ('árvíztűrőtükörfúrógép', 'árvíztűrőtükörfúrógép');

insert into test (test1, test2) VALUES ('ÁRVÍZTŰRŐTÜKÖRFÚRÓGÉP', 'ÁRVÍZTŰRŐTÜKÖRFÚRÓGÉP');

select * from test;
[30 May 2005 8:17] Attila Kluka
compile time option:
WITH_CHARSET=latin2 WITH_COLLATION=latin2_hungarian_ci

mysql> show global variables like 'c%';
+--------------------------+----------------------------------+
| Variable_name            | Value                            |
+--------------------------+----------------------------------+
| character_set_client     | latin2                           |
| character_set_connection | latin2                           |
| character_set_database   | latin2                           |
| character_set_results    | latin2                           |
| character_set_server     | latin2                           |
| character_set_system     | utf8                             |
| character_sets_dir       | /usr/local/share/mysql/charsets/ |
| collation_connection     | latin2_general_ci                |
| collation_database       | latin2_general_ci                |
| collation_server         | latin2_general_ci                |
| concurrent_insert        | ON                               |
| connect_timeout          | 5                                |
+--------------------------+----------------------------------+

shell:
LANG=hu_HU.ISO8859-2
LC_CTYPE="hu_HU.ISO8859-2"
LC_COLLATE="hu_HU.ISO8859-2"
LC_TIME="hu_HU.ISO8859-2"
LC_NUMERIC="hu_HU.ISO8859-2"
LC_MONETARY="hu_HU.ISO8859-2"
LC_MESSAGES="hu_HU.ISO8859-2"
LC_ALL=
[28 Jun 2005 13:39] Aleksey Kishkin
Hi! the only way I was able to reproduce it - to 'set names latin1' before insertion.

For example session:

mysql> delete from test;
Query OK, 2 rows affected (0.01 sec)

mysql> set names latin1;
Query OK, 0 rows affected (0.00 sec)

mysql> insert into test (test1, test2) VALUES ('ÁRVÍZTŰRŐTÜKÖRFÚRÓGÉP', 'ÁRV
RŐTÜKÖRFÚRÓGÉP');
Query OK, 1 row affected, 1 warning (0.00 sec)

mysql> select * from test;
+----+-----------------------+-----------------------+
| ID | test1                 | test2                 |
+----+-----------------------+-----------------------+
| 15 | ÁRVÍZTŰRŐTÜKÖRFÚRÓGÉP | ÁRVÍZT?R?TÜKÖRFÚRÓGÉP |
+----+-----------------------+-----------------------+
1 row in set (0.00 sec)

mysql> set names latin2;
Query OK, 0 rows affected (0.00 sec)

mysql> select * from test;
+----+-----------------------+-----------------------+
| ID | test1                 | test2                 |
+----+-----------------------+-----------------------+
| 15 | ÁRVÍZT?R?TÜKÖRFÚRÓGÉP | ÁRVÍZT?R?TÜKÖRFÚRÓGÉP |
+----+-----------------------+-----------------------+
1 row in set (0.00 sec)

but if I set names 'latin2' before insertion, I see proper results:

mysql> set names latin2;
Query OK, 0 rows affected (0.00 sec)

mysql> insert into test (test1, test2) VALUES ('ÁRVÍZTŰRŐTÜKÖRFÚRÓGÉP', 'ÁRVÍZTŰRŐTÜKÖRFÚRÓGÉP');
Query OK, 1 row affected (0.00 sec)

mysql> select * from test;
+----+-----------------------+-----------------------+
| ID | test1                 | test2                 |
+----+-----------------------+-----------------------+
| 16 | ÁRVÍZTŰRŐTÜKÖRFÚRÓGÉP | ÁRVÍZTŰRŐTÜKÖRFÚRÓGÉP |
+----+-----------------------+-----------------------+
1 row in set (0.00 sec)