diff options
author | Alexander Barkov <bar@mariadb.com> | 2023-02-17 16:20:01 +0400 |
---|---|---|
committer | Alexander Barkov <bar@mariadb.com> | 2023-02-17 17:33:27 +0400 |
commit | 7f6b648d7db895c09a6ace3b5ee62a5fb482a8e0 (patch) | |
tree | 66e727d8e65166497e68447ba659650d0cd53768 | |
parent | 345356b868d840554a8572876efc027d3ccd9842 (diff) | |
download | mariadb-git-7f6b648d7db895c09a6ace3b5ee62a5fb482a8e0.tar.gz |
MDEV-30661 UPPER() returns an empty string for U+0251 in uca1400 collations for utf8
String length growth during upper/lower conversion
in Unicode collations depends only on the underlying MY_UNICASE_INFO
used in the collation.
Maintaining a separate member CHARSET_INFO::caseup_multiply and
CHARSET_INFO::casedn_multiply duplicated this information
and caused bugs like this (when MY_UNICASE_INFO and case??_multiply
when out of sync because of incomplete CHARSET_INFO initialization).
Fix:
Changing CHARSET_INFO::caseup_multiply and CHARSET_INFO::casedn_multiply
from members to virtual functions.
The virtual functions in Unicode collations calculate case conversion
growth factors from the MY_UNICASE_INFO. This guarantees that the growth
factors are always in sync with the MY_UNICASE_INFO.
35 files changed, 507 insertions, 706 deletions
diff --git a/include/m_ctype.h b/include/m_ctype.h index 0b1cd2e0fb3..f980fd2053c 100644 --- a/include/m_ctype.h +++ b/include/m_ctype.h @@ -720,6 +720,9 @@ struct my_charset_handler_st */ my_charset_conv_wc_mb native_to_mb; my_charset_conv_wc_mb wc_to_printable; + + uint (*caseup_multiply)(CHARSET_INFO *cs); + uint (*casedn_multiply)(CHARSET_INFO *cs); }; extern MY_CHARSET_HANDLER my_charset_8bit_handler; @@ -756,8 +759,6 @@ struct charset_info_st const uchar *state_map; const uchar *ident_map; uint strxfrm_multiply; - uchar caseup_multiply; - uchar casedn_multiply; uint mbminlen; uint mbmaxlen; /* @@ -827,6 +828,16 @@ struct charset_info_st return (cset->casedn)(this, src, srclen, dst, dstlen); } + uint caseup_multiply() const + { + return (cset->caseup_multiply)(this); + } + + uint casedn_multiply() const + { + return (cset->casedn_multiply)(this); + } + size_t long10_to_str(char *dst, size_t dstlen, int radix, long int val) const { diff --git a/mysql-test/include/ctype_casefolding.inc b/mysql-test/include/ctype_casefolding.inc index 4ee402c95ad..74b2ab7650a 100644 --- a/mysql-test/include/ctype_casefolding.inc +++ b/mysql-test/include/ctype_casefolding.inc @@ -13,6 +13,14 @@ INSERT INTO case_folding (code) VALUES (0x26B), (0x271), (0x27D); + +INSERT INTO case_folding (code) VALUES +(0x0049) /* LATIN CAPITAL LETTER I */, +(0x0069) /* LATIN SMALL LETTER I */, +(0x0130) /* LATIN CAPITAL LETTER I WITH DOT ABOVE */, +(0x0131) /* LATIN SMALL LETTER DOTLESS I */ +; + UPDATE case_folding SET c=CHAR(code USING ucs2); SELECT HEX(code), HEX(LOWER(c)), HEX(UPPER(c)), c FROM case_folding; DROP TABLE case_folding; diff --git a/mysql-test/main/ctype_ldml.result b/mysql-test/main/ctype_ldml.result index efafa9dc041..a23e835d1fa 100644 --- a/mysql-test/main/ctype_ldml.result +++ b/mysql-test/main/ctype_ldml.result @@ -3068,6 +3068,12 @@ INSERT INTO case_folding (code) VALUES (0x26B), (0x271), (0x27D); +INSERT INTO case_folding (code) VALUES +(0x0049) /* LATIN CAPITAL LETTER I */, +(0x0069) /* LATIN SMALL LETTER I */, +(0x0130) /* LATIN CAPITAL LETTER I WITH DOT ABOVE */, +(0x0131) /* LATIN SMALL LETTER DOTLESS I */ +; UPDATE case_folding SET c=CHAR(code USING ucs2); SELECT HEX(code), HEX(LOWER(c)), HEX(UPPER(c)), c FROM case_folding; HEX(code) HEX(LOWER(c)) HEX(UPPER(c)) c @@ -3081,6 +3087,10 @@ HEX(code) HEX(LOWER(c)) HEX(UPPER(c)) c 26B C9AB E2B1A2 ɫ 271 C9B1 E2B1AE ɱ 27D C9BD E2B1A4 ɽ +49 69 49 I +69 69 49 i +130 69 C4B0 İ +131 C4B1 49 ı DROP TABLE case_folding; # # End of 10.3 tests @@ -3230,5 +3240,51 @@ is_520 0 is_1400 1 DROP TABLE t1; # +# MDEV-30661 UPPER() returns an empty string for U+0251 in uca1400 collations for utf8 +# +SET NAMES utf8mb4 COLLATE utf8mb4_uca1400_test01_as_ci; +CREATE OR REPLACE TABLE case_folding AS SELECT 0 AS code, SPACE(32) AS c LIMIT 0; +SHOW CREATE TABLE case_folding; +Table Create Table +case_folding CREATE TABLE `case_folding` ( + `code` int(1) NOT NULL, + `c` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_uca1400_test01_as_ci DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci +INSERT INTO case_folding (code) VALUES +(0x23A), +(0x23E), +(0x23F), +(0x240), +(0x250), +(0x251), +(0x252), +(0x26B), +(0x271), +(0x27D); +INSERT INTO case_folding (code) VALUES +(0x0049) /* LATIN CAPITAL LETTER I */, +(0x0069) /* LATIN SMALL LETTER I */, +(0x0130) /* LATIN CAPITAL LETTER I WITH DOT ABOVE */, +(0x0131) /* LATIN SMALL LETTER DOTLESS I */ +; +UPDATE case_folding SET c=CHAR(code USING ucs2); +SELECT HEX(code), HEX(LOWER(c)), HEX(UPPER(c)), c FROM case_folding; +HEX(code) HEX(LOWER(c)) HEX(UPPER(c)) c +23A E2B1A5 C8BA Ⱥ +23E E2B1A6 C8BE Ⱦ +23F C8BF E2B1BE ȿ +240 C980 E2B1BF ɀ +250 C990 E2B1AF ɐ +251 C991 E2B1AD ɑ +252 C992 E2B1B0 ɒ +26B C9AB E2B1A2 ɫ +271 C9B1 E2B1AE ɱ +27D C9BD E2B1A4 ɽ +49 69 49 I +69 69 49 i +130 69 C4B0 İ +131 C4B1 49 ı +DROP TABLE case_folding; +# # End of 10.10 tests # diff --git a/mysql-test/main/ctype_ldml.test b/mysql-test/main/ctype_ldml.test index 5ee56c3b950..6336a1d0f5f 100644 --- a/mysql-test/main/ctype_ldml.test +++ b/mysql-test/main/ctype_ldml.test @@ -698,5 +698,12 @@ ORDER BY a, HEX(a); DROP TABLE t1; --echo # +--echo # MDEV-30661 UPPER() returns an empty string for U+0251 in uca1400 collations for utf8 +--echo # + +SET NAMES utf8mb4 COLLATE utf8mb4_uca1400_test01_as_ci; +--source include/ctype_casefolding.inc + +--echo # --echo # End of 10.10 tests --echo # diff --git a/mysql-test/main/ctype_utf8_uca.result b/mysql-test/main/ctype_utf8_uca.result index e31acf8edc4..ecd2daa5272 100644 --- a/mysql-test/main/ctype_utf8_uca.result +++ b/mysql-test/main/ctype_utf8_uca.result @@ -612,6 +612,12 @@ INSERT INTO case_folding (code) VALUES (0x26B), (0x271), (0x27D); +INSERT INTO case_folding (code) VALUES +(0x0049) /* LATIN CAPITAL LETTER I */, +(0x0069) /* LATIN SMALL LETTER I */, +(0x0130) /* LATIN CAPITAL LETTER I WITH DOT ABOVE */, +(0x0131) /* LATIN SMALL LETTER DOTLESS I */ +; UPDATE case_folding SET c=CHAR(code USING ucs2); SELECT HEX(code), HEX(LOWER(c)), HEX(UPPER(c)), c FROM case_folding; HEX(code) HEX(LOWER(c)) HEX(UPPER(c)) c @@ -625,6 +631,53 @@ HEX(code) HEX(LOWER(c)) HEX(UPPER(c)) c 26B C9AB C9AB ɫ 271 C9B1 C9B1 ɱ 27D C9BD C9BD ɽ +49 69 49 I +69 69 49 i +130 69 C4B0 İ +131 C4B1 49 ı +DROP TABLE case_folding; +SET NAMES utf8mb3 COLLATE utf8mb3_turkish_ci /*Unicode-4.0 folding, with Turkish mapping for I */; +CREATE OR REPLACE TABLE case_folding AS SELECT 0 AS code, SPACE(32) AS c LIMIT 0; +SHOW CREATE TABLE case_folding; +Table Create Table +case_folding CREATE TABLE `case_folding` ( + `code` int(1) NOT NULL, + `c` varchar(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_turkish_ci DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci +INSERT INTO case_folding (code) VALUES +(0x23A), +(0x23E), +(0x23F), +(0x240), +(0x250), +(0x251), +(0x252), +(0x26B), +(0x271), +(0x27D); +INSERT INTO case_folding (code) VALUES +(0x0049) /* LATIN CAPITAL LETTER I */, +(0x0069) /* LATIN SMALL LETTER I */, +(0x0130) /* LATIN CAPITAL LETTER I WITH DOT ABOVE */, +(0x0131) /* LATIN SMALL LETTER DOTLESS I */ +; +UPDATE case_folding SET c=CHAR(code USING ucs2); +SELECT HEX(code), HEX(LOWER(c)), HEX(UPPER(c)), c FROM case_folding; +HEX(code) HEX(LOWER(c)) HEX(UPPER(c)) c +23A C8BA C8BA Ⱥ +23E C8BE C8BE Ⱦ +23F C8BF C8BF ȿ +240 C980 C980 ɀ +250 C990 C990 ɐ +251 C991 C991 ɑ +252 C992 C992 ɒ +26B C9AB C9AB ɫ +271 C9B1 C9B1 ɱ +27D C9BD C9BD ɽ +49 C4B1 49 I +69 69 C4B0 i +130 69 C4B0 İ +131 C4B1 49 ı DROP TABLE case_folding; SET NAMES utf8mb3 COLLATE utf8mb3_unicode_520_ci; CREATE OR REPLACE TABLE case_folding AS SELECT 0 AS code, SPACE(32) AS c LIMIT 0; @@ -645,6 +698,12 @@ INSERT INTO case_folding (code) VALUES (0x26B), (0x271), (0x27D); +INSERT INTO case_folding (code) VALUES +(0x0049) /* LATIN CAPITAL LETTER I */, +(0x0069) /* LATIN SMALL LETTER I */, +(0x0130) /* LATIN CAPITAL LETTER I WITH DOT ABOVE */, +(0x0131) /* LATIN SMALL LETTER DOTLESS I */ +; UPDATE case_folding SET c=CHAR(code USING ucs2); SELECT HEX(code), HEX(LOWER(c)), HEX(UPPER(c)), c FROM case_folding; HEX(code) HEX(LOWER(c)) HEX(UPPER(c)) c @@ -658,6 +717,10 @@ HEX(code) HEX(LOWER(c)) HEX(UPPER(c)) c 26B C9AB E2B1A2 ɫ 271 C9B1 E2B1AE ɱ 27D C9BD E2B1A4 ɽ +49 69 49 I +69 69 49 i +130 69 C4B0 İ +131 C4B1 49 ı DROP TABLE case_folding; SET NAMES utf8mb3 COLLATE utf8mb3_unicode_520_nopad_ci; CREATE OR REPLACE TABLE case_folding AS SELECT 0 AS code, SPACE(32) AS c LIMIT 0; @@ -678,6 +741,12 @@ INSERT INTO case_folding (code) VALUES (0x26B), (0x271), (0x27D); +INSERT INTO case_folding (code) VALUES +(0x0049) /* LATIN CAPITAL LETTER I */, +(0x0069) /* LATIN SMALL LETTER I */, +(0x0130) /* LATIN CAPITAL LETTER I WITH DOT ABOVE */, +(0x0131) /* LATIN SMALL LETTER DOTLESS I */ +; UPDATE case_folding SET c=CHAR(code USING ucs2); SELECT HEX(code), HEX(LOWER(c)), HEX(UPPER(c)), c FROM case_folding; HEX(code) HEX(LOWER(c)) HEX(UPPER(c)) c @@ -691,6 +760,10 @@ HEX(code) HEX(LOWER(c)) HEX(UPPER(c)) c 26B C9AB E2B1A2 ɫ 271 C9B1 E2B1AE ɱ 27D C9BD E2B1A4 ɽ +49 69 49 I +69 69 49 i +130 69 C4B0 İ +131 C4B1 49 ı DROP TABLE case_folding; SET NAMES utf8mb3 COLLATE utf8mb3_myanmar_ci; CREATE OR REPLACE TABLE case_folding AS SELECT 0 AS code, SPACE(32) AS c LIMIT 0; @@ -711,6 +784,12 @@ INSERT INTO case_folding (code) VALUES (0x26B), (0x271), (0x27D); +INSERT INTO case_folding (code) VALUES +(0x0049) /* LATIN CAPITAL LETTER I */, +(0x0069) /* LATIN SMALL LETTER I */, +(0x0130) /* LATIN CAPITAL LETTER I WITH DOT ABOVE */, +(0x0131) /* LATIN SMALL LETTER DOTLESS I */ +; UPDATE case_folding SET c=CHAR(code USING ucs2); SELECT HEX(code), HEX(LOWER(c)), HEX(UPPER(c)), c FROM case_folding; HEX(code) HEX(LOWER(c)) HEX(UPPER(c)) c @@ -724,6 +803,10 @@ HEX(code) HEX(LOWER(c)) HEX(UPPER(c)) c 26B C9AB E2B1A2 ɫ 271 C9B1 E2B1AE ɱ 27D C9BD E2B1A4 ɽ +49 69 49 I +69 69 49 i +130 69 C4B0 İ +131 C4B1 49 ı DROP TABLE case_folding; SET NAMES utf8mb3 COLLATE utf8mb3_thai_520_w2; CREATE OR REPLACE TABLE case_folding AS SELECT 0 AS code, SPACE(32) AS c LIMIT 0; @@ -744,6 +827,12 @@ INSERT INTO case_folding (code) VALUES (0x26B), (0x271), (0x27D); +INSERT INTO case_folding (code) VALUES +(0x0049) /* LATIN CAPITAL LETTER I */, +(0x0069) /* LATIN SMALL LETTER I */, +(0x0130) /* LATIN CAPITAL LETTER I WITH DOT ABOVE */, +(0x0131) /* LATIN SMALL LETTER DOTLESS I */ +; UPDATE case_folding SET c=CHAR(code USING ucs2); SELECT HEX(code), HEX(LOWER(c)), HEX(UPPER(c)), c FROM case_folding; HEX(code) HEX(LOWER(c)) HEX(UPPER(c)) c @@ -757,6 +846,10 @@ HEX(code) HEX(LOWER(c)) HEX(UPPER(c)) c 26B C9AB E2B1A2 ɫ 271 C9B1 E2B1AE ɱ 27D C9BD E2B1A4 ɽ +49 69 49 I +69 69 49 i +130 69 C4B0 İ +131 C4B1 49 ı DROP TABLE case_folding; # # End of 10.3 tests @@ -1533,3 +1626,55 @@ SET NAMES utf8mb3; # # End of 10.10 tests # +# +# Start of 10.10 tests +# +# +# MDEV-30661 UPPER() returns an empty string for U+0251 in uca1400 collations for utf8 +# +SET NAMES utf8mb3 COLLATE utf8mb3_uca1400_ai_ci; +CREATE OR REPLACE TABLE case_folding AS SELECT 0 AS code, SPACE(32) AS c LIMIT 0; +SHOW CREATE TABLE case_folding; +Table Create Table +case_folding CREATE TABLE `case_folding` ( + `code` int(1) NOT NULL, + `c` varchar(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_uca1400_ai_ci DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci +INSERT INTO case_folding (code) VALUES +(0x23A), +(0x23E), +(0x23F), +(0x240), +(0x250), +(0x251), +(0x252), +(0x26B), +(0x271), +(0x27D); +INSERT INTO case_folding (code) VALUES +(0x0049) /* LATIN CAPITAL LETTER I */, +(0x0069) /* LATIN SMALL LETTER I */, +(0x0130) /* LATIN CAPITAL LETTER I WITH DOT ABOVE */, +(0x0131) /* LATIN SMALL LETTER DOTLESS I */ +; +UPDATE case_folding SET c=CHAR(code USING ucs2); +SELECT HEX(code), HEX(LOWER(c)), HEX(UPPER(c)), c FROM case_folding; +HEX(code) HEX(LOWER(c)) HEX(UPPER(c)) c +23A E2B1A5 C8BA Ⱥ +23E E2B1A6 C8BE Ⱦ +23F C8BF E2B1BE ȿ +240 C980 E2B1BF ɀ +250 C990 E2B1AF ɐ +251 C991 E2B1AD ɑ +252 C992 E2B1B0 ɒ +26B C9AB E2B1A2 ɫ +271 C9B1 E2B1AE ɱ +27D C9BD E2B1A4 ɽ +49 69 49 I +69 69 49 i +130 69 C4B0 İ +131 C4B1 49 ı +DROP TABLE case_folding; +# +# End of 10.10 tests +# diff --git a/mysql-test/main/ctype_utf8_uca.test b/mysql-test/main/ctype_utf8_uca.test index 946649417ae..5abf9192511 100644 --- a/mysql-test/main/ctype_utf8_uca.test +++ b/mysql-test/main/ctype_utf8_uca.test @@ -34,6 +34,9 @@ SET NAMES utf8 COLLATE utf8_unicode_nopad_ci; SET NAMES utf8mb3 COLLATE utf8mb3_unicode_ci /*Unicode-4.0 folding*/; --source include/ctype_casefolding.inc +SET NAMES utf8mb3 COLLATE utf8mb3_turkish_ci /*Unicode-4.0 folding, with Turkish mapping for I */; +--source include/ctype_casefolding.inc + SET NAMES utf8mb3 COLLATE utf8mb3_unicode_520_ci; --source include/ctype_casefolding.inc @@ -79,3 +82,19 @@ SET NAMES utf8mb3; --echo # --echo # End of 10.10 tests --echo # + + +--echo # +--echo # Start of 10.10 tests +--echo # + +--echo # +--echo # MDEV-30661 UPPER() returns an empty string for U+0251 in uca1400 collations for utf8 +--echo # + +SET NAMES utf8mb3 COLLATE utf8mb3_uca1400_ai_ci; +--source include/ctype_casefolding.inc + +--echo # +--echo # End of 10.10 tests +--echo # diff --git a/mysql-test/main/ctype_utf8mb4_uca.result b/mysql-test/main/ctype_utf8mb4_uca.result index 195c47e0360..42de45c98a3 100644 --- a/mysql-test/main/ctype_utf8mb4_uca.result +++ b/mysql-test/main/ctype_utf8mb4_uca.result @@ -6630,6 +6630,55 @@ INSERT INTO case_folding (code) VALUES (0x26B), (0x271), (0x27D); +INSERT INTO case_folding (code) VALUES +(0x0049) /* LATIN CAPITAL LETTER I */, +(0x0069) /* LATIN SMALL LETTER I */, +(0x0130) /* LATIN CAPITAL LETTER I WITH DOT ABOVE */, +(0x0131) /* LATIN SMALL LETTER DOTLESS I */ +; +UPDATE case_folding SET c=CHAR(code USING ucs2); +SELECT HEX(code), HEX(LOWER(c)), HEX(UPPER(c)), c FROM case_folding; +HEX(code) HEX(LOWER(c)) HEX(UPPER(c)) c +23A C8BA C8BA Ⱥ +23E C8BE C8BE Ⱦ +23F C8BF C8BF ȿ +240 C980 C980 ɀ +250 C990 C990 ɐ +251 C991 C991 ɑ +252 C992 C992 ɒ +26B C9AB C9AB ɫ +271 C9B1 C9B1 ɱ +27D C9BD C9BD ɽ +49 69 49 I +69 69 49 i +130 69 C4B0 İ +131 C4B1 49 ı +DROP TABLE case_folding; +SET NAMES utf8mb4 COLLATE utf8mb4_turkish_ci /*Unicode-4.0 folding with Turkish mapping for I */; +CREATE OR REPLACE TABLE case_folding AS SELECT 0 AS code, SPACE(32) AS c LIMIT 0; +SHOW CREATE TABLE case_folding; +Table Create Table +case_folding CREATE TABLE `case_folding` ( + `code` int(1) NOT NULL, + `c` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_turkish_ci DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci +INSERT INTO case_folding (code) VALUES +(0x23A), +(0x23E), +(0x23F), +(0x240), +(0x250), +(0x251), +(0x252), +(0x26B), +(0x271), +(0x27D); +INSERT INTO case_folding (code) VALUES +(0x0049) /* LATIN CAPITAL LETTER I */, +(0x0069) /* LATIN SMALL LETTER I */, +(0x0130) /* LATIN CAPITAL LETTER I WITH DOT ABOVE */, +(0x0131) /* LATIN SMALL LETTER DOTLESS I */ +; UPDATE case_folding SET c=CHAR(code USING ucs2); SELECT HEX(code), HEX(LOWER(c)), HEX(UPPER(c)), c FROM case_folding; HEX(code) HEX(LOWER(c)) HEX(UPPER(c)) c @@ -6643,6 +6692,10 @@ HEX(code) HEX(LOWER(c)) HEX(UPPER(c)) c 26B C9AB C9AB ɫ 271 C9B1 C9B1 ɱ 27D C9BD C9BD ɽ +49 C4B1 49 I +69 69 C4B0 i +130 69 C4B0 İ +131 C4B1 49 ı DROP TABLE case_folding; SET NAMES utf8mb4 COLLATE utf8mb4_unicode_520_ci; CREATE OR REPLACE TABLE case_folding AS SELECT 0 AS code, SPACE(32) AS c LIMIT 0; @@ -6663,6 +6716,12 @@ INSERT INTO case_folding (code) VALUES (0x26B), (0x271), (0x27D); +INSERT INTO case_folding (code) VALUES +(0x0049) /* LATIN CAPITAL LETTER I */, +(0x0069) /* LATIN SMALL LETTER I */, +(0x0130) /* LATIN CAPITAL LETTER I WITH DOT ABOVE */, +(0x0131) /* LATIN SMALL LETTER DOTLESS I */ +; UPDATE case_folding SET c=CHAR(code USING ucs2); SELECT HEX(code), HEX(LOWER(c)), HEX(UPPER(c)), c FROM case_folding; HEX(code) HEX(LOWER(c)) HEX(UPPER(c)) c @@ -6676,6 +6735,10 @@ HEX(code) HEX(LOWER(c)) HEX(UPPER(c)) c 26B C9AB E2B1A2 ɫ 271 C9B1 E2B1AE ɱ 27D C9BD E2B1A4 ɽ +49 69 49 I +69 69 49 i +130 69 C4B0 İ +131 C4B1 49 ı DROP TABLE case_folding; SET NAMES utf8mb4 COLLATE utf8mb4_unicode_520_nopad_ci; CREATE OR REPLACE TABLE case_folding AS SELECT 0 AS code, SPACE(32) AS c LIMIT 0; @@ -6696,6 +6759,12 @@ INSERT INTO case_folding (code) VALUES (0x26B), (0x271), (0x27D); +INSERT INTO case_folding (code) VALUES +(0x0049) /* LATIN CAPITAL LETTER I */, +(0x0069) /* LATIN SMALL LETTER I */, +(0x0130) /* LATIN CAPITAL LETTER I WITH DOT ABOVE */, +(0x0131) /* LATIN SMALL LETTER DOTLESS I */ +; UPDATE case_folding SET c=CHAR(code USING ucs2); SELECT HEX(code), HEX(LOWER(c)), HEX(UPPER(c)), c FROM case_folding; HEX(code) HEX(LOWER(c)) HEX(UPPER(c)) c @@ -6709,6 +6778,10 @@ HEX(code) HEX(LOWER(c)) HEX(UPPER(c)) c 26B C9AB E2B1A2 ɫ 271 C9B1 E2B1AE ɱ 27D C9BD E2B1A4 ɽ +49 69 49 I +69 69 49 i +130 69 C4B0 İ +131 C4B1 49 ı DROP TABLE case_folding; SET NAMES utf8mb4 COLLATE utf8mb4_myanmar_ci; CREATE OR REPLACE TABLE case_folding AS SELECT 0 AS code, SPACE(32) AS c LIMIT 0; @@ -6729,6 +6802,12 @@ INSERT INTO case_folding (code) VALUES (0x26B), (0x271), (0x27D); +INSERT INTO case_folding (code) VALUES +(0x0049) /* LATIN CAPITAL LETTER I */, +(0x0069) /* LATIN SMALL LETTER I */, +(0x0130) /* LATIN CAPITAL LETTER I WITH DOT ABOVE */, +(0x0131) /* LATIN SMALL LETTER DOTLESS I */ +; UPDATE case_folding SET c=CHAR(code USING ucs2); SELECT HEX(code), HEX(LOWER(c)), HEX(UPPER(c)), c FROM case_folding; HEX(code) HEX(LOWER(c)) HEX(UPPER(c)) c @@ -6742,6 +6821,10 @@ HEX(code) HEX(LOWER(c)) HEX(UPPER(c)) c 26B C9AB E2B1A2 ɫ 271 C9B1 E2B1AE ɱ 27D C9BD E2B1A4 ɽ +49 69 49 I +69 69 49 i +130 69 C4B0 İ +131 C4B1 49 ı DROP TABLE case_folding; SET NAMES utf8mb4 COLLATE utf8mb4_thai_520_w2; CREATE OR REPLACE TABLE case_folding AS SELECT 0 AS code, SPACE(32) AS c LIMIT 0; @@ -6762,6 +6845,12 @@ INSERT INTO case_folding (code) VALUES (0x26B), (0x271), (0x27D); +INSERT INTO case_folding (code) VALUES +(0x0049) /* LATIN CAPITAL LETTER I */, +(0x0069) /* LATIN SMALL LETTER I */, +(0x0130) /* LATIN CAPITAL LETTER I WITH DOT ABOVE */, +(0x0131) /* LATIN SMALL LETTER DOTLESS I */ +; UPDATE case_folding SET c=CHAR(code USING ucs2); SELECT HEX(code), HEX(LOWER(c)), HEX(UPPER(c)), c FROM case_folding; HEX(code) HEX(LOWER(c)) HEX(UPPER(c)) c @@ -6775,6 +6864,10 @@ HEX(code) HEX(LOWER(c)) HEX(UPPER(c)) c 26B C9AB E2B1A2 ɫ 271 C9B1 E2B1AE ɱ 27D C9BD E2B1A4 ɽ +49 69 49 I +69 69 49 i +130 69 C4B0 İ +131 C4B1 49 ı DROP TABLE case_folding; # # End of 10.3 tests @@ -11379,5 +11472,51 @@ DROP TABLE t1; DROP PROCEDURE exec_verbose; DROP PROCEDURE test_styles; # +# MDEV-30661 UPPER() returns an empty string for U+0251 in uca1400 collations for utf8 +# +SET NAMES utf8mb4 COLLATE utf8mb4_uca1400_ai_ci; +CREATE OR REPLACE TABLE case_folding AS SELECT 0 AS code, SPACE(32) AS c LIMIT 0; +SHOW CREATE TABLE case_folding; +Table Create Table +case_folding CREATE TABLE `case_folding` ( + `code` int(1) NOT NULL, + `c` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_uca1400_ai_ci DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci +INSERT INTO case_folding (code) VALUES +(0x23A), +(0x23E), +(0x23F), +(0x240), +(0x250), +(0x251), +(0x252), +(0x26B), +(0x271), +(0x27D); +INSERT INTO case_folding (code) VALUES +(0x0049) /* LATIN CAPITAL LETTER I */, +(0x0069) /* LATIN SMALL LETTER I */, +(0x0130) /* LATIN CAPITAL LETTER I WITH DOT ABOVE */, +(0x0131) /* LATIN SMALL LETTER DOTLESS I */ +; +UPDATE case_folding SET c=CHAR(code USING ucs2); +SELECT HEX(code), HEX(LOWER(c)), HEX(UPPER(c)), c FROM case_folding; +HEX(code) HEX(LOWER(c)) HEX(UPPER(c)) c +23A E2B1A5 C8BA Ⱥ +23E E2B1A6 C8BE Ⱦ +23F C8BF E2B1BE ȿ +240 C980 E2B1BF ɀ +250 C990 E2B1AF ɐ +251 C991 E2B1AD ɑ +252 C992 E2B1B0 ɒ +26B C9AB E2B1A2 ɫ +271 C9B1 E2B1AE ɱ +27D C9BD E2B1A4 ɽ +49 69 49 I +69 69 49 i +130 69 C4B0 İ +131 C4B1 49 ı +DROP TABLE case_folding; +# # End of 10.10 tests # diff --git a/mysql-test/main/ctype_utf8mb4_uca.test b/mysql-test/main/ctype_utf8mb4_uca.test index b4cfc910336..3f428447cc9 100644 --- a/mysql-test/main/ctype_utf8mb4_uca.test +++ b/mysql-test/main/ctype_utf8mb4_uca.test @@ -121,6 +121,9 @@ SET NAMES utf8mb4; SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci /*Unicode-4.0 folding*/; --source include/ctype_casefolding.inc +SET NAMES utf8mb4 COLLATE utf8mb4_turkish_ci /*Unicode-4.0 folding with Turkish mapping for I */; +--source include/ctype_casefolding.inc + SET NAMES utf8mb4 COLLATE utf8mb4_unicode_520_ci; --source include/ctype_casefolding.inc @@ -427,5 +430,12 @@ DROP PROCEDURE exec_verbose; DROP PROCEDURE test_styles; --echo # +--echo # MDEV-30661 UPPER() returns an empty string for U+0251 in uca1400 collations for utf8 +--echo # + +SET NAMES utf8mb4 COLLATE utf8mb4_uca1400_ai_ci; +--source include/ctype_casefolding.inc + +--echo # --echo # End of 10.10 tests --echo # diff --git a/mysys/charset.c b/mysys/charset.c index 9a049689dce..67abfe628a2 100644 --- a/mysys/charset.c +++ b/mysys/charset.c @@ -308,8 +308,6 @@ copy_uca_collation(struct charset_info_st *to, CHARSET_INFO *from, to->max_sort_char= from->max_sort_char; to->mbminlen= from->mbminlen; to->mbmaxlen= from->mbmaxlen; - to->caseup_multiply= from->caseup_multiply; - to->casedn_multiply= from->casedn_multiply; to->state|= MY_CS_AVAILABLE | MY_CS_LOADED | MY_CS_STRNXFRM | MY_CS_UNICODE; } @@ -359,7 +357,6 @@ static int add_collation(struct charset_info_st *cs) if (cs_copy_data(newcs,cs)) return MY_XML_ERROR; - newcs->caseup_multiply= newcs->casedn_multiply= 1; newcs->levels_for_order= 1; if (!strcmp(cs->cs_name.str,"ucs2") ) diff --git a/sql/item_strfunc.cc b/sql/item_strfunc.cc index eb9e167ca74..b38d7086548 100644 --- a/sql/item_strfunc.cc +++ b/sql/item_strfunc.cc @@ -1830,7 +1830,7 @@ bool Item_func_lcase::fix_length_and_dec(THD *thd) if (agg_arg_charsets_for_string_result(collation, args, 1)) return TRUE; DBUG_ASSERT(collation.collation != NULL); - multiply= collation.collation->casedn_multiply; + multiply= collation.collation->casedn_multiply(); converter= collation.collation->cset->casedn; fix_char_length_ulonglong((ulonglong) args[0]->max_char_length() * multiply); return FALSE; @@ -1841,7 +1841,7 @@ bool Item_func_ucase::fix_length_and_dec(THD *thd) if (agg_arg_charsets_for_string_result(collation, args, 1)) return TRUE; DBUG_ASSERT(collation.collation != NULL); - multiply= collation.collation->caseup_multiply; + multiply= collation.collation->caseup_multiply(); converter= collation.collation->cset->caseup; fix_char_length_ulonglong((ulonglong) args[0]->max_char_length() * multiply); return FALSE; diff --git a/storage/innobase/fts/fts0fts.cc b/storage/innobase/fts/fts0fts.cc index 5744283f925..297406c64bb 100644 --- a/storage/innobase/fts/fts0fts.cc +++ b/storage/innobase/fts/fts0fts.cc @@ -4278,7 +4278,7 @@ fts_add_token( t_str.f_n_char = str.f_n_char; - t_str.f_len = str.f_len * result_doc->charset->casedn_multiply + 1; + t_str.f_len = str.f_len * result_doc->charset->casedn_multiply() + 1; t_str.f_str = static_cast<byte*>( mem_heap_alloc(heap, t_str.f_len)); diff --git a/storage/innobase/fts/fts0que.cc b/storage/innobase/fts/fts0que.cc index 4407224a24d..9c92a1171cf 100644 --- a/storage/innobase/fts/fts0que.cc +++ b/storage/innobase/fts/fts0que.cc @@ -4043,7 +4043,7 @@ fts_query( /* Convert the query string to lower case before parsing. We own the ut_malloc'ed result and so remember to free it before return. */ - lc_query_str_len = query_len * charset->casedn_multiply + 1; + lc_query_str_len = query_len * charset->casedn_multiply() + 1; lc_query_str = static_cast<byte*>(ut_malloc_nokey(lc_query_str_len)); /* For binary collations, a case sensitive search is diff --git a/storage/innobase/handler/ha_innodb.cc b/storage/innobase/handler/ha_innodb.cc index c4bde282af9..f42a9b7853f 100644 --- a/storage/innobase/handler/ha_innodb.cc +++ b/storage/innobase/handler/ha_innodb.cc @@ -6489,7 +6489,7 @@ innobase_fts_casedn_str( char* dst, /*!< in: buffer for result string */ size_t dst_len)/*!< in: buffer size */ { - if (cs->casedn_multiply == 1) { + if (cs->casedn_multiply() == 1) { memcpy(dst, src, src_len); dst[src_len] = 0; my_casedn_str(cs, dst); diff --git a/strings/conf_to_src.c b/strings/conf_to_src.c index 469389dc76b..b4999ef7278 100644 --- a/strings/conf_to_src.c +++ b/strings/conf_to_src.c @@ -399,8 +399,6 @@ void dispcset(FILE *f,CHARSET_INFO *cs) fprintf(f," NULL, /* state map */\n"); fprintf(f," NULL, /* ident map */\n"); fprintf(f," 1, /* strxfrm_multiply*/\n"); - fprintf(f," 1, /* caseup_multiply*/\n"); - fprintf(f," 1, /* casedn_multiply*/\n"); fprintf(f," 1, /* mbminlen */\n"); fprintf(f," 1, /* mbmaxlen */\n"); fprintf(f," 0, /* min_sort_char */\n"); diff --git a/strings/ctype-big5.c b/strings/ctype-big5.c index 68d568832f8..542b74c9758 100644 --- a/strings/ctype-big5.c +++ b/strings/ctype-big5.c @@ -6826,7 +6826,9 @@ static MY_CHARSET_HANDLER my_charset_big5_handler= my_well_formed_char_length_big5, my_copy_fix_mb, my_native_to_mb_big5, - my_wc_to_printable_generic + my_wc_to_printable_generic, + my_casefold_multiply_1, + my_casefold_multiply_1 }; struct charset_info_st my_charset_big5_chinese_ci= @@ -6848,8 +6850,6 @@ struct charset_info_st my_charset_big5_chinese_ci= NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 2, /* mbmaxlen */ 0, /* min_sort_char */ @@ -6881,8 +6881,6 @@ struct charset_info_st my_charset_big5_bin= NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 2, /* mbmaxlen */ 0, /* min_sort_char */ @@ -6914,8 +6912,6 @@ struct charset_info_st my_charset_big5_chinese_nopad_ci= NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 2, /* mbmaxlen */ 0, /* min_sort_char */ @@ -6947,8 +6943,6 @@ struct charset_info_st my_charset_big5_nopad_bin= NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 2, /* mbmaxlen */ 0, /* min_sort_char */ diff --git a/strings/ctype-bin.c b/strings/ctype-bin.c index 7ec733c521a..0fec5e300ea 100644 --- a/strings/ctype-bin.c +++ b/strings/ctype-bin.c @@ -601,7 +601,9 @@ static MY_CHARSET_HANDLER my_charset_handler= my_well_formed_char_length_8bit, my_copy_8bit, my_wc_mb_bin, - my_wc_to_printable_generic + my_wc_to_printable_generic, + my_casefold_multiply_1, + my_casefold_multiply_1 }; @@ -624,8 +626,6 @@ struct charset_info_st my_charset_bin = NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ diff --git a/strings/ctype-cp932.c b/strings/ctype-cp932.c index 0a075c17c2d..b48985aeb40 100644 --- a/strings/ctype-cp932.c +++ b/strings/ctype-cp932.c @@ -34783,7 +34783,9 @@ static MY_CHARSET_HANDLER my_charset_handler= my_well_formed_char_length_cp932, my_copy_fix_mb, my_native_to_mb_cp932, - my_wc_to_printable_generic + my_wc_to_printable_generic, + my_casefold_multiply_1, + my_casefold_multiply_1 }; @@ -34806,8 +34808,6 @@ struct charset_info_st my_charset_cp932_japanese_ci= NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 2, /* mbmaxlen */ 0, /* min_sort_char */ @@ -34838,8 +34838,6 @@ struct charset_info_st my_charset_cp932_bin= NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 2, /* mbmaxlen */ 0, /* min_sort_char */ @@ -34871,8 +34869,6 @@ struct charset_info_st my_charset_cp932_japanese_nopad_ci= NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 2, /* mbmaxlen */ 0, /* min_sort_char */ @@ -34903,8 +34899,6 @@ struct charset_info_st my_charset_cp932_nopad_bin= NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 2, /* mbmaxlen */ 0, /* min_sort_char */ diff --git a/strings/ctype-czech.c b/strings/ctype-czech.c index 89eff459215..34124294a1c 100644 --- a/strings/ctype-czech.c +++ b/strings/ctype-czech.c @@ -621,8 +621,6 @@ struct charset_info_st my_charset_latin2_czech_cs = NULL, /* state_map */ NULL, /* ident_map */ 4, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ diff --git a/strings/ctype-euc_kr.c b/strings/ctype-euc_kr.c index 91ffb03da74..0cfb53f01a1 100644 --- a/strings/ctype-euc_kr.c +++ b/strings/ctype-euc_kr.c @@ -10073,7 +10073,9 @@ static MY_CHARSET_HANDLER my_charset_handler= my_well_formed_char_length_euckr, my_copy_fix_mb, my_native_to_mb_euckr, - my_wc_to_printable_generic + my_wc_to_printable_generic, + my_casefold_multiply_1, + my_casefold_multiply_1 }; @@ -10096,8 +10098,6 @@ struct charset_info_st my_charset_euckr_korean_ci= NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 2, /* mbmaxlen */ 0, /* min_sort_char */ @@ -10129,8 +10129,6 @@ struct charset_info_st my_charset_euckr_bin= NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 2, /* mbmaxlen */ 0, /* min_sort_char */ @@ -10162,8 +10160,6 @@ struct charset_info_st my_charset_euckr_korean_nopad_ci= NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 2, /* mbmaxlen */ 0, /* min_sort_char */ @@ -10195,8 +10191,6 @@ struct charset_info_st my_charset_euckr_nopad_bin= NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 2, /* mbmaxlen */ 0, /* min_sort_char */ diff --git a/strings/ctype-eucjpms.c b/strings/ctype-eucjpms.c index 4c2fd86275e..600d62e9319 100644 --- a/strings/ctype-eucjpms.c +++ b/strings/ctype-eucjpms.c @@ -67611,7 +67611,9 @@ static MY_CHARSET_HANDLER my_charset_handler= my_well_formed_char_length_eucjpms, my_copy_fix_mb, my_native_to_mb_eucjpms, - my_wc_to_printable_generic + my_wc_to_printable_generic, + my_casefold_multiply_1, + my_casefold_multiply_2 }; @@ -67635,8 +67637,6 @@ struct charset_info_st my_charset_eucjpms_japanese_ci= NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 2, /* casedn_multiply */ 1, /* mbminlen */ 3, /* mbmaxlen */ 0, /* min_sort_char */ @@ -67668,8 +67668,6 @@ struct charset_info_st my_charset_eucjpms_bin= NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 2, /* casedn_multiply */ 1, /* mbminlen */ 3, /* mbmaxlen */ 0, /* min_sort_char */ @@ -67701,8 +67699,6 @@ struct charset_info_st my_charset_eucjpms_japanese_nopad_ci= NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 2, /* casedn_multiply */ 1, /* mbminlen */ 3, /* mbmaxlen */ 0, /* min_sort_char */ @@ -67734,8 +67730,6 @@ struct charset_info_st my_charset_eucjpms_nopad_bin= NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 2, /* casedn_multiply */ 1, /* mbminlen */ 3, /* mbmaxlen */ 0, /* min_sort_char */ diff --git a/strings/ctype-extra.c b/strings/ctype-extra.c index 641bd4085a5..00409f8bc15 100644 --- a/strings/ctype-extra.c +++ b/strings/ctype-extra.c @@ -3693,8 +3693,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -3726,8 +3724,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -3759,8 +3755,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -3792,8 +3786,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -3825,8 +3817,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -3858,8 +3848,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -3891,8 +3879,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -3924,8 +3910,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -3957,8 +3941,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -3990,8 +3972,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -4023,8 +4003,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -4056,8 +4034,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -4089,8 +4065,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -4122,8 +4096,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -4155,8 +4127,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -4188,8 +4158,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -4221,8 +4189,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -4254,8 +4220,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -4287,8 +4251,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -4320,8 +4282,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -4353,8 +4313,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -4386,8 +4344,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -4419,8 +4375,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -4452,8 +4406,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -4485,8 +4437,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -4518,8 +4468,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -4551,8 +4499,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -4584,8 +4530,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -4617,8 +4561,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -4650,8 +4592,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -4683,8 +4623,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -4716,8 +4654,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -4749,8 +4685,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -4782,8 +4716,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -4815,8 +4747,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -4848,8 +4778,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -4881,8 +4809,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -4914,8 +4840,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -4947,8 +4871,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -4980,8 +4902,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -5013,8 +4933,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -5046,8 +4964,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -5079,8 +4995,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -5112,8 +5026,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -5145,8 +5057,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -5178,8 +5088,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -5211,8 +5119,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -5244,8 +5150,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -5277,8 +5181,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -5310,8 +5212,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -5343,8 +5243,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -5376,8 +5274,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -5409,8 +5305,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -5442,8 +5336,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -5475,8 +5367,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -5508,8 +5398,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -5541,8 +5429,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -5574,8 +5460,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -5607,8 +5491,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -5640,8 +5522,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -5673,8 +5553,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -5706,8 +5584,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -5739,8 +5615,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -5772,8 +5646,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -5805,8 +5677,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -5838,8 +5708,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -5871,8 +5739,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -5904,8 +5770,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -5937,8 +5801,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -5970,8 +5832,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -6003,8 +5863,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -6036,8 +5894,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -6069,8 +5925,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -6102,8 +5956,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -6135,8 +5987,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -6168,8 +6018,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -6201,8 +6049,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -6234,8 +6080,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -6267,8 +6111,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -6300,8 +6142,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -6333,8 +6173,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -6366,8 +6204,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -6399,8 +6235,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -6432,8 +6266,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -6465,8 +6297,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -6498,8 +6328,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -6531,8 +6359,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -6564,8 +6390,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -6597,8 +6421,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -6630,8 +6452,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -6663,8 +6483,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -6696,8 +6514,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -6729,8 +6545,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -6762,8 +6576,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -6795,8 +6607,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -6828,8 +6638,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -6861,8 +6669,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -6894,8 +6700,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -6927,8 +6731,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -6960,8 +6762,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -6993,8 +6793,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -7026,8 +6824,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -7059,8 +6855,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -7092,8 +6886,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -7125,8 +6917,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -7158,8 +6948,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -7191,8 +6979,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -7223,8 +7009,6 @@ struct charset_info_st compiled_charsets[] = { NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ - 1, /* caseup_multiply*/ - 1, /* casedn_multiply*/ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ diff --git a/strings/ctype-gb2312.c b/strings/ctype-gb2312.c index 9fbc0ab70e2..b77fb9014d8 100644 --- a/strings/ctype-gb2312.c +++ b/strings/ctype-gb2312.c @@ -6477,7 +6477,9 @@ static MY_CHARSET_HANDLER my_charset_handler= my_well_formed_char_length_gb2312, my_copy_fix_mb, my_native_to_mb_gb2312, - my_wc_to_printable_generic + my_wc_to_printable_generic, + my_casefold_multiply_1, + my_casefold_multiply_1 }; @@ -6500,8 +6502,6 @@ struct charset_info_st my_charset_gb2312_chinese_ci= NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 2, /* mbmaxlen */ 0, /* min_sort_char */ @@ -6533,8 +6533,6 @@ struct charset_info_st my_charset_gb2312_bin= NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 2, /* mbmaxlen */ 0, /* min_sort_char */ @@ -6566,8 +6564,6 @@ struct charset_info_st my_charset_gb2312_chinese_nopad_ci= NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 2, /* mbmaxlen */ 0, /* min_sort_char */ @@ -6599,8 +6595,6 @@ struct charset_info_st my_charset_gb2312_nopad_bin= NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 2, /* mbmaxlen */ 0, /* min_sort_char */ diff --git a/strings/ctype-gbk.c b/strings/ctype-gbk.c index 863ae10cfad..af259cbcdf6 100644 --- a/strings/ctype-gbk.c +++ b/strings/ctype-gbk.c @@ -10758,7 +10758,9 @@ static MY_CHARSET_HANDLER my_charset_handler= my_well_formed_char_length_gbk, my_copy_fix_mb, my_native_to_mb_gbk, - my_wc_to_printable_generic + my_wc_to_printable_generic, + my_casefold_multiply_1, + my_casefold_multiply_1 }; @@ -10781,8 +10783,6 @@ struct charset_info_st my_charset_gbk_chinese_ci= NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 2, /* mbmaxlen */ 0, /* min_sort_char */ @@ -10813,8 +10813,6 @@ struct charset_info_st my_charset_gbk_bin= NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 2, /* mbmaxlen */ 0, /* min_sort_char */ @@ -10846,8 +10844,6 @@ struct charset_info_st my_charset_gbk_chinese_nopad_ci= NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 2, /* mbmaxlen */ 0, /* min_sort_char */ @@ -10878,8 +10874,6 @@ struct charset_info_st my_charset_gbk_nopad_bin= NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 2, /* mbmaxlen */ 0, /* min_sort_char */ diff --git a/strings/ctype-latin1.c b/strings/ctype-latin1.c index ce2e84666bc..6c569c1639f 100644 --- a/strings/ctype-latin1.c +++ b/strings/ctype-latin1.c @@ -427,7 +427,9 @@ static MY_CHARSET_HANDLER my_charset_handler= my_well_formed_char_length_8bit, my_copy_8bit, my_wc_mb_bin, /* native_to_mb */ - my_wc_to_printable_generic + my_wc_to_printable_generic, + my_casefold_multiply_1, + my_casefold_multiply_1 }; @@ -450,8 +452,6 @@ struct charset_info_st my_charset_latin1= NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -483,8 +483,6 @@ struct charset_info_st my_charset_latin1_nopad= NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -766,8 +764,6 @@ struct charset_info_st my_charset_latin1_german2_ci= NULL, /* state_map */ NULL, /* ident_map */ 2, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -799,8 +795,6 @@ struct charset_info_st my_charset_latin1_bin= NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -832,8 +826,6 @@ struct charset_info_st my_charset_latin1_nopad_bin= NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ diff --git a/strings/ctype-mb.c b/strings/ctype-mb.c index a5951e31906..74fb2d414c5 100644 --- a/strings/ctype-mb.c +++ b/strings/ctype-mb.c @@ -125,8 +125,8 @@ size_t my_casedn_mb(CHARSET_INFO * cs, const char *src, size_t srclen, char *dst, size_t dstlen) { - DBUG_ASSERT(dstlen >= srclen * cs->casedn_multiply); - DBUG_ASSERT(src != dst || cs->casedn_multiply == 1); + DBUG_ASSERT(dstlen >= srclen * cs->cset->casedn_multiply(cs)); + DBUG_ASSERT(src != dst || cs->cset->casedn_multiply(cs) == 1); return my_casefold_mb(cs, src, srclen, dst, dstlen, cs->to_lower, 0); } @@ -135,8 +135,8 @@ size_t my_caseup_mb(CHARSET_INFO * cs, const char *src, size_t srclen, char *dst, size_t dstlen) { - DBUG_ASSERT(dstlen >= srclen * cs->caseup_multiply); - DBUG_ASSERT(src != dst || cs->caseup_multiply == 1); + DBUG_ASSERT(dstlen >= srclen * cs->cset->caseup_multiply(cs)); + DBUG_ASSERT(src != dst || cs->cset->caseup_multiply(cs) == 1); return my_casefold_mb(cs, src, srclen, dst, dstlen, cs->to_upper, 1); } diff --git a/strings/ctype-simple.c b/strings/ctype-simple.c index 28405409e2d..42372e3b13c 100644 --- a/strings/ctype-simple.c +++ b/strings/ctype-simple.c @@ -1486,8 +1486,6 @@ static my_bool my_cset_init_8bit(struct charset_info_st *cs, MY_CHARSET_LOADER *loader) { cs->state|= my_8bit_charset_flags_from_data(cs); - cs->caseup_multiply= 1; - cs->casedn_multiply= 1; cs->pad_char= ' '; if (!cs->to_lower || !cs->to_upper || !cs->m_ctype || !cs->tab_to_uni) return TRUE; @@ -2147,7 +2145,9 @@ MY_CHARSET_HANDLER my_charset_8bit_handler= my_well_formed_char_length_8bit, my_copy_8bit, my_wc_mb_bin, /* native_to_mb */ - my_wc_to_printable_8bit + my_wc_to_printable_8bit, + my_casefold_multiply_1, + my_casefold_multiply_1 }; MY_COLLATION_HANDLER my_collation_8bit_simple_ci_handler = diff --git a/strings/ctype-sjis.c b/strings/ctype-sjis.c index 7a5175142de..1b3c9d8da36 100644 --- a/strings/ctype-sjis.c +++ b/strings/ctype-sjis.c @@ -34171,7 +34171,9 @@ static MY_CHARSET_HANDLER my_charset_handler= my_well_formed_char_length_sjis, my_copy_fix_mb, my_native_to_mb_sjis, - my_wc_to_printable_sjis + my_wc_to_printable_sjis, + my_casefold_multiply_1, + my_casefold_multiply_1 }; @@ -34194,8 +34196,6 @@ struct charset_info_st my_charset_sjis_japanese_ci= NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 2, /* mbmaxlen */ 0, /* min_sort_char */ @@ -34226,8 +34226,6 @@ struct charset_info_st my_charset_sjis_bin= NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 2, /* mbmaxlen */ 0, /* min_sort_char */ @@ -34259,8 +34257,6 @@ struct charset_info_st my_charset_sjis_japanese_nopad_ci= NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 2, /* mbmaxlen */ 0, /* min_sort_char */ @@ -34291,8 +34287,6 @@ struct charset_info_st my_charset_sjis_nopad_bin= NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 2, /* mbmaxlen */ 0, /* min_sort_char */ diff --git a/strings/ctype-tis620.c b/strings/ctype-tis620.c index 4c75a7cf60a..f3f3c9bce92 100644 --- a/strings/ctype-tis620.c +++ b/strings/ctype-tis620.c @@ -933,7 +933,9 @@ static MY_CHARSET_HANDLER my_charset_handler= my_well_formed_char_length_8bit, my_copy_8bit, my_wc_mb_bin, /* native_to_mb */ - my_wc_to_printable_generic + my_wc_to_printable_generic, + my_casefold_multiply_1, + my_casefold_multiply_1 }; @@ -957,8 +959,6 @@ struct charset_info_st my_charset_tis620_thai_ci= NULL, /* state_map */ NULL, /* ident_map */ 4, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -989,8 +989,6 @@ struct charset_info_st my_charset_tis620_bin= NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -1022,8 +1020,6 @@ struct charset_info_st my_charset_tis620_thai_nopad_ci= NULL, /* state_map */ NULL, /* ident_map */ 4, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ @@ -1055,8 +1051,6 @@ struct charset_info_st my_charset_tis620_nopad_bin= NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ diff --git a/strings/ctype-uca.c b/strings/ctype-uca.c index e93f708abbc..f0b765647f1 100644 --- a/strings/ctype-uca.c +++ b/strings/ctype-uca.c @@ -34763,11 +34763,6 @@ create_tailoring(struct charset_info_st *cs, { src_uca= &my_uca_v520; cs->caseinfo= &my_unicase_unicode520; - if (cs->mbminlen == 1 && cs->mbmaxlen >=3) - { - cs->caseup_multiply= 2; - cs->casedn_multiply= 2; - } } else if (rules.version == 1400) /* Unicode-14.0.0 */ { @@ -34864,8 +34859,6 @@ struct charset_info_st my_charset_ucs2_unicode_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 2, /* mbminlen */ 2, /* mbmaxlen */ 9, /* min_sort_char */ @@ -34896,8 +34889,6 @@ struct charset_info_st my_charset_ucs2_icelandic_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 2, /* mbminlen */ 2, /* mbmaxlen */ 9, /* min_sort_char */ @@ -34928,8 +34919,6 @@ struct charset_info_st my_charset_ucs2_latvian_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 2, /* mbminlen */ 2, /* mbmaxlen */ 9, /* min_sort_char */ @@ -34960,8 +34949,6 @@ struct charset_info_st my_charset_ucs2_romanian_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 2, /* mbminlen */ 2, /* mbmaxlen */ 9, /* min_sort_char */ @@ -34992,8 +34979,6 @@ struct charset_info_st my_charset_ucs2_slovenian_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 2, /* mbminlen */ 2, /* mbmaxlen */ 9, /* min_sort_char */ @@ -35024,8 +35009,6 @@ struct charset_info_st my_charset_ucs2_polish_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 2, /* mbminlen */ 2, /* mbmaxlen */ 9, /* min_sort_char */ @@ -35056,8 +35039,6 @@ struct charset_info_st my_charset_ucs2_estonian_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 2, /* mbminlen */ 2, /* mbmaxlen */ 9, /* min_sort_char */ @@ -35088,8 +35069,6 @@ struct charset_info_st my_charset_ucs2_spanish_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 2, /* mbminlen */ 2, /* mbmaxlen */ 9, /* min_sort_char */ @@ -35120,8 +35099,6 @@ struct charset_info_st my_charset_ucs2_swedish_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 2, /* mbminlen */ 2, /* mbmaxlen */ 9, /* min_sort_char */ @@ -35152,8 +35129,6 @@ struct charset_info_st my_charset_ucs2_turkish_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 2, /* mbminlen */ 2, /* mbmaxlen */ 9, /* min_sort_char */ @@ -35184,8 +35159,6 @@ struct charset_info_st my_charset_ucs2_czech_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 2, /* mbminlen */ 2, /* mbmaxlen */ 9, /* min_sort_char */ @@ -35217,8 +35190,6 @@ struct charset_info_st my_charset_ucs2_danish_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 2, /* mbminlen */ 2, /* mbmaxlen */ 9, /* min_sort_char */ @@ -35249,8 +35220,6 @@ struct charset_info_st my_charset_ucs2_lithuanian_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 2, /* mbminlen */ 2, /* mbmaxlen */ 9, /* min_sort_char */ @@ -35281,8 +35250,6 @@ struct charset_info_st my_charset_ucs2_slovak_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 2, /* mbminlen */ 2, /* mbmaxlen */ 9, /* min_sort_char */ @@ -35313,8 +35280,6 @@ struct charset_info_st my_charset_ucs2_spanish2_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 2, /* mbminlen */ 2, /* mbmaxlen */ 9, /* min_sort_char */ @@ -35346,8 +35311,6 @@ struct charset_info_st my_charset_ucs2_roman_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 2, /* mbminlen */ 2, /* mbmaxlen */ 9, /* min_sort_char */ @@ -35379,8 +35342,6 @@ struct charset_info_st my_charset_ucs2_persian_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 2, /* mbminlen */ 2, /* mbmaxlen */ 9, /* min_sort_char */ @@ -35412,8 +35373,6 @@ struct charset_info_st my_charset_ucs2_esperanto_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 2, /* mbminlen */ 2, /* mbmaxlen */ 9, /* min_sort_char */ @@ -35445,8 +35404,6 @@ struct charset_info_st my_charset_ucs2_hungarian_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 2, /* mbminlen */ 2, /* mbmaxlen */ 9, /* min_sort_char */ @@ -35477,8 +35434,6 @@ struct charset_info_st my_charset_ucs2_sinhala_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 2, /* mbminlen */ 2, /* mbmaxlen */ 9, /* min_sort_char */ @@ -35511,8 +35466,6 @@ struct charset_info_st my_charset_ucs2_german2_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 2, /* mbminlen */ 2, /* mbmaxlen */ 9, /* min_sort_char */ @@ -35543,8 +35496,6 @@ struct charset_info_st my_charset_ucs2_croatian_mysql561_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 2, /* mbminlen */ 2, /* mbmaxlen */ 9, /* min_sort_char */ @@ -35576,8 +35527,6 @@ struct charset_info_st my_charset_ucs2_croatian_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 2, /* mbminlen */ 2, /* mbmaxlen */ 9, /* min_sort_char */ @@ -35609,8 +35558,6 @@ struct charset_info_st my_charset_ucs2_myanmar_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 2, /* mbminlen */ 2, /* mbmaxlen */ 9, /* min_sort_char */ @@ -35642,8 +35589,6 @@ struct charset_info_st my_charset_ucs2_thai_520_w2= NULL, /* state_map */ NULL, /* ident_map */ 4, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 2, /* mbminlen */ 2, /* mbmaxlen */ 9, /* min_sort_char */ @@ -35674,8 +35619,6 @@ struct charset_info_st my_charset_ucs2_unicode_520_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 2, /* mbminlen */ 2, /* mbmaxlen */ 9, /* min_sort_char */ @@ -35707,8 +35650,6 @@ struct charset_info_st my_charset_ucs2_vietnamese_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 2, /* mbminlen */ 2, /* mbmaxlen */ 9, /* min_sort_char */ @@ -35740,8 +35681,6 @@ struct charset_info_st my_charset_ucs2_unicode_nopad_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 2, /* mbminlen */ 2, /* mbmaxlen */ 9, /* min_sort_char */ @@ -35773,8 +35712,6 @@ struct charset_info_st my_charset_ucs2_unicode_520_nopad_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 2, /* mbminlen */ 2, /* mbmaxlen */ 9, /* min_sort_char */ @@ -35875,8 +35812,6 @@ struct charset_info_st my_charset_utf8mb3_unicode_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 3, /* mbmaxlen */ 9, /* min_sort_char */ @@ -35908,8 +35843,6 @@ struct charset_info_st my_charset_utf8mb3_icelandic_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 3, /* mbmaxlen */ 9, /* min_sort_char */ @@ -35940,8 +35873,6 @@ struct charset_info_st my_charset_utf8mb3_latvian_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 3, /* mbmaxlen */ 9, /* min_sort_char */ @@ -35972,8 +35903,6 @@ struct charset_info_st my_charset_utf8mb3_romanian_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 3, /* mbmaxlen */ 9, /* min_sort_char */ @@ -36004,8 +35933,6 @@ struct charset_info_st my_charset_utf8mb3_slovenian_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 3, /* mbmaxlen */ 9, /* min_sort_char */ @@ -36036,8 +35963,6 @@ struct charset_info_st my_charset_utf8mb3_polish_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 3, /* mbmaxlen */ 9, /* min_sort_char */ @@ -36068,8 +35993,6 @@ struct charset_info_st my_charset_utf8mb3_estonian_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 3, /* mbmaxlen */ 9, /* min_sort_char */ @@ -36100,8 +36023,6 @@ struct charset_info_st my_charset_utf8mb3_spanish_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 3, /* mbmaxlen */ 9, /* min_sort_char */ @@ -36132,8 +36053,6 @@ struct charset_info_st my_charset_utf8mb3_swedish_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 3, /* mbmaxlen */ 9, /* min_sort_char */ @@ -36164,8 +36083,6 @@ struct charset_info_st my_charset_utf8mb3_turkish_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 2, /* caseup_multiply */ - 2, /* casedn_multiply */ 1, /* mbminlen */ 3, /* mbmaxlen */ 9, /* min_sort_char */ @@ -36196,8 +36113,6 @@ struct charset_info_st my_charset_utf8mb3_czech_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 3, /* mbmaxlen */ 9, /* min_sort_char */ @@ -36229,8 +36144,6 @@ struct charset_info_st my_charset_utf8mb3_danish_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 3, /* mbmaxlen */ 9, /* min_sort_char */ @@ -36261,8 +36174,6 @@ struct charset_info_st my_charset_utf8mb3_lithuanian_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 3, /* mbmaxlen */ 9, /* min_sort_char */ @@ -36293,8 +36204,6 @@ struct charset_info_st my_charset_utf8mb3_slovak_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 3, /* mbmaxlen */ 9, /* min_sort_char */ @@ -36325,8 +36234,6 @@ struct charset_info_st my_charset_utf8mb3_spanish2_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 3, /* mbmaxlen */ 9, /* min_sort_char */ @@ -36357,8 +36264,6 @@ struct charset_info_st my_charset_utf8mb3_roman_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 3, /* mbmaxlen */ 9, /* min_sort_char */ @@ -36389,8 +36294,6 @@ struct charset_info_st my_charset_utf8mb3_persian_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 3, /* mbmaxlen */ 9, /* min_sort_char */ @@ -36421,8 +36324,6 @@ struct charset_info_st my_charset_utf8mb3_esperanto_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 3, /* mbmaxlen */ 9, /* min_sort_char */ @@ -36453,8 +36354,6 @@ struct charset_info_st my_charset_utf8mb3_hungarian_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 3, /* mbmaxlen */ 9, /* min_sort_char */ @@ -36485,8 +36384,6 @@ struct charset_info_st my_charset_utf8mb3_sinhala_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 3, /* mbmaxlen */ 9, /* min_sort_char */ @@ -36518,8 +36415,6 @@ struct charset_info_st my_charset_utf8mb3_german2_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 3, /* mbmaxlen */ 9, /* min_sort_char */ @@ -36550,8 +36445,6 @@ struct charset_info_st my_charset_utf8mb3_croatian_mysql561_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 3, /* mbmaxlen */ 9, /* min_sort_char */ @@ -36583,8 +36476,6 @@ struct charset_info_st my_charset_utf8mb3_croatian_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 3, /* mbmaxlen */ 9, /* min_sort_char */ @@ -36616,8 +36507,6 @@ struct charset_info_st my_charset_utf8mb3_myanmar_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 2, /* caseup_multiply */ - 2, /* casedn_multiply */ 1, /* mbminlen */ 3, /* mbmaxlen */ 9, /* min_sort_char */ @@ -36649,8 +36538,6 @@ struct charset_info_st my_charset_utf8mb3_unicode_520_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 2, /* caseup_multiply */ - 2, /* casedn_multiply */ 1, /* mbminlen */ 3, /* mbmaxlen */ 9, /* min_sort_char */ @@ -36681,8 +36568,6 @@ struct charset_info_st my_charset_utf8mb3_thai_520_w2= NULL, /* state_map */ NULL, /* ident_map */ 4, /* strxfrm_multiply */ - 2, /* caseup_multiply */ - 2, /* casedn_multiply */ 1, /* mbminlen */ 3, /* mbmaxlen */ 9, /* min_sort_char */ @@ -36713,8 +36598,6 @@ struct charset_info_st my_charset_utf8mb3_vietnamese_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 3, /* mbmaxlen */ 9, /* min_sort_char */ @@ -36746,8 +36629,6 @@ struct charset_info_st my_charset_utf8mb3_unicode_nopad_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 3, /* mbmaxlen */ 9, /* min_sort_char */ @@ -36779,8 +36660,6 @@ struct charset_info_st my_charset_utf8mb3_unicode_520_nopad_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 2, /* caseup_multiply */ - 2, /* casedn_multiply */ 1, /* mbminlen */ 3, /* mbmaxlen */ 9, /* min_sort_char */ @@ -36854,8 +36733,6 @@ struct charset_info_st my_charset_utf8mb4_unicode_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 4, /* mbmaxlen */ 9, /* min_sort_char */ @@ -36887,8 +36764,6 @@ struct charset_info_st my_charset_utf8mb4_icelandic_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 4, /* mbmaxlen */ 9, /* min_sort_char */ @@ -36919,8 +36794,6 @@ struct charset_info_st my_charset_utf8mb4_latvian_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 4, /* mbmaxlen */ 9, /* min_sort_char */ @@ -36951,8 +36824,6 @@ struct charset_info_st my_charset_utf8mb4_romanian_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 4, /* mbmaxlen */ 9, /* min_sort_char */ @@ -36983,8 +36854,6 @@ struct charset_info_st my_charset_utf8mb4_slovenian_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 4, /* mbmaxlen */ 9, /* min_sort_char */ @@ -37015,8 +36884,6 @@ struct charset_info_st my_charset_utf8mb4_polish_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 4, /* mbmaxlen */ 9, /* min_sort_char */ @@ -37047,8 +36914,6 @@ struct charset_info_st my_charset_utf8mb4_estonian_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 4, /* mbmaxlen */ 9, /* min_sort_char */ @@ -37079,8 +36944,6 @@ struct charset_info_st my_charset_utf8mb4_spanish_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 4, /* mbmaxlen */ 9, /* min_sort_char */ @@ -37111,8 +36974,6 @@ struct charset_info_st my_charset_utf8mb4_swedish_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 4, /* mbmaxlen */ 9, /* min_sort_char */ @@ -37143,8 +37004,6 @@ struct charset_info_st my_charset_utf8mb4_turkish_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 2, /* caseup_multiply */ - 2, /* casedn_multiply */ 1, /* mbminlen */ 4, /* mbmaxlen */ 9, /* min_sort_char */ @@ -37175,8 +37034,6 @@ struct charset_info_st my_charset_utf8mb4_czech_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 4, /* mbmaxlen */ 9, /* min_sort_char */ @@ -37208,8 +37065,6 @@ struct charset_info_st my_charset_utf8mb4_danish_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 4, /* mbmaxlen */ 9, /* min_sort_char */ @@ -37240,8 +37095,6 @@ struct charset_info_st my_charset_utf8mb4_lithuanian_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 4, /* mbmaxlen */ 9, /* min_sort_char */ @@ -37272,8 +37125,6 @@ struct charset_info_st my_charset_utf8mb4_slovak_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 4, /* mbmaxlen */ 9, /* min_sort_char */ @@ -37304,8 +37155,6 @@ struct charset_info_st my_charset_utf8mb4_spanish2_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 4, /* mbmaxlen */ 9, /* min_sort_char */ @@ -37336,8 +37185,6 @@ struct charset_info_st my_charset_utf8mb4_roman_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 4, /* mbmaxlen */ 9, /* min_sort_char */ @@ -37368,8 +37215,6 @@ struct charset_info_st my_charset_utf8mb4_persian_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 4, /* mbmaxlen */ 9, /* min_sort_char */ @@ -37400,8 +37245,6 @@ struct charset_info_st my_charset_utf8mb4_esperanto_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 4, /* mbmaxlen */ 9, /* min_sort_char */ @@ -37432,8 +37275,6 @@ struct charset_info_st my_charset_utf8mb4_hungarian_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 4, /* mbmaxlen */ 9, /* min_sort_char */ @@ -37464,8 +37305,6 @@ struct charset_info_st my_charset_utf8mb4_sinhala_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 4, /* mbmaxlen */ 9, /* min_sort_char */ @@ -37496,8 +37335,6 @@ struct charset_info_st my_charset_utf8mb4_german2_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 4, /* mbmaxlen */ 9, /* min_sort_char */ @@ -37528,8 +37365,6 @@ struct charset_info_st my_charset_utf8mb4_croatian_mysql561_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 4, /* mbmaxlen */ 9, /* min_sort_char */ @@ -37561,8 +37396,6 @@ struct charset_info_st my_charset_utf8mb4_croatian_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 4, /* mbmaxlen */ 9, /* min_sort_char */ @@ -37594,8 +37427,6 @@ struct charset_info_st my_charset_utf8mb4_myanmar_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 2, /* caseup_multiply */ - 2, /* casedn_multiply */ 1, /* mbminlen */ 4, /* mbmaxlen */ 9, /* min_sort_char */ @@ -37626,8 +37457,6 @@ struct charset_info_st my_charset_utf8mb4_thai_520_w2= NULL, /* state_map */ NULL, /* ident_map */ 4, /* strxfrm_multiply */ - 2, /* caseup_multiply */ - 2, /* casedn_multiply */ 1, /* mbminlen */ 4, /* mbmaxlen */ 9, /* min_sort_char */ @@ -37658,8 +37487,6 @@ struct charset_info_st my_charset_utf8mb4_unicode_520_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 2, /* caseup_multiply */ - 2, /* casedn_multiply */ 1, /* mbminlen */ 4, /* mbmaxlen */ 9, /* min_sort_char */ @@ -37691,8 +37518,6 @@ struct charset_info_st my_charset_utf8mb4_vietnamese_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 4, /* mbmaxlen */ 9, /* min_sort_char */ @@ -37724,8 +37549,6 @@ struct charset_info_st my_charset_utf8mb4_unicode_nopad_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 4, /* mbmaxlen */ 9, /* min_sort_char */ @@ -37757,8 +37580,6 @@ struct charset_info_st my_charset_utf8mb4_unicode_520_nopad_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 2, /* caseup_multiply */ - 2, /* casedn_multiply */ 1, /* mbminlen */ 4, /* mbmaxlen */ 9, /* min_sort_char */ @@ -37809,8 +37630,6 @@ struct charset_info_st my_charset_utf32_unicode_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 4, /* mbminlen */ 4, /* mbmaxlen */ 9, /* min_sort_char */ @@ -37842,8 +37661,6 @@ struct charset_info_st my_charset_utf32_icelandic_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 4, /* mbminlen */ 4, /* mbmaxlen */ 9, /* min_sort_char */ @@ -37874,8 +37691,6 @@ struct charset_info_st my_charset_utf32_latvian_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 4, /* mbminlen */ 4, /* mbmaxlen */ 9, /* min_sort_char */ @@ -37906,8 +37721,6 @@ struct charset_info_st my_charset_utf32_romanian_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 4, /* mbminlen */ 4, /* mbmaxlen */ 9, /* min_sort_char */ @@ -37938,8 +37751,6 @@ struct charset_info_st my_charset_utf32_slovenian_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 4, /* mbminlen */ 4, /* mbmaxlen */ 9, /* min_sort_char */ @@ -37970,8 +37781,6 @@ struct charset_info_st my_charset_utf32_polish_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 4, /* mbminlen */ 4, /* mbmaxlen */ 9, /* min_sort_char */ @@ -38002,8 +37811,6 @@ struct charset_info_st my_charset_utf32_estonian_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 4, /* mbminlen */ 4, /* mbmaxlen */ 9, /* min_sort_char */ @@ -38034,8 +37841,6 @@ struct charset_info_st my_charset_utf32_spanish_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 4, /* mbminlen */ 4, /* mbmaxlen */ 9, /* min_sort_char */ @@ -38066,8 +37871,6 @@ struct charset_info_st my_charset_utf32_swedish_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 4, /* mbminlen */ 4, /* mbmaxlen */ 9, /* min_sort_char */ @@ -38098,8 +37901,6 @@ struct charset_info_st my_charset_utf32_turkish_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 4, /* mbminlen */ 4, /* mbmaxlen */ 9, /* min_sort_char */ @@ -38130,8 +37931,6 @@ struct charset_info_st my_charset_utf32_czech_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 4, /* mbminlen */ 4, /* mbmaxlen */ 9, /* min_sort_char */ @@ -38163,8 +37962,6 @@ struct charset_info_st my_charset_utf32_danish_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 4, /* mbminlen */ 4, /* mbmaxlen */ 9, /* min_sort_char */ @@ -38195,8 +37992,6 @@ struct charset_info_st my_charset_utf32_lithuanian_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 4, /* mbminlen */ 4, /* mbmaxlen */ 9, /* min_sort_char */ @@ -38227,8 +38022,6 @@ struct charset_info_st my_charset_utf32_slovak_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 4, /* mbminlen */ 4, /* mbmaxlen */ 9, /* min_sort_char */ @@ -38259,8 +38052,6 @@ struct charset_info_st my_charset_utf32_spanish2_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 4, /* mbminlen */ 4, /* mbmaxlen */ 9, /* min_sort_char */ @@ -38291,8 +38082,6 @@ struct charset_info_st my_charset_utf32_roman_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 4, /* mbminlen */ 4, /* mbmaxlen */ 9, /* min_sort_char */ @@ -38323,8 +38112,6 @@ struct charset_info_st my_charset_utf32_persian_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 4, /* mbminlen */ 4, /* mbmaxlen */ 9, /* min_sort_char */ @@ -38355,8 +38142,6 @@ struct charset_info_st my_charset_utf32_esperanto_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 4, /* mbminlen */ 4, /* mbmaxlen */ 9, /* min_sort_char */ @@ -38387,8 +38172,6 @@ struct charset_info_st my_charset_utf32_hungarian_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 4, /* mbminlen */ 4, /* mbmaxlen */ 9, /* min_sort_char */ @@ -38419,8 +38202,6 @@ struct charset_info_st my_charset_utf32_sinhala_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 4, /* mbminlen */ 4, /* mbmaxlen */ 9, /* min_sort_char */ @@ -38451,8 +38232,6 @@ struct charset_info_st my_charset_utf32_german2_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 4, /* mbminlen */ 4, /* mbmaxlen */ 9, /* min_sort_char */ @@ -38483,8 +38262,6 @@ struct charset_info_st my_charset_utf32_croatian_mysql561_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 4, /* mbminlen */ 4, /* mbmaxlen */ 9, /* min_sort_char */ @@ -38515,8 +38292,6 @@ struct charset_info_st my_charset_utf32_croatian_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 4, /* mbminlen */ 4, /* mbmaxlen */ 9, /* min_sort_char */ @@ -38548,8 +38323,6 @@ struct charset_info_st my_charset_utf32_myanmar_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 4, /* mbminlen */ 4, /* mbmaxlen */ 9, /* min_sort_char */ @@ -38581,8 +38354,6 @@ struct charset_info_st my_charset_utf32_thai_520_w2= NULL, /* state_map */ NULL, /* ident_map */ 4, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 4, /* mbminlen */ 4, /* mbmaxlen */ 9, /* min_sort_char */ @@ -38614,8 +38385,6 @@ struct charset_info_st my_charset_utf32_unicode_520_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 4, /* mbminlen */ 4, /* mbmaxlen */ 9, /* min_sort_char */ @@ -38647,8 +38416,6 @@ struct charset_info_st my_charset_utf32_vietnamese_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 4, /* mbminlen */ 4, /* mbmaxlen */ 9, /* min_sort_char */ @@ -38680,8 +38447,6 @@ struct charset_info_st my_charset_utf32_unicode_nopad_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 4, /* mbminlen */ 4, /* mbmaxlen */ 9, /* min_sort_char */ @@ -38713,8 +38478,6 @@ struct charset_info_st my_charset_utf32_unicode_520_nopad_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 4, /* mbminlen */ 4, /* mbmaxlen */ 9, /* min_sort_char */ @@ -38766,8 +38529,6 @@ struct charset_info_st my_charset_utf16_unicode_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 2, /* mbminlen */ 4, /* mbmaxlen */ 9, /* min_sort_char */ @@ -38799,8 +38560,6 @@ struct charset_info_st my_charset_utf16_icelandic_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 2, /* mbminlen */ 4, /* mbmaxlen */ 9, /* min_sort_char */ @@ -38831,8 +38590,6 @@ struct charset_info_st my_charset_utf16_latvian_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 2, /* mbminlen */ 4, /* mbmaxlen */ 9, /* min_sort_char */ @@ -38863,8 +38620,6 @@ struct charset_info_st my_charset_utf16_romanian_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 2, /* mbminlen */ 4, /* mbmaxlen */ 9, /* min_sort_char */ @@ -38895,8 +38650,6 @@ struct charset_info_st my_charset_utf16_slovenian_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 2, /* mbminlen */ 4, /* mbmaxlen */ 9, /* min_sort_char */ @@ -38927,8 +38680,6 @@ struct charset_info_st my_charset_utf16_polish_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 2, /* mbminlen */ 4, /* mbmaxlen */ 9, /* min_sort_char */ @@ -38959,8 +38710,6 @@ struct charset_info_st my_charset_utf16_estonian_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 2, /* mbminlen */ 4, /* mbmaxlen */ 9, /* min_sort_char */ @@ -38991,8 +38740,6 @@ struct charset_info_st my_charset_utf16_spanish_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 2, /* mbminlen */ 4, /* mbmaxlen */ 9, /* min_sort_char */ @@ -39023,8 +38770,6 @@ struct charset_info_st my_charset_utf16_swedish_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 2, /* mbminlen */ 4, /* mbmaxlen */ 9, /* min_sort_char */ @@ -39055,8 +38800,6 @@ struct charset_info_st my_charset_utf16_turkish_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 2, /* mbminlen */ 4, /* mbmaxlen */ 9, /* min_sort_char */ @@ -39087,8 +38830,6 @@ struct charset_info_st my_charset_utf16_czech_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 2, /* mbminlen */ 4, /* mbmaxlen */ 9, /* min_sort_char */ @@ -39120,8 +38861,6 @@ struct charset_info_st my_charset_utf16_danish_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 2, /* mbminlen */ 4, /* mbmaxlen */ 9, /* min_sort_char */ @@ -39152,8 +38891,6 @@ struct charset_info_st my_charset_utf16_lithuanian_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 2, /* mbminlen */ 4, /* mbmaxlen */ 9, /* min_sort_char */ @@ -39184,8 +38921,6 @@ struct charset_info_st my_charset_utf16_slovak_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 2, /* mbminlen */ 4, /* mbmaxlen */ 9, /* min_sort_char */ @@ -39216,8 +38951,6 @@ struct charset_info_st my_charset_utf16_spanish2_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 2, /* mbminlen */ 4, /* mbmaxlen */ 9, /* min_sort_char */ @@ -39248,8 +38981,6 @@ struct charset_info_st my_charset_utf16_roman_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 2, /* mbminlen */ 4, /* mbmaxlen */ 9, /* min_sort_char */ @@ -39280,8 +39011,6 @@ struct charset_info_st my_charset_utf16_persian_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 2, /* mbminlen */ 4, /* mbmaxlen */ 9, /* min_sort_char */ @@ -39312,8 +39041,6 @@ struct charset_info_st my_charset_utf16_esperanto_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 2, /* mbminlen */ 4, /* mbmaxlen */ 9, /* min_sort_char */ @@ -39344,8 +39071,6 @@ struct charset_info_st my_charset_utf16_hungarian_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 2, /* mbminlen */ 4, /* mbmaxlen */ 9, /* min_sort_char */ @@ -39376,8 +39101,6 @@ struct charset_info_st my_charset_utf16_sinhala_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 2, /* mbminlen */ 4, /* mbmaxlen */ 9, /* min_sort_char */ @@ -39408,8 +39131,6 @@ struct charset_info_st my_charset_utf16_german2_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 2, /* mbminlen */ 4, /* mbmaxlen */ 9, /* min_sort_char */ @@ -39441,8 +39162,6 @@ struct charset_info_st my_charset_utf16_croatian_mysql561_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 2, /* mbminlen */ 4, /* mbmaxlen */ 9, /* min_sort_char */ @@ -39474,8 +39193,6 @@ struct charset_info_st my_charset_utf16_croatian_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 2, /* mbminlen */ 4, /* mbmaxlen */ 9, /* min_sort_char */ @@ -39507,8 +39224,6 @@ struct charset_info_st my_charset_utf16_myanmar_uca_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 2, /* mbminlen */ 4, /* mbmaxlen */ 9, /* min_sort_char */ @@ -39540,8 +39255,6 @@ struct charset_info_st my_charset_utf16_thai_520_w2= NULL, /* state_map */ NULL, /* ident_map */ 4, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 2, /* mbminlen */ 4, /* mbmaxlen */ 9, /* min_sort_char */ @@ -39573,8 +39286,6 @@ struct charset_info_st my_charset_utf16_unicode_520_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 2, /* mbminlen */ 4, /* mbmaxlen */ 9, /* min_sort_char */ @@ -39606,8 +39317,6 @@ struct charset_info_st my_charset_utf16_vietnamese_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 2, /* mbminlen */ 4, /* mbmaxlen */ 9, /* min_sort_char */ @@ -39639,8 +39348,6 @@ struct charset_info_st my_charset_utf16_unicode_nopad_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 2, /* mbminlen */ 4, /* mbmaxlen */ 9, /* min_sort_char */ @@ -39672,8 +39379,6 @@ struct charset_info_st my_charset_utf16_unicode_520_nopad_ci= NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 2, /* mbminlen */ 4, /* mbmaxlen */ 9, /* min_sort_char */ @@ -39748,8 +39453,6 @@ my_uca1400_collation_definition_init(MY_CHARSET_LOADER *loader, dst->number= id; dst->uca= &my_uca_v1400; dst->tailoring= def->tailoring; - dst->caseup_multiply= 1; - dst->casedn_multiply= 1; if (def->tailoring == turkish) dst->caseinfo= &my_unicase_turkish; /*TODO: unicase_1400_turkish */ else diff --git a/strings/ctype-ucs2.c b/strings/ctype-ucs2.c index 4c7a29abde8..bbb730d2ccf 100644 --- a/strings/ctype-ucs2.c +++ b/strings/ctype-ucs2.c @@ -1616,7 +1616,9 @@ MY_CHARSET_HANDLER my_charset_utf16_handler= my_well_formed_char_length_utf16, my_copy_fix_mb2_or_mb4, my_uni_utf16, - my_wc_to_printable_generic + my_wc_to_printable_generic, + my_casefold_multiply_1, + my_casefold_multiply_1 }; @@ -1639,8 +1641,6 @@ struct charset_info_st my_charset_utf16_general_ci= NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 2, /* mbminlen */ 4, /* mbmaxlen */ 0, /* min_sort_char */ @@ -1672,8 +1672,6 @@ struct charset_info_st my_charset_utf16_bin= NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 2, /* mbminlen */ 4, /* mbmaxlen */ 0, /* min_sort_char */ @@ -1705,8 +1703,6 @@ struct charset_info_st my_charset_utf16_general_nopad_ci= NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 2, /* mbminlen */ 4, /* mbmaxlen */ 0, /* min_sort_char */ @@ -1739,8 +1735,6 @@ struct charset_info_st my_charset_utf16_nopad_bin= NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 2, /* mbminlen */ 4, /* mbmaxlen */ 0, /* min_sort_char */ @@ -1977,7 +1971,9 @@ static MY_CHARSET_HANDLER my_charset_utf16le_handler= my_well_formed_char_length_utf16, my_copy_fix_mb2_or_mb4, my_uni_utf16le, - my_wc_to_printable_generic + my_wc_to_printable_generic, + my_casefold_multiply_1, + my_casefold_multiply_1 }; @@ -2000,8 +1996,6 @@ struct charset_info_st my_charset_utf16le_general_ci= NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 2, /* mbminlen */ 4, /* mbmaxlen */ 0, /* min_sort_char */ @@ -2033,8 +2027,6 @@ struct charset_info_st my_charset_utf16le_bin= NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 2, /* mbminlen */ 4, /* mbmaxlen */ 0, /* min_sort_char */ @@ -2066,8 +2058,6 @@ struct charset_info_st my_charset_utf16le_general_nopad_ci= NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 2, /* mbminlen */ 4, /* mbmaxlen */ 0, /* min_sort_char */ @@ -2100,8 +2090,6 @@ struct charset_info_st my_charset_utf16le_nopad_bin= NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 2, /* mbminlen */ 4, /* mbmaxlen */ 0, /* min_sort_char */ @@ -2823,7 +2811,9 @@ MY_CHARSET_HANDLER my_charset_utf32_handler= my_well_formed_char_length_utf32, my_copy_fix_mb2_or_mb4, my_uni_utf32, - my_wc_to_printable_generic + my_wc_to_printable_generic, + my_casefold_multiply_1, + my_casefold_multiply_1 }; @@ -2846,8 +2836,6 @@ struct charset_info_st my_charset_utf32_general_ci= NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 4, /* mbminlen */ 4, /* mbmaxlen */ 0, /* min_sort_char */ @@ -2879,8 +2867,6 @@ struct charset_info_st my_charset_utf32_bin= NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 4, /* mbminlen */ 4, /* mbmaxlen */ 0, /* min_sort_char */ @@ -2912,8 +2898,6 @@ struct charset_info_st my_charset_utf32_general_nopad_ci= NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 4, /* mbminlen */ 4, /* mbmaxlen */ 0, /* min_sort_char */ @@ -2946,8 +2930,6 @@ struct charset_info_st my_charset_utf32_nopad_bin= NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 4, /* mbminlen */ 4, /* mbmaxlen */ 0, /* min_sort_char */ @@ -3434,7 +3416,9 @@ MY_CHARSET_HANDLER my_charset_ucs2_handler= my_well_formed_char_length_ucs2, my_copy_fix_mb2_or_mb4, my_uni_ucs2, - my_wc_to_printable_generic + my_wc_to_printable_generic, + my_casefold_multiply_1, + my_casefold_multiply_1 }; @@ -3457,8 +3441,6 @@ struct charset_info_st my_charset_ucs2_general_ci= NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 2, /* mbminlen */ 2, /* mbmaxlen */ 0, /* min_sort_char */ @@ -3490,8 +3472,6 @@ struct charset_info_st my_charset_ucs2_general_mysql500_ci= NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 2, /* mbminlen */ 2, /* mbmaxlen */ 0, /* min_sort_char */ @@ -3523,8 +3503,6 @@ struct charset_info_st my_charset_ucs2_bin= NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 2, /* mbminlen */ 2, /* mbmaxlen */ 0, /* min_sort_char */ @@ -3556,8 +3534,6 @@ struct charset_info_st my_charset_ucs2_general_nopad_ci= NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 2, /* mbminlen */ 2, /* mbmaxlen */ 0, /* min_sort_char */ @@ -3589,8 +3565,6 @@ struct charset_info_st my_charset_ucs2_nopad_bin= NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 2, /* mbminlen */ 2, /* mbmaxlen */ 0, /* min_sort_char */ diff --git a/strings/ctype-ujis.c b/strings/ctype-ujis.c index ef704e5c15c..143b2c0ae9c 100644 --- a/strings/ctype-ujis.c +++ b/strings/ctype-ujis.c @@ -67218,8 +67218,8 @@ size_t my_casedn_ujis(CHARSET_INFO * cs, const char *src, size_t srclen, char *dst, size_t dstlen) { - DBUG_ASSERT(dstlen >= srclen * cs->casedn_multiply); - DBUG_ASSERT(src != dst || cs->casedn_multiply == 1); + DBUG_ASSERT(dstlen >= srclen * cs->cset->casedn_multiply(cs)); + DBUG_ASSERT(src != dst || cs->cset->casedn_multiply(cs) == 1); return my_casefold_ujis(cs, src, srclen, dst, dstlen, cs->to_lower, 0); } @@ -67231,8 +67231,8 @@ size_t my_caseup_ujis(CHARSET_INFO * cs, const char *src, size_t srclen, char *dst, size_t dstlen) { - DBUG_ASSERT(dstlen >= srclen * cs->caseup_multiply); - DBUG_ASSERT(src != dst || cs->caseup_multiply == 1); + DBUG_ASSERT(dstlen >= srclen * cs->cset->caseup_multiply(cs)); + DBUG_ASSERT(src != dst || cs->cset->caseup_multiply(cs) == 1); return my_casefold_ujis(cs, src, srclen, dst, dstlen, cs->to_upper, 1); } #endif /* defined(HAVE_CHARSET_ujis) || defined(HAVE_CHARSET_eucjpms) */ @@ -67355,7 +67355,9 @@ static MY_CHARSET_HANDLER my_charset_handler= my_well_formed_char_length_ujis, my_copy_fix_mb, my_native_to_mb_ujis, - my_wc_to_printable_generic + my_wc_to_printable_generic, + my_casefold_multiply_1, + my_casefold_multiply_2 }; @@ -67379,8 +67381,6 @@ struct charset_info_st my_charset_ujis_japanese_ci= NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 2, /* casedn_multiply */ 1, /* mbminlen */ 3, /* mbmaxlen */ 0, /* min_sort_char */ @@ -67412,8 +67412,6 @@ struct charset_info_st my_charset_ujis_bin= NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 2, /* casedn_multiply */ 1, /* mbminlen */ 3, /* mbmaxlen */ 0, /* min_sort_char */ @@ -67445,8 +67443,6 @@ struct charset_info_st my_charset_ujis_japanese_nopad_ci= NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 2, /* casedn_multiply */ 1, /* mbminlen */ 3, /* mbmaxlen */ 0, /* min_sort_char */ @@ -67478,8 +67474,6 @@ struct charset_info_st my_charset_ujis_nopad_bin= NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 2, /* casedn_multiply */ 1, /* mbminlen */ 3, /* mbmaxlen */ 0, /* min_sort_char */ diff --git a/strings/ctype-utf8.c b/strings/ctype-utf8.c index 6c008d6e650..4e5280a153e 100644 --- a/strings/ctype-utf8.c +++ b/strings/ctype-utf8.c @@ -4656,6 +4656,23 @@ my_tosort_unicode(MY_UNICASE_INFO *uni_plane, my_wc_t *wc, uint flags) } +static uint +my_casefold_multiply_utf8mbx(CHARSET_INFO *cs) +{ + DBUG_ASSERT(cs->mbminlen == 1 && cs->mbmaxlen >= 3); + if (cs->caseinfo == &my_unicase_unicode520) + return 2; + if (cs->caseinfo == &my_unicase_turkish) + return 2; + if (cs->caseinfo == &my_unicase_default) + return 1; + if (cs->caseinfo == &my_unicase_mysql500) + return 1; + DBUG_ASSERT(0); /*Unknown case folding data */ + return 1; +} + + /* ** Compare string against string with wildcard ** This function is used in UTF8 and UCS2 @@ -5217,7 +5234,7 @@ static size_t my_caseup_utf8mb3(CHARSET_INFO *cs, const char *srcend= src + srclen; char *dstend= dst + dstlen, *dst0= dst; MY_UNICASE_INFO *uni_plane= cs->caseinfo; - DBUG_ASSERT(src != dst || cs->caseup_multiply == 1); + DBUG_ASSERT(src != dst || cs->cset->caseup_multiply(cs) == 1); while ((src < srcend) && (srcres= my_utf8mb3_uni(cs, &wc, (uchar *) src, (uchar*) srcend)) > 0) @@ -5270,7 +5287,7 @@ static size_t my_caseup_str_utf8mb3(CHARSET_INFO *cs, char *src) int srcres, dstres; char *dst= src, *dst0= src; MY_UNICASE_INFO *uni_plane= cs->caseinfo; - DBUG_ASSERT(cs->caseup_multiply == 1); + DBUG_ASSERT(cs->cset->caseup_multiply(cs) == 1); while (*src && (srcres= my_utf8mb3_uni_no_range(cs, &wc, (uchar *) src)) > 0) @@ -5295,7 +5312,7 @@ static size_t my_casedn_utf8mb3(CHARSET_INFO *cs, const char *srcend= src + srclen; char *dstend= dst + dstlen, *dst0= dst; MY_UNICASE_INFO *uni_plane= cs->caseinfo; - DBUG_ASSERT(src != dst || cs->casedn_multiply == 1); + DBUG_ASSERT(src != dst || cs->cset->casedn_multiply(cs) == 1); while ((src < srcend) && (srcres= my_utf8mb3_uni(cs, &wc, (uchar*) src, (uchar*)srcend)) > 0) @@ -5316,7 +5333,7 @@ static size_t my_casedn_str_utf8mb3(CHARSET_INFO *cs, char *src) int srcres, dstres; char *dst= src, *dst0= src; MY_UNICASE_INFO *uni_plane= cs->caseinfo; - DBUG_ASSERT(cs->casedn_multiply == 1); + DBUG_ASSERT(cs->cset->casedn_multiply(cs) == 1); while (*src && (srcres= my_utf8mb3_uni_no_range(cs, &wc, (uchar *) src)) > 0) @@ -5771,7 +5788,9 @@ MY_CHARSET_HANDLER my_charset_utf8mb3_handler= my_well_formed_char_length_utf8mb3, my_copy_fix_mb, my_uni_utf8mb3, - my_wc_to_printable_generic + my_wc_to_printable_generic, + my_casefold_multiply_utf8mbx, + my_casefold_multiply_utf8mbx }; @@ -5795,8 +5814,6 @@ struct charset_info_st my_charset_utf8mb3_general_ci= NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 3, /* mbmaxlen */ 0, /* min_sort_char */ @@ -5828,8 +5845,6 @@ struct charset_info_st my_charset_utf8mb3_general_mysql500_ci= NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 3, /* mbmaxlen */ 0, /* min_sort_char */ @@ -5861,8 +5876,6 @@ struct charset_info_st my_charset_utf8mb3_bin= NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 3, /* mbmaxlen */ 0, /* min_sort_char */ @@ -5894,8 +5907,6 @@ struct charset_info_st my_charset_utf8mb3_general_nopad_ci= NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 3, /* mbmaxlen */ 0, /* min_sort_char */ @@ -5927,8 +5938,6 @@ struct charset_info_st my_charset_utf8mb3_nopad_bin= NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 3, /* mbmaxlen */ 0, /* min_sort_char */ @@ -6092,8 +6101,6 @@ struct charset_info_st my_charset_utf8mb3_general_cs= NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 3, /* mbmaxlen */ 0, /* min_sort_char */ @@ -7426,7 +7433,9 @@ static MY_CHARSET_HANDLER my_charset_filename_handler= my_well_formed_char_length_filename, my_copy_fix_mb, my_wc_mb_filename, - my_wc_to_printable_filename + my_wc_to_printable_filename, + my_casefold_multiply_1, + my_casefold_multiply_1 }; @@ -7450,8 +7459,6 @@ struct charset_info_st my_charset_filename= NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 5, /* mbmaxlen */ 0, /* min_sort_char */ @@ -7697,7 +7704,7 @@ my_caseup_utf8mb4(CHARSET_INFO *cs, const char *src, size_t srclen, const char *srcend= src + srclen; char *dstend= dst + dstlen, *dst0= dst; MY_UNICASE_INFO *uni_plane= cs->caseinfo; - DBUG_ASSERT(src != dst || cs->caseup_multiply == 1); + DBUG_ASSERT(src != dst || cs->cset->caseup_multiply(cs) == 1); while ((src < srcend) && (srcres= my_mb_wc_utf8mb4(cs, &wc, @@ -7765,7 +7772,7 @@ my_caseup_str_utf8mb4(CHARSET_INFO *cs, char *src) int srcres, dstres; char *dst= src, *dst0= src; MY_UNICASE_INFO *uni_plane= cs->caseinfo; - DBUG_ASSERT(cs->caseup_multiply == 1); + DBUG_ASSERT(cs->cset->caseup_multiply(cs) == 1); while (*src && (srcres= my_mb_wc_utf8mb4_no_range(cs, &wc, (uchar *) src)) > 0) @@ -7791,7 +7798,7 @@ my_casedn_utf8mb4(CHARSET_INFO *cs, const char *srcend= src + srclen; char *dstend= dst + dstlen, *dst0= dst; MY_UNICASE_INFO *uni_plane= cs->caseinfo; - DBUG_ASSERT(src != dst || cs->casedn_multiply == 1); + DBUG_ASSERT(src != dst || cs->cset->casedn_multiply(cs) == 1); while ((src < srcend) && (srcres= my_mb_wc_utf8mb4(cs, &wc, @@ -7814,7 +7821,7 @@ my_casedn_str_utf8mb4(CHARSET_INFO *cs, char *src) int srcres, dstres; char *dst= src, *dst0= src; MY_UNICASE_INFO *uni_plane= cs->caseinfo; - DBUG_ASSERT(cs->casedn_multiply == 1); + DBUG_ASSERT(cs->cset->casedn_multiply(cs) == 1); while (*src && (srcres= my_mb_wc_utf8mb4_no_range(cs, &wc, (uchar *) src)) > 0) @@ -8139,7 +8146,9 @@ MY_CHARSET_HANDLER my_charset_utf8mb4_handler= my_well_formed_char_length_utf8mb4, my_copy_fix_mb, my_wc_mb_utf8mb4, - my_wc_to_printable_generic + my_wc_to_printable_generic, + my_casefold_multiply_utf8mbx, + my_casefold_multiply_utf8mbx }; @@ -8163,8 +8172,6 @@ struct charset_info_st my_charset_utf8mb4_general_ci= NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 4, /* mbmaxlen */ 0, /* min_sort_char */ @@ -8197,8 +8204,6 @@ struct charset_info_st my_charset_utf8mb4_bin= NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 4, /* mbmaxlen */ 0, /* min_sort_char */ @@ -8231,8 +8236,6 @@ struct charset_info_st my_charset_utf8mb4_general_nopad_ci= NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 4, /* mbmaxlen */ 0, /* min_sort_char */ @@ -8265,8 +8268,6 @@ struct charset_info_st my_charset_utf8mb4_nopad_bin= NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 4, /* mbmaxlen */ 0, /* min_sort_char */ diff --git a/strings/ctype-win1250ch.c b/strings/ctype-win1250ch.c index 9c8dbeaaa34..153074f9111 100644 --- a/strings/ctype-win1250ch.c +++ b/strings/ctype-win1250ch.c @@ -714,8 +714,6 @@ struct charset_info_st my_charset_cp1250_czech_cs = NULL, /* state_map */ NULL, /* ident_map */ 2, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ 1, /* mbminlen */ 1, /* mbmaxlen */ 0, /* min_sort_char */ diff --git a/strings/ctype.c b/strings/ctype.c index 8bd8acf5ff9..7ff7e36ce2a 100644 --- a/strings/ctype.c +++ b/strings/ctype.c @@ -1397,3 +1397,15 @@ LEX_CSTRING my_ci_get_collation_name_generic(CHARSET_INFO *cs, { return cs->coll_name; } + + +uint my_casefold_multiply_1(CHARSET_INFO *cs) +{ + return 1; +} + + +uint my_casefold_multiply_2(CHARSET_INFO *cs) +{ + return 2; +} diff --git a/strings/strings_def.h b/strings/strings_def.h index ed5514ac9cb..c919861d8aa 100644 --- a/strings/strings_def.h +++ b/strings/strings_def.h @@ -143,6 +143,9 @@ int my_wc_to_printable_8bit(CHARSET_INFO *cs, my_wc_t wc, void my_ci_set_strength(struct charset_info_st *cs, uint strength); void my_ci_set_level_flags(struct charset_info_st *cs, uint flags); +uint my_casefold_multiply_1(CHARSET_INFO *cs); +uint my_casefold_multiply_2(CHARSET_INFO *cs); + /* Some common character set names */ extern const char charset_name_latin2[]; |