summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Barkov <bar@mariadb.com>2023-02-17 16:20:01 +0400
committerAlexander Barkov <bar@mariadb.com>2023-02-17 17:33:27 +0400
commit7f6b648d7db895c09a6ace3b5ee62a5fb482a8e0 (patch)
tree66e727d8e65166497e68447ba659650d0cd53768
parent345356b868d840554a8572876efc027d3ccd9842 (diff)
downloadmariadb-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.
-rw-r--r--include/m_ctype.h15
-rw-r--r--mysql-test/include/ctype_casefolding.inc8
-rw-r--r--mysql-test/main/ctype_ldml.result56
-rw-r--r--mysql-test/main/ctype_ldml.test7
-rw-r--r--mysql-test/main/ctype_utf8_uca.result145
-rw-r--r--mysql-test/main/ctype_utf8_uca.test19
-rw-r--r--mysql-test/main/ctype_utf8mb4_uca.result139
-rw-r--r--mysql-test/main/ctype_utf8mb4_uca.test10
-rw-r--r--mysys/charset.c3
-rw-r--r--sql/item_strfunc.cc4
-rw-r--r--storage/innobase/fts/fts0fts.cc2
-rw-r--r--storage/innobase/fts/fts0que.cc2
-rw-r--r--storage/innobase/handler/ha_innodb.cc2
-rw-r--r--strings/conf_to_src.c2
-rw-r--r--strings/ctype-big5.c12
-rw-r--r--strings/ctype-bin.c6
-rw-r--r--strings/ctype-cp932.c12
-rw-r--r--strings/ctype-czech.c2
-rw-r--r--strings/ctype-euc_kr.c12
-rw-r--r--strings/ctype-eucjpms.c12
-rw-r--r--strings/ctype-extra.c216
-rw-r--r--strings/ctype-gb2312.c12
-rw-r--r--strings/ctype-gbk.c12
-rw-r--r--strings/ctype-latin1.c14
-rw-r--r--strings/ctype-mb.c8
-rw-r--r--strings/ctype-simple.c6
-rw-r--r--strings/ctype-sjis.c12
-rw-r--r--strings/ctype-tis620.c12
-rw-r--r--strings/ctype-uca.c297
-rw-r--r--strings/ctype-ucs2.c50
-rw-r--r--strings/ctype-ujis.c20
-rw-r--r--strings/ctype-utf8.c67
-rw-r--r--strings/ctype-win1250ch.c2
-rw-r--r--strings/ctype.c12
-rw-r--r--strings/strings_def.h3
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[];