1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-30 16:24:05 +03:00

Bug#8610: The ucs2_turkish_ci collation fails with upper('i')

UPPER/LOWER now can return a string with different length.

mi_test1.c:
  Adding new arguments.
Many files:
  Changeing caseup/casedn to return a result with different
  length than argument.
sql_string.h:
  Removing unused method,
mysql_priv.h:
  Removing unused method
This commit is contained in:
bar@mysql.com
2005-06-06 16:54:15 +05:00
parent dcae1d174f
commit 2df945d87b
28 changed files with 601 additions and 106 deletions

View File

@ -2396,3 +2396,27 @@ utf8_unicode_ci 6109
utf8_unicode_ci 61
utf8_unicode_ci 6120
drop table t1;
CREATE TABLE t1 (id int, a varchar(30) character set utf8);
INSERT INTO t1 VALUES (1, _ucs2 0x01310069), (2, _ucs2 0x01310131);
INSERT INTO t1 VALUES (3, _ucs2 0x00690069), (4, _ucs2 0x01300049);
INSERT INTO t1 VALUES (5, _ucs2 0x01300130), (6, _ucs2 0x00490049);
SELECT a, length(a) la, @l:=lower(a) l, length(@l) ll, @u:=upper(a) u, length(@u) lu
FROM t1 ORDER BY id;
a la l ll u lu
ıi 3 ıi 3 II 2
ıı 4 ıı 4 II 2
ii 2 ii 2 II 2
İI 3 ii 2 İI 3
İİ 4 ii 2 İİ 4
II 2 ii 2 II 2
ALTER TABLE t1 MODIFY a VARCHAR(30) character set utf8 collate utf8_turkish_ci;
SELECT a, length(a) la, @l:=lower(a) l, length(@l) ll, @u:=upper(a) u, length(@u) lu
FROM t1 ORDER BY id;
a la l ll u lu
ıi 3 ıi 3 Iİ 3
ıı 4 ıı 4 II 2
ii 2 ii 2 İİ 4
İI 3 iı 3 İI 3
İİ 4 ii 2 İİ 4
II 2 ıı 4 II 2
DROP TABLE t1;