Details
-
Bug
-
Status: Closed (View Workflow)
-
Critical
-
Resolution: Fixed
-
10.4(EOL), 10.5, 10.6, 10.7(EOL), 10.8(EOL), 10.9(EOL), 10.10(EOL), 10.11, 11.0(EOL)
Description
ucs2_general_mysql500_ci is a MySQL-5.0.0 compatibility collations and (unlike ucs2_general_ci) sorts 'ß' after 's' in all MariaDB versions up to 10.3:
DROP TABLE IF EXISTS t1; |
CREATE TABLE t1 (a VARCHAR(32) CHARACTER SET ucs2 COLLATE ucs2_general_mysql500_ci); |
INSERT INTO t1 VALUES ('s'),('z'),(_latin1 0xDF); |
SELECT GROUP_CONCAT(a) FROM t1 GROUP BY a ORDER BY a; |
+-----------------+
|
| GROUP_CONCAT(a) |
|
+-----------------+
|
| s |
|
| z |
|
| ß |
|
+-----------------+
|
Starting from 10.4 it returns a wrong result (equal to ucs2_general_ci):
+-----------------+
|
| GROUP_CONCAT(a) |
|
+-----------------+
|
| s,ß |
|
| z |
|
+-----------------+
|
This is not expected. The compatibility collations should still provide the old MySQL-5.0.0 order.
The order was broken by:
commit a8efe7ab1f28e2219df5ae9aa88fa63c40ad1066
|
Author: Alexander Barkov <bar@mariadb.com>
|
Date: Fri Oct 19 14:20:31 2018 +0400
|
|
MDEV-17502 MDEV-17474 Change Unicode xxx_general_ci and xxx_bin collation implementation to "inline" style
|
Note, a similar collation for utf8mb3 correctly returns results in the expected order in all MariaDB versions:
DROP TABLE IF EXISTS t1; |
CREATE TABLE t1 (a VARCHAR(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_mysql500_ci); |
INSERT INTO t1 VALUES ('s'),('z'),(_latin1 0xDF); |
SELECT GROUP_CONCAT(a) FROM t1 GROUP BY a ORDER BY a; |
+-----------------+
|
| GROUP_CONCAT(a) |
|
+-----------------+
|
| s |
|
| z |
|
| ß |
|
+-----------------+
|
Attachments
Issue Links
- blocks
-
MDEV-30577 Case folding for uca1400 collations is not up to date
- Closed