diff options
author | Alexander Barkov <bar@mnogosearch.org> | 2013-10-31 14:24:24 +0400 |
---|---|---|
committer | Alexander Barkov <bar@mnogosearch.org> | 2013-10-31 14:24:24 +0400 |
commit | bd3dc54261f10f387a03ad99ce74c3824c42e462 (patch) | |
tree | 2eb1a284095b7d7bd28368bab9e229880a56fc95 /mysql-test/r/ctype_ldml.result | |
parent | eea91f633f903b8c223b7d470e4be7366cbf57c8 (diff) | |
download | mariadb-git-bd3dc54261f10f387a03ad99ce74c3824c42e462.tar.gz |
A few minor Unicode collation customization improvements were made,
which makes it possible to add more world language collations
with very complex collation rules (e.g. Myanmar):
- Weight string for a single character in a user defined collation
was erroneously limited to 7 weights (instead of 8 weights).
Added an extra element in the user-defined weight arrays,
to fit 8 non-zero weights.
- Weight string limit for contractions was made two times longer (16 weights),
which allows longer contractions without affecting the performance
of filesort.
- A user-defined collation now refuses to initialize and reports an error
in case if a weight string gets longer than 8 weights for a single character,
or longer than 16 weights for a contraction. Previously weight strings
for such characters (and contractions) were cut, so a collation
could silently start with wrong rules.
- Fixed a bug in handling rules like "&a << b" in combination with
shift-after-method="expand". The primary weight for "b" was not
correctly calculated, which erroneously made "b" primary greater than "a"
instead of primary equal to "a".
Diffstat (limited to 'mysql-test/r/ctype_ldml.result')
-rw-r--r-- | mysql-test/r/ctype_ldml.result | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/mysql-test/r/ctype_ldml.result b/mysql-test/r/ctype_ldml.result index 0373d74afb4..bd96a1f6255 100644 --- a/mysql-test/r/ctype_ldml.result +++ b/mysql-test/r/ctype_ldml.result @@ -425,6 +425,7 @@ ucs2_test_ci ucs2 358 8 ucs2_vn_ci ucs2 359 8 ucs2_5624_1 ucs2 360 8 utf8_5624_5 utf8 368 8 +utf8_5624_5_bad utf8 369 8 utf32_test_ci utf32 391 8 utf8_maxuserid_ci utf8 2047 8 show collation like '%test%'; @@ -1030,9 +1031,12 @@ INSERT INTO t1 VALUES ('A'),('B'),('C'),('D'),('E'),('F'),('G'),('H'),('I'); INSERT INTO t1 VALUES ('J'),('K'),('L'),('M'),('N'),('O'),('P'),('Q'),('R'); INSERT INTO t1 VALUES ('S'),('T'),('U'),('V'),('W'),('X'),('Y'),('Z'); INSERT INTO t1 VALUES ('AA'),('AAA'); +INSERT INTO t1 VALUES ('001'),('002'); SELECT a, HEX(WEIGHT_STRING(a)) FROM t1 ORDER BY a, LENGTH(a), BINARY(a); a HEX(WEIGHT_STRING(a)) 0 0E29 +001 0E29 +002 0E29 0z 0E290E292357 0ン 0E291E81 a 0E29233E @@ -1093,6 +1097,12 @@ AA 0E293358 AAA 0E293359 1 0E2A DROP TABLE t1; +SET NAMES utf8 COLLATE utf8_5624_5_bad; +ERROR HY000: Unknown collation: 'utf8_5624_5_bad' +SHOW WARNINGS; +Level Code Message +Error 1273 Unknown collation: 'utf8_5624_5_bad' +Warning 1273 Expansion too long: 'a\u002Daaaaaa10' # # End of WL#5624 # |