1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-08 11:22:35 +03:00

Merge remote-tracking branch 'origin/10.10' into 10.11

This commit is contained in:
Alexander Barkov
2023-04-26 13:10:57 +04:00
41 changed files with 15968 additions and 5524 deletions

View File

@@ -930,180 +930,202 @@ archived older versions of code and data; there is also a smaller HTTP mirror.
*************************************************************************** ***************************************************************************
%%The following software may be included in this product: %%The following software may be included in this product:
UnicodeData.txt http://www.unicode.org/copyright.html
Use of any of this software is governed by the terms of the license below: Unicode® Copyright and Terms of Use
Unicode Terms of Use For the general privacy policy governing access to this site, see the Unicode Privacy Policy.
For the general privacy policy governing access to this site, see the Unicode Copyright
Unicode Privacy Policy. For trademark usage, see the Unicode Copyright © 1991-2023 Unicode, Inc. All rights reserved.
Consortium (R) Trademarks and Logo Policy. Definitions
Notice to End User: Terms of Use
Carefully read the following legal agreement ("Agreement"). Use or
copying of the software and/or codes provided with this agreement (The
"Software") constitutes your acceptance of these terms
1. Unicode Copyright. Unicode Data Files ("DATA FILES") include all data files under the directories:
1. Copyright (c) 1991-2008 Unicode, Inc. All rights reserved. https://www.unicode.org/Public/
2. Certain documents and files on this website contain a https://www.unicode.org/reports/
legend indicating that "Modification is permitted." Any person https://www.unicode.org/ivd/data/
is hereby authorized, without fee, to modify such documents
and files to create derivative works conforming to the Unicode Data Files do not include PDF online code charts under the directory:
Unicode (R) Standard, subject to Terms and Conditions herein. https://www.unicode.org/Public/
3. Any person is hereby authorized, without fee, to view, use,
reproduce, and distribute all documents and files solely for Unicode Software ("SOFTWARE") includes any source code published in the Unicode Standard
informational purposes in the creation of products supporting or any source code or compiled code under the directories:
the Unicode Standard, subject to the Terms and Conditions https://www.unicode.org/Public/PROGRAMS/
herein. https://www.unicode.org/Public/cldr/
4. Further specifications of rights and restrictions http://site.icu-project.org/download/
pertaining to the use of the particular set of data files
known as the "Unicode Character Database" can be found in Terms of Use
Exhibit 1. Certain documents and files on this website contain a legend
5. Each version of the Unicode Standard has further indicating that "Modification is permitted." Any person is hereby
specifications of rights and restrictions of use. For the book authorized, without fee, to modify such documents and files to
editions, these are found on the back of the title page. For create derivative works conforming to the Unicode® Standard, subject
the online edition, certain files (such as the PDF files for to Terms and Conditions herein.
book chapters and code charts) carry specific restrictions.
All other files are covered under these general Terms of Use. Any person is hereby authorized, without fee, to view, use,
To request a permission to reproduce any part of the Unicode reproduce, and distribute all documents and files, subject to the
Standard, please contact the Unicode Consortium. Terms and Conditions herein.
6. No license is granted to "mirror" the Unicode website where
a fee is charged for access to the "mirror" site. Further specifications of rights and restrictions pertaining to the
7. Modification is not permitted with respect to this use of the Unicode DATA FILES and SOFTWARE can be found in the
document. All copies of this document must be verbatim. Unicode Data Files and Software License.
2. Restricted Rights Legend. Any technical data or software which is
licensed to the United States of America, its agencies and/or Each version of the Unicode Standard has further specifications of
instrumentalities under this Agreement is commercial technical data rights and restrictions of use. For the book editions (Unicode 5.0
or commercial computer software developed exclusively at private and earlier), these are found on the back of the title page.
expense as defined in FAR 2.101, or DFARS 252.227-7014 (June 1995),
as applicable. For technical data, use, duplication, or disclosure The Unicode PDF online code charts carry specific restrictions.
by the Government is subject to restrictions as set forth in DFARS Those restrictions are incorporated as the first page of each PDF
202.227-7015 Technical Data, Commercial and Items (Nov 1995) and code chart.
this Agreement. For Software, in accordance with FAR 12-212 or DFARS
227-7202, as applicable, use, duplication or disclosure by the All other files, including online documentation of the core
Government is subject to the restrictions set forth in this specification for Unicode 6.0 and later, are covered under these
Agreement. general Terms of Use.
3. Warranties and Disclaimers.
1. This publication and/or website may include technical or No license is granted to "mirror" the Unicode website where a fee is
typographical errors or other inaccuracies . Changes are charged for access to the "mirror" site.
periodically added to the information herein; these changes
will be incorporated in new editions of the publication and/or Modification is not permitted with respect to this document. All
website. Unicode may make improvements and/or changes in the copies of this document must be verbatim.
product(s) and/or program(s) described in this publication
and/or website at any time. Restricted Rights Legend
2. If this file has been purchased on magnetic or optical
media from Unicode, Inc. the sole and exclusive remedy for any Any technical data or software which is licensed to the United
claim will be exchange of the defective media within ninety States of America, its agencies and/or instrumentalities under this
(90) days of original purchase. Agreement is commercial technical data or commercial computer
3. EXCEPT AS PROVIDED IN SECTION C.2, THIS PUBLICATION AND/OR software developed exclusively at private expense as defined in FAR
SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND 2.101, or DFARS 252.227-7014 (June 1995), as applicable. For
EITHER EXPRESS, IMPLIED, OR STATUTORY, INCLUDING, BUT NOT technical data, use, duplication, or disclosure by the Government is
LIMITED TO, ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A subject to restrictions as set forth in DFARS 202.227-7015 Technical
PARTICULAR PURPOSE, OR NON-INFRINGEMENT. UNICODE AND ITS Data, Commercial and Items (Nov 1995) and this Agreement. For
LICENSORS ASSUME NO RESPONSIBILITY FOR ERRORS OR OMISSIONS IN Software, in accordance with FAR 12-212 or DFARS 227-7202, as
THIS PUBLICATION AND/OR SOFTWARE OR OTHER DOCUMENTS WHICH ARE applicable, use, duplication or disclosure by the Government is
REFERENCED BY OR LINKED TO THIS PUBLICATION OR THE UNICODE subject to the restrictions set forth in this Agreement.
WEBSITE.
4. Waiver of Damages. In no event shall Unicode or its licensors be Warranties and Disclaimers
liable for any special, incidental, indirect or consequential This publication and/or website may include technical or
damages of any kind, or any damages whatsoever, whether or not typographical errors or other inaccuracies. Changes are periodically
Unicode was advised of the possibility of the damage, including, added to the information herein; these changes will be incorporated
without limitation, those resulting from the following: loss of use, in new editions of the publication and/or website. Unicode, Inc. may
data or profits, in connection with the use, modification or make improvements and/or changes in the product(s) and/or program(s)
distribution of this information or its derivatives. described in this publication and/or website at any time.
5. Trademarks.
1. Unicode and the Unicode logo are registered trademarks of If this file has been purchased on magnetic or optical media from
Unicode, Inc. Unicode, Inc. the sole and exclusive remedy for any claim will be
2. This site contains product names and corporate names of exchange of the defective media within ninety (90) days of original
other companies. All product names and company names and logos purchase.
mentioned herein are the trademarks or registered trademarks
of their respective owners. Other products and corporate names EXCEPT AS PROVIDED IN SECTION E.2, THIS PUBLICATION AND/OR SOFTWARE
mentioned herein which are trademarks of a third party are IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND EITHER EXPRESS,
used only for explanation and for the owners' benefit and with IMPLIED, OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, ANY WARRANTIES
no intent to infringe. OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR
3. Use of third party products or information referred to NON-INFRINGEMENT. UNICODE, INC. AND ITS LICENSORS ASSUME NO
herein is at the user's risk. RESPONSIBILITY FOR ERRORS OR OMISSIONS IN THIS PUBLICATION AND/OR
6. Miscellaneous. SOFTWARE OR OTHER DOCUMENTS WHICH ARE REFERENCED BY OR LINKED TO
1. Jurisdiction and Venue. This server is operated from a THIS PUBLICATION OR THE UNICODE WEBSITE.
location in the State of California, United States of America.
Unicode makes no representation that the materials are Waiver of Damages
appropriate for use in other locations. If you access this In no event shall Unicode, Inc. or its licensors be liable for any
server from other locations, you are responsible for special, incidental, indirect or consequential damages of any kind,
compliance with local laws. This Agreement, all use of this or any damages whatsoever, whether or not Unicode, Inc. was advised
site and any claims and damages resulting from use of this of the possibility of the damage, including, without limitation,
site are governed solely by the laws of the State of those resulting from the following: loss of use, data or profits, in
California without regard to any principles which would apply connection with the use, modification or distribution of this
the laws of a different jurisdiction. The user agrees that any information or its derivatives.
disputes regarding this site shall be resolved solely in the
courts located in Santa Clara County, California. The user Trademarks & Logos
agrees said courts have personal jurisdiction and agree to The Unicode Word Mark and the Unicode Logo are trademarks of
waive any right to transfer the dispute to any other forum. Unicode, Inc. “The Unicode Consortium” and “Unicode, Inc.” are trade
2. Modification by Unicode Unicode shall have the right to names of Unicode, Inc. Use of the information and materials found on
modify this Agreement at any time by posting it to this site. this website indicates your acknowledgement of Unicode, Inc.s
The user may not assign any part of this Agreement without exclusive worldwide rights in the Unicode Word Mark, the Unicode
Unicode's prior written consent. Logo, and the Unicode trade names.
3. Taxes. The user agrees to pay any taxes arising from access
to this website or use of the information herein, except for The Unicode Consortium Name and Trademark Usage Policy (“Trademark
those based on Unicode's net income. Policy”) are incorporated herein by reference and you agree to abide
4. Severability. If any provision of this Agreement is by the provisions of the Trademark Policy, which may be changed from
declared invalid or unenforceable, the remaining provisions of time to time in the sole discretion of Unicode, Inc.
this Agreement shall remain in effect.
5. Entire Agreement. This Agreement constitutes the entire All third party trademarks referenced herein are the property of
agreement between the parties. their respective owners.
Miscellaneous
Jurisdiction and Venue. This website is operated from a location in
the State of California, United States of America. Unicode, Inc.
makes no representation that the materials are appropriate for use
in other locations. If you access this website from other locations,
you are responsible for compliance with local laws. This Agreement,
all use of this website and any claims and damages resulting from
use of this website are governed solely by the laws of the State of
California without regard to any principles which would apply the
laws of a different jurisdiction. The user agrees that any disputes
regarding this website shall be resolved solely in the courts
located in Santa Clara County, California. The user agrees said
courts have personal jurisdiction and agree to waive any right to
transfer the dispute to any other forum.
Modification by Unicode, Inc. Unicode, Inc. shall have the right to
modify this Agreement at any time by posting it to this website. The
user may not assign any part of this Agreement without Unicode,
Inc.s prior written consent.
Taxes. The user agrees to pay any taxes arising from access to this
website or use of the information herein, except for those based on
Unicodes net income.
Severability. If any provision of this Agreement is declared
invalid or unenforceable, the remaining provisions of this Agreement
shall remain in effect.
Entire Agreement. This Agreement constitutes the entire agreement
between the parties.
EXHIBIT 1 EXHIBIT 1
UNICODE, INC. LICENSE AGREEMENT - DATA FILES AND SOFTWARE UNICODE, INC. LICENSE AGREEMENT - DATA FILES AND SOFTWARE
Unicode Data Files include all data files under the directories See Terms of Use <https://www.unicode.org/copyright.html>
http://www.unicode.org/Public/, http://www.unicode.org/reports/, and for definitions of Unicode Inc.s Data Files and Software.
http://www.unicode.org/cldr/data/ . Unicode Software includes any source code
published in the Unicode Standard or under the directories
http://www.unicode.org/Public/, http://www.unicode.org/reports/, and
http://www.unicode.org/cldr/data/.
NOTICE TO USER: Carefully read the following legal agreement. BY NOTICE TO USER: Carefully read the following legal agreement.
DOWNLOADING, INSTALLING, COPYING OR OTHERWISE USING UNICODE INC.'S DATA FILES BY DOWNLOADING, INSTALLING, COPYING OR OTHERWISE USING UNICODE INC.'S
("DATA FILES"), AND/OR SOFTWARE ("SOFTWARE"), YOU UNEQUIVOCALLY ACCEPT, AND DATA FILES ("DATA FILES"), AND/OR SOFTWARE ("SOFTWARE"),
AGREE TO BE BOUND BY, ALL OF THE TERMS AND CONDITIONS OF THIS AGREEMENT. IF YOU YOU UNEQUIVOCALLY ACCEPT, AND AGREE TO BE BOUND BY, ALL OF THE
DO NOT AGREE, DO NOT DOWNLOAD, INSTALL, COPY, DISTRIBUTE OR USE THE DATA FILES TERMS AND CONDITIONS OF THIS AGREEMENT.
OR SOFTWARE. IF YOU DO NOT AGREE, DO NOT DOWNLOAD, INSTALL, COPY, DISTRIBUTE OR USE
THE DATA FILES OR SOFTWARE.
COPYRIGHT AND PERMISSION NOTICE COPYRIGHT AND PERMISSION NOTICE
Copyright (c) 1991-2008 Unicode, Inc. All rights reserved. Distributed under Copyright © 1991-2023 Unicode, Inc. All rights reserved.
the Terms of Use in http://www.unicode.org/copyright.html. Distributed under the Terms of Use in https://www.unicode.org/copyright.html.
Permission is hereby granted, free of charge, to any person obtaining a copy Permission is hereby granted, free of charge, to any person obtaining
of the Unicode data files and any associated documentation (the "Data Files") or a copy of the Unicode data files and any associated documentation
Unicode software and any associated documentation (the "Software") to deal in (the "Data Files") or Unicode software and any associated documentation
the Data Files or Software without restriction, including without limitation the (the "Software") to deal in the Data Files or Software
rights to use, copy, modify, merge, publish, distribute, and/or sell copies of without restriction, including without limitation the rights to use,
the Data Files or Software, and to permit persons to whom the Data Files or copy, modify, merge, publish, distribute, and/or sell copies of
Software are furnished to do so, provided that (a) the above copyright notice(s) the Data Files or Software, and to permit persons to whom the Data Files
and this permission notice appear with all copies of the Data Files or Software, or Software are furnished to do so, provided that either
(b) both the above copyright notice(s) and this permission notice appear in (a) this copyright and permission notice appear with all copies
associated documentation, and (c) there is clear notice in each modified Data of the Data Files or Software, or
File or in the Software as well as in the documentation associated with the Data (b) this copyright and permission notice appear in associated
File(s) or Software that the data or software has been modified. Documentation.
THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF
KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NONINFRINGEMENT OF THIRD PARTY RIGHTS.
IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS
NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL
DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THE DATA FILES OR SOFTWARE. TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THE DATA FILES OR SOFTWARE.
Except as contained in this notice, the name of a copyright holder shall not Except as contained in this notice, the name of a copyright holder
be used in advertising or otherwise to promote the sale, use or other dealings shall not be used in advertising or otherwise to promote the sale,
in these Data Files or Software without prior written authorization of the use or other dealings in these Data Files or Software without prior
copyright holder. written authorization of the copyright holder.
Unicode and the Unicode logo are trademarks of Unicode, Inc., and may be
registered in some jurisdictions. All other trademarks and registered trademarks
mentioned herein are the property of their respective owners.
*************************************************************************** ***************************************************************************

View File

@@ -79,7 +79,6 @@ extern "C" {
typedef const struct my_charset_handler_st MY_CHARSET_HANDLER; typedef const struct my_charset_handler_st MY_CHARSET_HANDLER;
typedef const struct my_collation_handler_st MY_COLLATION_HANDLER; typedef const struct my_collation_handler_st MY_COLLATION_HANDLER;
typedef const struct unicase_info_st MY_UNICASE_INFO;
typedef const struct casefold_info_st MY_CASEFOLD_INFO; typedef const struct casefold_info_st MY_CASEFOLD_INFO;
typedef const struct uni_ctype_st MY_UNI_CTYPE; typedef const struct uni_ctype_st MY_UNI_CTYPE;
typedef const struct my_uni_idx_st MY_UNI_IDX; typedef const struct my_uni_idx_st MY_UNI_IDX;
@@ -97,29 +96,10 @@ struct casefold_info_st
{ {
my_wc_t maxchar; my_wc_t maxchar;
const MY_CASEFOLD_CHARACTER * const *page; const MY_CASEFOLD_CHARACTER * const *page;
const uint16 * const *simple_weight; /* For general_ci-alike collations */
}; };
typedef struct unicase_info_char_st
{
uint32 toupper;
uint32 tolower;
uint32 sort;
} MY_UNICASE_CHARACTER;
struct unicase_info_st
{
my_wc_t maxchar;
MY_UNICASE_CHARACTER **page;
};
extern MY_UNICASE_INFO my_unicase_default;
extern MY_UNICASE_INFO my_unicase_turkish;
extern MY_UNICASE_INFO my_unicase_mysql500;
extern MY_UNICASE_INFO my_unicase_unicode520;
#define MY_UCA_MAX_CONTRACTION 6 #define MY_UCA_MAX_CONTRACTION 6
/* /*
The DUCET tables in ctype-uca.c are dumped with a limit of 8 weights The DUCET tables in ctype-uca.c are dumped with a limit of 8 weights
@@ -795,7 +775,6 @@ struct charset_info_st
const uint16 *tab_to_uni; const uint16 *tab_to_uni;
MY_UNI_IDX *tab_from_uni; MY_UNI_IDX *tab_from_uni;
MY_CASEFOLD_INFO *casefold; MY_CASEFOLD_INFO *casefold;
MY_UNICASE_INFO *caseinfo;
const uchar *state_map; const uchar *state_map;
const uchar *ident_map; const uchar *ident_map;
uint strxfrm_multiply; uint strxfrm_multiply;
@@ -1691,7 +1670,7 @@ int my_wildcmp_unicode(CHARSET_INFO *cs,
const char *str, const char *str_end, const char *str, const char *str_end,
const char *wildstr, const char *wildend, const char *wildstr, const char *wildend,
int escape, int w_one, int w_many, int escape, int w_one, int w_many,
MY_UNICASE_INFO *weights); MY_CASEFOLD_INFO *weights);
extern my_bool my_parse_charset_xml(MY_CHARSET_LOADER *loader, extern my_bool my_parse_charset_xml(MY_CHARSET_LOADER *loader,
const char *buf, size_t buflen); const char *buf, size_t buflen);

View File

@@ -21,6 +21,12 @@ INSERT INTO case_folding (code) VALUES
(0x0131) /* LATIN SMALL LETTER DOTLESS I */ (0x0131) /* LATIN SMALL LETTER DOTLESS I */
; ;
INSERT INTO case_folding (code) VALUES
(0x2C2F) /* GLAGOLITIC CAPITAL LETTER CAUDATE CHRIVI (Unicode-14.0) */,
(0x2C5F) /* GLAGOLITIC SMALL LETTER CAUDATE CHRIVI (Unicode-14.0) */,
(0xA7C0) /* LATIN CAPITAL LETTER OLD POLISH O (Unicode-14.0) */,
(0xA7C1) /* LATIN SMALL LETTER OLD POLISH O (Unicode-14.0) */;
UPDATE case_folding SET c=CHAR(code USING ucs2); UPDATE case_folding SET c=CHAR(code USING ucs2);
SELECT HEX(code), HEX(LOWER(c)), HEX(UPPER(c)), c FROM case_folding; SELECT HEX(code), HEX(LOWER(c)), HEX(UPPER(c)), c FROM case_folding;
DROP TABLE case_folding; DROP TABLE case_folding;

View File

@@ -0,0 +1,16 @@
CREATE OR REPLACE TABLE case_folding AS SELECT 0 AS code, SPACE(32) AS c, SPACE(64) AS comment LIMIT 0;
SHOW CREATE TABLE case_folding;
INSERT INTO case_folding (code, comment) VALUES (0x10595, 'VITHKUQI CAPITAL LETTER ZE (Unicode-14.0)');
INSERT INTO case_folding (code, comment) VALUES (0x105BC, 'VITHKUQI SMALL LETTER ZE (Unicode-14.0)');
INSERT INTO case_folding (code, comment) VALUES (0x1E921, 'ADLAM CAPITAL LETTER SHA (Unicode-9.0)');
INSERT INTO case_folding (code, comment) VALUES (0x1E943, 'ADLAM SMALL LETTER SHA (Unicode-9.0)');
UPDATE case_folding SET c=CHAR(code USING utf32);
SELECT
HEX(CONVERT(c USING utf32)) AS ch,
HEX(CONVERT(LOWER(c) USING utf32)) AS cl,
HEX(CONVERT(UPPER(c) USING utf32)) AS cu,
comment
FROM case_folding ORDER BY BINARY(c);
DROP TABLE case_folding;

View File

@@ -3074,6 +3074,11 @@ INSERT INTO case_folding (code) VALUES
(0x0130) /* LATIN CAPITAL LETTER I WITH DOT ABOVE */, (0x0130) /* LATIN CAPITAL LETTER I WITH DOT ABOVE */,
(0x0131) /* LATIN SMALL LETTER DOTLESS I */ (0x0131) /* LATIN SMALL LETTER DOTLESS I */
; ;
INSERT INTO case_folding (code) VALUES
(0x2C2F) /* GLAGOLITIC CAPITAL LETTER CAUDATE CHRIVI (Unicode-14.0) */,
(0x2C5F) /* GLAGOLITIC SMALL LETTER CAUDATE CHRIVI (Unicode-14.0) */,
(0xA7C0) /* LATIN CAPITAL LETTER OLD POLISH O (Unicode-14.0) */,
(0xA7C1) /* LATIN SMALL LETTER OLD POLISH O (Unicode-14.0) */;
UPDATE case_folding SET c=CHAR(code USING ucs2); UPDATE case_folding SET c=CHAR(code USING ucs2);
SELECT HEX(code), HEX(LOWER(c)), HEX(UPPER(c)), c FROM case_folding; SELECT HEX(code), HEX(LOWER(c)), HEX(UPPER(c)), c FROM case_folding;
HEX(code) HEX(LOWER(c)) HEX(UPPER(c)) c HEX(code) HEX(LOWER(c)) HEX(UPPER(c)) c
@@ -3091,6 +3096,10 @@ HEX(code) HEX(LOWER(c)) HEX(UPPER(c)) c
69 69 49 i 69 69 49 i
130 69 C4B0 İ 130 69 C4B0 İ
131 C4B1 49 ı 131 C4B1 49 ı
2C2F E2B0AF E2B0AF Ⱟ
2C5F E2B19F E2B19F ⱟ
A7C0 EA9F80 EA9F80 Ꟁ
A7C1 EA9F81 EA9F81 ꟁ
DROP TABLE case_folding; DROP TABLE case_folding;
# #
# End of 10.3 tests # End of 10.3 tests
@@ -3267,6 +3276,11 @@ INSERT INTO case_folding (code) VALUES
(0x0130) /* LATIN CAPITAL LETTER I WITH DOT ABOVE */, (0x0130) /* LATIN CAPITAL LETTER I WITH DOT ABOVE */,
(0x0131) /* LATIN SMALL LETTER DOTLESS I */ (0x0131) /* LATIN SMALL LETTER DOTLESS I */
; ;
INSERT INTO case_folding (code) VALUES
(0x2C2F) /* GLAGOLITIC CAPITAL LETTER CAUDATE CHRIVI (Unicode-14.0) */,
(0x2C5F) /* GLAGOLITIC SMALL LETTER CAUDATE CHRIVI (Unicode-14.0) */,
(0xA7C0) /* LATIN CAPITAL LETTER OLD POLISH O (Unicode-14.0) */,
(0xA7C1) /* LATIN SMALL LETTER OLD POLISH O (Unicode-14.0) */;
UPDATE case_folding SET c=CHAR(code USING ucs2); UPDATE case_folding SET c=CHAR(code USING ucs2);
SELECT HEX(code), HEX(LOWER(c)), HEX(UPPER(c)), c FROM case_folding; SELECT HEX(code), HEX(LOWER(c)), HEX(UPPER(c)), c FROM case_folding;
HEX(code) HEX(LOWER(c)) HEX(UPPER(c)) c HEX(code) HEX(LOWER(c)) HEX(UPPER(c)) c
@@ -3284,6 +3298,39 @@ HEX(code) HEX(LOWER(c)) HEX(UPPER(c)) c
69 69 49 i 69 69 49 i
130 69 C4B0 İ 130 69 C4B0 İ
131 C4B1 49 ı 131 C4B1 49 ı
2C2F E2B19F E2B0AF Ⱟ
2C5F E2B19F E2B0AF ⱟ
A7C0 EA9F81 EA9F80 Ꟁ
A7C1 EA9F81 EA9F80 ꟁ
DROP TABLE case_folding;
#
# MDEV-30577 Case folding for uca1400 collations is not up to date
#
SET NAMES utf8mb4 COLLATE utf8mb4_uca1400_test01_as_ci;
CREATE OR REPLACE TABLE case_folding AS SELECT 0 AS code, SPACE(32) AS c, SPACE(64) AS comment 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,
`comment` varchar(64) 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, comment) VALUES (0x10595, 'VITHKUQI CAPITAL LETTER ZE (Unicode-14.0)');
INSERT INTO case_folding (code, comment) VALUES (0x105BC, 'VITHKUQI SMALL LETTER ZE (Unicode-14.0)');
INSERT INTO case_folding (code, comment) VALUES (0x1E921, 'ADLAM CAPITAL LETTER SHA (Unicode-9.0)');
INSERT INTO case_folding (code, comment) VALUES (0x1E943, 'ADLAM SMALL LETTER SHA (Unicode-9.0)');
UPDATE case_folding SET c=CHAR(code USING utf32);
SELECT
HEX(CONVERT(c USING utf32)) AS ch,
HEX(CONVERT(LOWER(c) USING utf32)) AS cl,
HEX(CONVERT(UPPER(c) USING utf32)) AS cu,
comment
FROM case_folding ORDER BY BINARY(c);
ch cl cu comment
00010595 000105BC 00010595 VITHKUQI CAPITAL LETTER ZE (Unicode-14.0)
000105BC 000105BC 00010595 VITHKUQI SMALL LETTER ZE (Unicode-14.0)
0001E921 0001E943 0001E921 ADLAM CAPITAL LETTER SHA (Unicode-9.0)
0001E943 0001E943 0001E921 ADLAM SMALL LETTER SHA (Unicode-9.0)
DROP TABLE case_folding; DROP TABLE case_folding;
# #
# End of 10.10 tests # End of 10.10 tests

View File

@@ -704,6 +704,13 @@ DROP TABLE t1;
SET NAMES utf8mb4 COLLATE utf8mb4_uca1400_test01_as_ci; SET NAMES utf8mb4 COLLATE utf8mb4_uca1400_test01_as_ci;
--source include/ctype_casefolding.inc --source include/ctype_casefolding.inc
--echo #
--echo # MDEV-30577 Case folding for uca1400 collations is not up to date
--echo #
SET NAMES utf8mb4 COLLATE utf8mb4_uca1400_test01_as_ci;
--source include/ctype_casefolding_supplementary.inc
--echo # --echo #
--echo # End of 10.10 tests --echo # End of 10.10 tests
--echo # --echo #

View File

@@ -618,6 +618,11 @@ INSERT INTO case_folding (code) VALUES
(0x0130) /* LATIN CAPITAL LETTER I WITH DOT ABOVE */, (0x0130) /* LATIN CAPITAL LETTER I WITH DOT ABOVE */,
(0x0131) /* LATIN SMALL LETTER DOTLESS I */ (0x0131) /* LATIN SMALL LETTER DOTLESS I */
; ;
INSERT INTO case_folding (code) VALUES
(0x2C2F) /* GLAGOLITIC CAPITAL LETTER CAUDATE CHRIVI (Unicode-14.0) */,
(0x2C5F) /* GLAGOLITIC SMALL LETTER CAUDATE CHRIVI (Unicode-14.0) */,
(0xA7C0) /* LATIN CAPITAL LETTER OLD POLISH O (Unicode-14.0) */,
(0xA7C1) /* LATIN SMALL LETTER OLD POLISH O (Unicode-14.0) */;
UPDATE case_folding SET c=CHAR(code USING ucs2); UPDATE case_folding SET c=CHAR(code USING ucs2);
SELECT HEX(code), HEX(LOWER(c)), HEX(UPPER(c)), c FROM case_folding; SELECT HEX(code), HEX(LOWER(c)), HEX(UPPER(c)), c FROM case_folding;
HEX(code) HEX(LOWER(c)) HEX(UPPER(c)) c HEX(code) HEX(LOWER(c)) HEX(UPPER(c)) c
@@ -635,6 +640,10 @@ HEX(code) HEX(LOWER(c)) HEX(UPPER(c)) c
69 69 49 i 69 69 49 i
130 69 C4B0 İ 130 69 C4B0 İ
131 C4B1 49 ı 131 C4B1 49 ı
2C2F E2B0AF E2B0AF Ⱟ
2C5F E2B19F E2B19F ⱟ
A7C0 EA9F80 EA9F80 Ꟁ
A7C1 EA9F81 EA9F81 ꟁ
DROP TABLE case_folding; DROP TABLE case_folding;
SET NAMES utf8mb3 COLLATE utf8mb3_turkish_ci /*Unicode-4.0 folding, with Turkish mapping for I */; 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; CREATE OR REPLACE TABLE case_folding AS SELECT 0 AS code, SPACE(32) AS c LIMIT 0;
@@ -661,6 +670,11 @@ INSERT INTO case_folding (code) VALUES
(0x0130) /* LATIN CAPITAL LETTER I WITH DOT ABOVE */, (0x0130) /* LATIN CAPITAL LETTER I WITH DOT ABOVE */,
(0x0131) /* LATIN SMALL LETTER DOTLESS I */ (0x0131) /* LATIN SMALL LETTER DOTLESS I */
; ;
INSERT INTO case_folding (code) VALUES
(0x2C2F) /* GLAGOLITIC CAPITAL LETTER CAUDATE CHRIVI (Unicode-14.0) */,
(0x2C5F) /* GLAGOLITIC SMALL LETTER CAUDATE CHRIVI (Unicode-14.0) */,
(0xA7C0) /* LATIN CAPITAL LETTER OLD POLISH O (Unicode-14.0) */,
(0xA7C1) /* LATIN SMALL LETTER OLD POLISH O (Unicode-14.0) */;
UPDATE case_folding SET c=CHAR(code USING ucs2); UPDATE case_folding SET c=CHAR(code USING ucs2);
SELECT HEX(code), HEX(LOWER(c)), HEX(UPPER(c)), c FROM case_folding; SELECT HEX(code), HEX(LOWER(c)), HEX(UPPER(c)), c FROM case_folding;
HEX(code) HEX(LOWER(c)) HEX(UPPER(c)) c HEX(code) HEX(LOWER(c)) HEX(UPPER(c)) c
@@ -678,6 +692,10 @@ HEX(code) HEX(LOWER(c)) HEX(UPPER(c)) c
69 69 C4B0 i 69 69 C4B0 i
130 69 C4B0 İ 130 69 C4B0 İ
131 C4B1 49 ı 131 C4B1 49 ı
2C2F E2B0AF E2B0AF Ⱟ
2C5F E2B19F E2B19F ⱟ
A7C0 EA9F80 EA9F80 Ꟁ
A7C1 EA9F81 EA9F81 ꟁ
DROP TABLE case_folding; DROP TABLE case_folding;
SET NAMES utf8mb3 COLLATE utf8mb3_unicode_520_ci; 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; CREATE OR REPLACE TABLE case_folding AS SELECT 0 AS code, SPACE(32) AS c LIMIT 0;
@@ -704,6 +722,11 @@ INSERT INTO case_folding (code) VALUES
(0x0130) /* LATIN CAPITAL LETTER I WITH DOT ABOVE */, (0x0130) /* LATIN CAPITAL LETTER I WITH DOT ABOVE */,
(0x0131) /* LATIN SMALL LETTER DOTLESS I */ (0x0131) /* LATIN SMALL LETTER DOTLESS I */
; ;
INSERT INTO case_folding (code) VALUES
(0x2C2F) /* GLAGOLITIC CAPITAL LETTER CAUDATE CHRIVI (Unicode-14.0) */,
(0x2C5F) /* GLAGOLITIC SMALL LETTER CAUDATE CHRIVI (Unicode-14.0) */,
(0xA7C0) /* LATIN CAPITAL LETTER OLD POLISH O (Unicode-14.0) */,
(0xA7C1) /* LATIN SMALL LETTER OLD POLISH O (Unicode-14.0) */;
UPDATE case_folding SET c=CHAR(code USING ucs2); UPDATE case_folding SET c=CHAR(code USING ucs2);
SELECT HEX(code), HEX(LOWER(c)), HEX(UPPER(c)), c FROM case_folding; SELECT HEX(code), HEX(LOWER(c)), HEX(UPPER(c)), c FROM case_folding;
HEX(code) HEX(LOWER(c)) HEX(UPPER(c)) c HEX(code) HEX(LOWER(c)) HEX(UPPER(c)) c
@@ -721,6 +744,10 @@ HEX(code) HEX(LOWER(c)) HEX(UPPER(c)) c
69 69 49 i 69 69 49 i
130 69 C4B0 İ 130 69 C4B0 İ
131 C4B1 49 ı 131 C4B1 49 ı
2C2F E2B0AF E2B0AF Ⱟ
2C5F E2B19F E2B19F ⱟ
A7C0 EA9F80 EA9F80 Ꟁ
A7C1 EA9F81 EA9F81 ꟁ
DROP TABLE case_folding; DROP TABLE case_folding;
SET NAMES utf8mb3 COLLATE utf8mb3_unicode_520_nopad_ci; 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; CREATE OR REPLACE TABLE case_folding AS SELECT 0 AS code, SPACE(32) AS c LIMIT 0;
@@ -747,6 +774,11 @@ INSERT INTO case_folding (code) VALUES
(0x0130) /* LATIN CAPITAL LETTER I WITH DOT ABOVE */, (0x0130) /* LATIN CAPITAL LETTER I WITH DOT ABOVE */,
(0x0131) /* LATIN SMALL LETTER DOTLESS I */ (0x0131) /* LATIN SMALL LETTER DOTLESS I */
; ;
INSERT INTO case_folding (code) VALUES
(0x2C2F) /* GLAGOLITIC CAPITAL LETTER CAUDATE CHRIVI (Unicode-14.0) */,
(0x2C5F) /* GLAGOLITIC SMALL LETTER CAUDATE CHRIVI (Unicode-14.0) */,
(0xA7C0) /* LATIN CAPITAL LETTER OLD POLISH O (Unicode-14.0) */,
(0xA7C1) /* LATIN SMALL LETTER OLD POLISH O (Unicode-14.0) */;
UPDATE case_folding SET c=CHAR(code USING ucs2); UPDATE case_folding SET c=CHAR(code USING ucs2);
SELECT HEX(code), HEX(LOWER(c)), HEX(UPPER(c)), c FROM case_folding; SELECT HEX(code), HEX(LOWER(c)), HEX(UPPER(c)), c FROM case_folding;
HEX(code) HEX(LOWER(c)) HEX(UPPER(c)) c HEX(code) HEX(LOWER(c)) HEX(UPPER(c)) c
@@ -764,6 +796,10 @@ HEX(code) HEX(LOWER(c)) HEX(UPPER(c)) c
69 69 49 i 69 69 49 i
130 69 C4B0 İ 130 69 C4B0 İ
131 C4B1 49 ı 131 C4B1 49 ı
2C2F E2B0AF E2B0AF Ⱟ
2C5F E2B19F E2B19F ⱟ
A7C0 EA9F80 EA9F80 Ꟁ
A7C1 EA9F81 EA9F81 ꟁ
DROP TABLE case_folding; DROP TABLE case_folding;
SET NAMES utf8mb3 COLLATE utf8mb3_myanmar_ci; SET NAMES utf8mb3 COLLATE utf8mb3_myanmar_ci;
CREATE OR REPLACE TABLE case_folding AS SELECT 0 AS code, SPACE(32) AS c LIMIT 0; CREATE OR REPLACE TABLE case_folding AS SELECT 0 AS code, SPACE(32) AS c LIMIT 0;
@@ -790,6 +826,11 @@ INSERT INTO case_folding (code) VALUES
(0x0130) /* LATIN CAPITAL LETTER I WITH DOT ABOVE */, (0x0130) /* LATIN CAPITAL LETTER I WITH DOT ABOVE */,
(0x0131) /* LATIN SMALL LETTER DOTLESS I */ (0x0131) /* LATIN SMALL LETTER DOTLESS I */
; ;
INSERT INTO case_folding (code) VALUES
(0x2C2F) /* GLAGOLITIC CAPITAL LETTER CAUDATE CHRIVI (Unicode-14.0) */,
(0x2C5F) /* GLAGOLITIC SMALL LETTER CAUDATE CHRIVI (Unicode-14.0) */,
(0xA7C0) /* LATIN CAPITAL LETTER OLD POLISH O (Unicode-14.0) */,
(0xA7C1) /* LATIN SMALL LETTER OLD POLISH O (Unicode-14.0) */;
UPDATE case_folding SET c=CHAR(code USING ucs2); UPDATE case_folding SET c=CHAR(code USING ucs2);
SELECT HEX(code), HEX(LOWER(c)), HEX(UPPER(c)), c FROM case_folding; SELECT HEX(code), HEX(LOWER(c)), HEX(UPPER(c)), c FROM case_folding;
HEX(code) HEX(LOWER(c)) HEX(UPPER(c)) c HEX(code) HEX(LOWER(c)) HEX(UPPER(c)) c
@@ -807,6 +848,10 @@ HEX(code) HEX(LOWER(c)) HEX(UPPER(c)) c
69 69 49 i 69 69 49 i
130 69 C4B0 İ 130 69 C4B0 İ
131 C4B1 49 ı 131 C4B1 49 ı
2C2F E2B0AF E2B0AF Ⱟ
2C5F E2B19F E2B19F ⱟ
A7C0 EA9F80 EA9F80 Ꟁ
A7C1 EA9F81 EA9F81 ꟁ
DROP TABLE case_folding; DROP TABLE case_folding;
SET NAMES utf8mb3 COLLATE utf8mb3_thai_520_w2; 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; CREATE OR REPLACE TABLE case_folding AS SELECT 0 AS code, SPACE(32) AS c LIMIT 0;
@@ -833,6 +878,11 @@ INSERT INTO case_folding (code) VALUES
(0x0130) /* LATIN CAPITAL LETTER I WITH DOT ABOVE */, (0x0130) /* LATIN CAPITAL LETTER I WITH DOT ABOVE */,
(0x0131) /* LATIN SMALL LETTER DOTLESS I */ (0x0131) /* LATIN SMALL LETTER DOTLESS I */
; ;
INSERT INTO case_folding (code) VALUES
(0x2C2F) /* GLAGOLITIC CAPITAL LETTER CAUDATE CHRIVI (Unicode-14.0) */,
(0x2C5F) /* GLAGOLITIC SMALL LETTER CAUDATE CHRIVI (Unicode-14.0) */,
(0xA7C0) /* LATIN CAPITAL LETTER OLD POLISH O (Unicode-14.0) */,
(0xA7C1) /* LATIN SMALL LETTER OLD POLISH O (Unicode-14.0) */;
UPDATE case_folding SET c=CHAR(code USING ucs2); UPDATE case_folding SET c=CHAR(code USING ucs2);
SELECT HEX(code), HEX(LOWER(c)), HEX(UPPER(c)), c FROM case_folding; SELECT HEX(code), HEX(LOWER(c)), HEX(UPPER(c)), c FROM case_folding;
HEX(code) HEX(LOWER(c)) HEX(UPPER(c)) c HEX(code) HEX(LOWER(c)) HEX(UPPER(c)) c
@@ -850,6 +900,10 @@ HEX(code) HEX(LOWER(c)) HEX(UPPER(c)) c
69 69 49 i 69 69 49 i
130 69 C4B0 İ 130 69 C4B0 İ
131 C4B1 49 ı 131 C4B1 49 ı
2C2F E2B0AF E2B0AF Ⱟ
2C5F E2B19F E2B19F ⱟ
A7C0 EA9F80 EA9F80 Ꟁ
A7C1 EA9F81 EA9F81 ꟁ
DROP TABLE case_folding; DROP TABLE case_folding;
# #
# End of 10.3 tests # End of 10.3 tests
@@ -1805,6 +1859,11 @@ INSERT INTO case_folding (code) VALUES
(0x0130) /* LATIN CAPITAL LETTER I WITH DOT ABOVE */, (0x0130) /* LATIN CAPITAL LETTER I WITH DOT ABOVE */,
(0x0131) /* LATIN SMALL LETTER DOTLESS I */ (0x0131) /* LATIN SMALL LETTER DOTLESS I */
; ;
INSERT INTO case_folding (code) VALUES
(0x2C2F) /* GLAGOLITIC CAPITAL LETTER CAUDATE CHRIVI (Unicode-14.0) */,
(0x2C5F) /* GLAGOLITIC SMALL LETTER CAUDATE CHRIVI (Unicode-14.0) */,
(0xA7C0) /* LATIN CAPITAL LETTER OLD POLISH O (Unicode-14.0) */,
(0xA7C1) /* LATIN SMALL LETTER OLD POLISH O (Unicode-14.0) */;
UPDATE case_folding SET c=CHAR(code USING ucs2); UPDATE case_folding SET c=CHAR(code USING ucs2);
SELECT HEX(code), HEX(LOWER(c)), HEX(UPPER(c)), c FROM case_folding; SELECT HEX(code), HEX(LOWER(c)), HEX(UPPER(c)), c FROM case_folding;
HEX(code) HEX(LOWER(c)) HEX(UPPER(c)) c HEX(code) HEX(LOWER(c)) HEX(UPPER(c)) c
@@ -1822,6 +1881,10 @@ HEX(code) HEX(LOWER(c)) HEX(UPPER(c)) c
69 69 49 i 69 69 49 i
130 69 C4B0 İ 130 69 C4B0 İ
131 C4B1 49 ı 131 C4B1 49 ı
2C2F E2B19F E2B0AF Ⱟ
2C5F E2B19F E2B0AF ⱟ
A7C0 EA9F81 EA9F80 Ꟁ
A7C1 EA9F81 EA9F80 ꟁ
DROP TABLE case_folding; DROP TABLE case_folding;
# #
# End of 10.10 tests # End of 10.10 tests

View File

@@ -6636,6 +6636,11 @@ INSERT INTO case_folding (code) VALUES
(0x0130) /* LATIN CAPITAL LETTER I WITH DOT ABOVE */, (0x0130) /* LATIN CAPITAL LETTER I WITH DOT ABOVE */,
(0x0131) /* LATIN SMALL LETTER DOTLESS I */ (0x0131) /* LATIN SMALL LETTER DOTLESS I */
; ;
INSERT INTO case_folding (code) VALUES
(0x2C2F) /* GLAGOLITIC CAPITAL LETTER CAUDATE CHRIVI (Unicode-14.0) */,
(0x2C5F) /* GLAGOLITIC SMALL LETTER CAUDATE CHRIVI (Unicode-14.0) */,
(0xA7C0) /* LATIN CAPITAL LETTER OLD POLISH O (Unicode-14.0) */,
(0xA7C1) /* LATIN SMALL LETTER OLD POLISH O (Unicode-14.0) */;
UPDATE case_folding SET c=CHAR(code USING ucs2); UPDATE case_folding SET c=CHAR(code USING ucs2);
SELECT HEX(code), HEX(LOWER(c)), HEX(UPPER(c)), c FROM case_folding; SELECT HEX(code), HEX(LOWER(c)), HEX(UPPER(c)), c FROM case_folding;
HEX(code) HEX(LOWER(c)) HEX(UPPER(c)) c HEX(code) HEX(LOWER(c)) HEX(UPPER(c)) c
@@ -6653,6 +6658,10 @@ HEX(code) HEX(LOWER(c)) HEX(UPPER(c)) c
69 69 49 i 69 69 49 i
130 69 C4B0 İ 130 69 C4B0 İ
131 C4B1 49 ı 131 C4B1 49 ı
2C2F E2B0AF E2B0AF Ⱟ
2C5F E2B19F E2B19F ⱟ
A7C0 EA9F80 EA9F80 Ꟁ
A7C1 EA9F81 EA9F81 ꟁ
DROP TABLE case_folding; DROP TABLE case_folding;
SET NAMES utf8mb4 COLLATE utf8mb4_turkish_ci /*Unicode-4.0 folding with Turkish mapping for I */; 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; CREATE OR REPLACE TABLE case_folding AS SELECT 0 AS code, SPACE(32) AS c LIMIT 0;
@@ -6679,6 +6688,11 @@ INSERT INTO case_folding (code) VALUES
(0x0130) /* LATIN CAPITAL LETTER I WITH DOT ABOVE */, (0x0130) /* LATIN CAPITAL LETTER I WITH DOT ABOVE */,
(0x0131) /* LATIN SMALL LETTER DOTLESS I */ (0x0131) /* LATIN SMALL LETTER DOTLESS I */
; ;
INSERT INTO case_folding (code) VALUES
(0x2C2F) /* GLAGOLITIC CAPITAL LETTER CAUDATE CHRIVI (Unicode-14.0) */,
(0x2C5F) /* GLAGOLITIC SMALL LETTER CAUDATE CHRIVI (Unicode-14.0) */,
(0xA7C0) /* LATIN CAPITAL LETTER OLD POLISH O (Unicode-14.0) */,
(0xA7C1) /* LATIN SMALL LETTER OLD POLISH O (Unicode-14.0) */;
UPDATE case_folding SET c=CHAR(code USING ucs2); UPDATE case_folding SET c=CHAR(code USING ucs2);
SELECT HEX(code), HEX(LOWER(c)), HEX(UPPER(c)), c FROM case_folding; SELECT HEX(code), HEX(LOWER(c)), HEX(UPPER(c)), c FROM case_folding;
HEX(code) HEX(LOWER(c)) HEX(UPPER(c)) c HEX(code) HEX(LOWER(c)) HEX(UPPER(c)) c
@@ -6696,6 +6710,10 @@ HEX(code) HEX(LOWER(c)) HEX(UPPER(c)) c
69 69 C4B0 i 69 69 C4B0 i
130 69 C4B0 İ 130 69 C4B0 İ
131 C4B1 49 ı 131 C4B1 49 ı
2C2F E2B0AF E2B0AF Ⱟ
2C5F E2B19F E2B19F ⱟ
A7C0 EA9F80 EA9F80 Ꟁ
A7C1 EA9F81 EA9F81 ꟁ
DROP TABLE case_folding; DROP TABLE case_folding;
SET NAMES utf8mb4 COLLATE utf8mb4_unicode_520_ci; 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; CREATE OR REPLACE TABLE case_folding AS SELECT 0 AS code, SPACE(32) AS c LIMIT 0;
@@ -6722,6 +6740,11 @@ INSERT INTO case_folding (code) VALUES
(0x0130) /* LATIN CAPITAL LETTER I WITH DOT ABOVE */, (0x0130) /* LATIN CAPITAL LETTER I WITH DOT ABOVE */,
(0x0131) /* LATIN SMALL LETTER DOTLESS I */ (0x0131) /* LATIN SMALL LETTER DOTLESS I */
; ;
INSERT INTO case_folding (code) VALUES
(0x2C2F) /* GLAGOLITIC CAPITAL LETTER CAUDATE CHRIVI (Unicode-14.0) */,
(0x2C5F) /* GLAGOLITIC SMALL LETTER CAUDATE CHRIVI (Unicode-14.0) */,
(0xA7C0) /* LATIN CAPITAL LETTER OLD POLISH O (Unicode-14.0) */,
(0xA7C1) /* LATIN SMALL LETTER OLD POLISH O (Unicode-14.0) */;
UPDATE case_folding SET c=CHAR(code USING ucs2); UPDATE case_folding SET c=CHAR(code USING ucs2);
SELECT HEX(code), HEX(LOWER(c)), HEX(UPPER(c)), c FROM case_folding; SELECT HEX(code), HEX(LOWER(c)), HEX(UPPER(c)), c FROM case_folding;
HEX(code) HEX(LOWER(c)) HEX(UPPER(c)) c HEX(code) HEX(LOWER(c)) HEX(UPPER(c)) c
@@ -6739,6 +6762,10 @@ HEX(code) HEX(LOWER(c)) HEX(UPPER(c)) c
69 69 49 i 69 69 49 i
130 69 C4B0 İ 130 69 C4B0 İ
131 C4B1 49 ı 131 C4B1 49 ı
2C2F E2B0AF E2B0AF Ⱟ
2C5F E2B19F E2B19F ⱟ
A7C0 EA9F80 EA9F80 Ꟁ
A7C1 EA9F81 EA9F81 ꟁ
DROP TABLE case_folding; DROP TABLE case_folding;
SET NAMES utf8mb4 COLLATE utf8mb4_unicode_520_nopad_ci; 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; CREATE OR REPLACE TABLE case_folding AS SELECT 0 AS code, SPACE(32) AS c LIMIT 0;
@@ -6765,6 +6792,11 @@ INSERT INTO case_folding (code) VALUES
(0x0130) /* LATIN CAPITAL LETTER I WITH DOT ABOVE */, (0x0130) /* LATIN CAPITAL LETTER I WITH DOT ABOVE */,
(0x0131) /* LATIN SMALL LETTER DOTLESS I */ (0x0131) /* LATIN SMALL LETTER DOTLESS I */
; ;
INSERT INTO case_folding (code) VALUES
(0x2C2F) /* GLAGOLITIC CAPITAL LETTER CAUDATE CHRIVI (Unicode-14.0) */,
(0x2C5F) /* GLAGOLITIC SMALL LETTER CAUDATE CHRIVI (Unicode-14.0) */,
(0xA7C0) /* LATIN CAPITAL LETTER OLD POLISH O (Unicode-14.0) */,
(0xA7C1) /* LATIN SMALL LETTER OLD POLISH O (Unicode-14.0) */;
UPDATE case_folding SET c=CHAR(code USING ucs2); UPDATE case_folding SET c=CHAR(code USING ucs2);
SELECT HEX(code), HEX(LOWER(c)), HEX(UPPER(c)), c FROM case_folding; SELECT HEX(code), HEX(LOWER(c)), HEX(UPPER(c)), c FROM case_folding;
HEX(code) HEX(LOWER(c)) HEX(UPPER(c)) c HEX(code) HEX(LOWER(c)) HEX(UPPER(c)) c
@@ -6782,6 +6814,10 @@ HEX(code) HEX(LOWER(c)) HEX(UPPER(c)) c
69 69 49 i 69 69 49 i
130 69 C4B0 İ 130 69 C4B0 İ
131 C4B1 49 ı 131 C4B1 49 ı
2C2F E2B0AF E2B0AF Ⱟ
2C5F E2B19F E2B19F ⱟ
A7C0 EA9F80 EA9F80 Ꟁ
A7C1 EA9F81 EA9F81 ꟁ
DROP TABLE case_folding; DROP TABLE case_folding;
SET NAMES utf8mb4 COLLATE utf8mb4_myanmar_ci; SET NAMES utf8mb4 COLLATE utf8mb4_myanmar_ci;
CREATE OR REPLACE TABLE case_folding AS SELECT 0 AS code, SPACE(32) AS c LIMIT 0; CREATE OR REPLACE TABLE case_folding AS SELECT 0 AS code, SPACE(32) AS c LIMIT 0;
@@ -6808,6 +6844,11 @@ INSERT INTO case_folding (code) VALUES
(0x0130) /* LATIN CAPITAL LETTER I WITH DOT ABOVE */, (0x0130) /* LATIN CAPITAL LETTER I WITH DOT ABOVE */,
(0x0131) /* LATIN SMALL LETTER DOTLESS I */ (0x0131) /* LATIN SMALL LETTER DOTLESS I */
; ;
INSERT INTO case_folding (code) VALUES
(0x2C2F) /* GLAGOLITIC CAPITAL LETTER CAUDATE CHRIVI (Unicode-14.0) */,
(0x2C5F) /* GLAGOLITIC SMALL LETTER CAUDATE CHRIVI (Unicode-14.0) */,
(0xA7C0) /* LATIN CAPITAL LETTER OLD POLISH O (Unicode-14.0) */,
(0xA7C1) /* LATIN SMALL LETTER OLD POLISH O (Unicode-14.0) */;
UPDATE case_folding SET c=CHAR(code USING ucs2); UPDATE case_folding SET c=CHAR(code USING ucs2);
SELECT HEX(code), HEX(LOWER(c)), HEX(UPPER(c)), c FROM case_folding; SELECT HEX(code), HEX(LOWER(c)), HEX(UPPER(c)), c FROM case_folding;
HEX(code) HEX(LOWER(c)) HEX(UPPER(c)) c HEX(code) HEX(LOWER(c)) HEX(UPPER(c)) c
@@ -6825,6 +6866,10 @@ HEX(code) HEX(LOWER(c)) HEX(UPPER(c)) c
69 69 49 i 69 69 49 i
130 69 C4B0 İ 130 69 C4B0 İ
131 C4B1 49 ı 131 C4B1 49 ı
2C2F E2B0AF E2B0AF Ⱟ
2C5F E2B19F E2B19F ⱟ
A7C0 EA9F80 EA9F80 Ꟁ
A7C1 EA9F81 EA9F81 ꟁ
DROP TABLE case_folding; DROP TABLE case_folding;
SET NAMES utf8mb4 COLLATE utf8mb4_thai_520_w2; 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; CREATE OR REPLACE TABLE case_folding AS SELECT 0 AS code, SPACE(32) AS c LIMIT 0;
@@ -6851,6 +6896,11 @@ INSERT INTO case_folding (code) VALUES
(0x0130) /* LATIN CAPITAL LETTER I WITH DOT ABOVE */, (0x0130) /* LATIN CAPITAL LETTER I WITH DOT ABOVE */,
(0x0131) /* LATIN SMALL LETTER DOTLESS I */ (0x0131) /* LATIN SMALL LETTER DOTLESS I */
; ;
INSERT INTO case_folding (code) VALUES
(0x2C2F) /* GLAGOLITIC CAPITAL LETTER CAUDATE CHRIVI (Unicode-14.0) */,
(0x2C5F) /* GLAGOLITIC SMALL LETTER CAUDATE CHRIVI (Unicode-14.0) */,
(0xA7C0) /* LATIN CAPITAL LETTER OLD POLISH O (Unicode-14.0) */,
(0xA7C1) /* LATIN SMALL LETTER OLD POLISH O (Unicode-14.0) */;
UPDATE case_folding SET c=CHAR(code USING ucs2); UPDATE case_folding SET c=CHAR(code USING ucs2);
SELECT HEX(code), HEX(LOWER(c)), HEX(UPPER(c)), c FROM case_folding; SELECT HEX(code), HEX(LOWER(c)), HEX(UPPER(c)), c FROM case_folding;
HEX(code) HEX(LOWER(c)) HEX(UPPER(c)) c HEX(code) HEX(LOWER(c)) HEX(UPPER(c)) c
@@ -6868,6 +6918,10 @@ HEX(code) HEX(LOWER(c)) HEX(UPPER(c)) c
69 69 49 i 69 69 49 i
130 69 C4B0 İ 130 69 C4B0 İ
131 C4B1 49 ı 131 C4B1 49 ı
2C2F E2B0AF E2B0AF Ⱟ
2C5F E2B19F E2B19F ⱟ
A7C0 EA9F80 EA9F80 Ꟁ
A7C1 EA9F81 EA9F81 ꟁ
DROP TABLE case_folding; DROP TABLE case_folding;
# #
# End of 10.3 tests # End of 10.3 tests
@@ -11499,6 +11553,11 @@ INSERT INTO case_folding (code) VALUES
(0x0130) /* LATIN CAPITAL LETTER I WITH DOT ABOVE */, (0x0130) /* LATIN CAPITAL LETTER I WITH DOT ABOVE */,
(0x0131) /* LATIN SMALL LETTER DOTLESS I */ (0x0131) /* LATIN SMALL LETTER DOTLESS I */
; ;
INSERT INTO case_folding (code) VALUES
(0x2C2F) /* GLAGOLITIC CAPITAL LETTER CAUDATE CHRIVI (Unicode-14.0) */,
(0x2C5F) /* GLAGOLITIC SMALL LETTER CAUDATE CHRIVI (Unicode-14.0) */,
(0xA7C0) /* LATIN CAPITAL LETTER OLD POLISH O (Unicode-14.0) */,
(0xA7C1) /* LATIN SMALL LETTER OLD POLISH O (Unicode-14.0) */;
UPDATE case_folding SET c=CHAR(code USING ucs2); UPDATE case_folding SET c=CHAR(code USING ucs2);
SELECT HEX(code), HEX(LOWER(c)), HEX(UPPER(c)), c FROM case_folding; SELECT HEX(code), HEX(LOWER(c)), HEX(UPPER(c)), c FROM case_folding;
HEX(code) HEX(LOWER(c)) HEX(UPPER(c)) c HEX(code) HEX(LOWER(c)) HEX(UPPER(c)) c
@@ -11516,6 +11575,112 @@ HEX(code) HEX(LOWER(c)) HEX(UPPER(c)) c
69 69 49 i 69 69 49 i
130 69 C4B0 İ 130 69 C4B0 İ
131 C4B1 49 ı 131 C4B1 49 ı
2C2F E2B19F E2B0AF Ⱟ
2C5F E2B19F E2B0AF ⱟ
A7C0 EA9F81 EA9F80 Ꟁ
A7C1 EA9F81 EA9F80 ꟁ
DROP TABLE case_folding;
CREATE OR REPLACE TABLE case_folding AS SELECT 0 AS code, SPACE(32) AS c, SPACE(64) AS comment 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,
`comment` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_uca1400_ai_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
INSERT INTO case_folding (code, comment) VALUES (0x10595, 'VITHKUQI CAPITAL LETTER ZE (Unicode-14.0)');
INSERT INTO case_folding (code, comment) VALUES (0x105BC, 'VITHKUQI SMALL LETTER ZE (Unicode-14.0)');
INSERT INTO case_folding (code, comment) VALUES (0x1E921, 'ADLAM CAPITAL LETTER SHA (Unicode-9.0)');
INSERT INTO case_folding (code, comment) VALUES (0x1E943, 'ADLAM SMALL LETTER SHA (Unicode-9.0)');
UPDATE case_folding SET c=CHAR(code USING utf32);
SELECT
HEX(CONVERT(c USING utf32)) AS ch,
HEX(CONVERT(LOWER(c) USING utf32)) AS cl,
HEX(CONVERT(UPPER(c) USING utf32)) AS cu,
comment
FROM case_folding ORDER BY BINARY(c);
ch cl cu comment
00010595 000105BC 00010595 VITHKUQI CAPITAL LETTER ZE (Unicode-14.0)
000105BC 000105BC 00010595 VITHKUQI SMALL LETTER ZE (Unicode-14.0)
0001E921 0001E943 0001E921 ADLAM CAPITAL LETTER SHA (Unicode-9.0)
0001E943 0001E943 0001E921 ADLAM SMALL LETTER SHA (Unicode-9.0)
DROP TABLE case_folding;
SET NAMES utf8mb4 COLLATE utf8mb4_uca1400_turkish_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_turkish_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 */
;
INSERT INTO case_folding (code) VALUES
(0x2C2F) /* GLAGOLITIC CAPITAL LETTER CAUDATE CHRIVI (Unicode-14.0) */,
(0x2C5F) /* GLAGOLITIC SMALL LETTER CAUDATE CHRIVI (Unicode-14.0) */,
(0xA7C0) /* LATIN CAPITAL LETTER OLD POLISH O (Unicode-14.0) */,
(0xA7C1) /* LATIN SMALL LETTER OLD POLISH O (Unicode-14.0) */;
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 C4B1 49 I
69 69 C4B0 i
130 69 C4B0 İ
131 C4B1 49 ı
2C2F E2B19F E2B0AF Ⱟ
2C5F E2B19F E2B0AF ⱟ
A7C0 EA9F81 EA9F80 Ꟁ
A7C1 EA9F81 EA9F80 ꟁ
DROP TABLE case_folding;
CREATE OR REPLACE TABLE case_folding AS SELECT 0 AS code, SPACE(32) AS c, SPACE(64) AS comment 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_turkish_ai_ci DEFAULT NULL,
`comment` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_uca1400_turkish_ai_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
INSERT INTO case_folding (code, comment) VALUES (0x10595, 'VITHKUQI CAPITAL LETTER ZE (Unicode-14.0)');
INSERT INTO case_folding (code, comment) VALUES (0x105BC, 'VITHKUQI SMALL LETTER ZE (Unicode-14.0)');
INSERT INTO case_folding (code, comment) VALUES (0x1E921, 'ADLAM CAPITAL LETTER SHA (Unicode-9.0)');
INSERT INTO case_folding (code, comment) VALUES (0x1E943, 'ADLAM SMALL LETTER SHA (Unicode-9.0)');
UPDATE case_folding SET c=CHAR(code USING utf32);
SELECT
HEX(CONVERT(c USING utf32)) AS ch,
HEX(CONVERT(LOWER(c) USING utf32)) AS cl,
HEX(CONVERT(UPPER(c) USING utf32)) AS cu,
comment
FROM case_folding ORDER BY BINARY(c);
ch cl cu comment
00010595 000105BC 00010595 VITHKUQI CAPITAL LETTER ZE (Unicode-14.0)
000105BC 000105BC 00010595 VITHKUQI SMALL LETTER ZE (Unicode-14.0)
0001E921 0001E943 0001E921 ADLAM CAPITAL LETTER SHA (Unicode-9.0)
0001E943 0001E943 0001E921 ADLAM SMALL LETTER SHA (Unicode-9.0)
DROP TABLE case_folding; DROP TABLE case_folding;
# #
# End of 10.10 tests # End of 10.10 tests

View File

@@ -435,6 +435,11 @@ DROP PROCEDURE test_styles;
SET NAMES utf8mb4 COLLATE utf8mb4_uca1400_ai_ci; SET NAMES utf8mb4 COLLATE utf8mb4_uca1400_ai_ci;
--source include/ctype_casefolding.inc --source include/ctype_casefolding.inc
--source include/ctype_casefolding_supplementary.inc
SET NAMES utf8mb4 COLLATE utf8mb4_uca1400_turkish_ai_ci;
--source include/ctype_casefolding.inc
--source include/ctype_casefolding_supplementary.inc
--echo # --echo #
--echo # End of 10.10 tests --echo # End of 10.10 tests

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,15 @@
--echo #
--echo # Start of 10.10 tests
--echo #
--echo #
--echo # MDEV-30577 Case folding for uca1400 collations is not up to date
--echo #
SET NAMES utf8mb4 COLLATE utf8mb4_uca1400_ai_ci;
--source include/ctype_unicode_casefold_bmp.inc
--source include/ctype_unicode_casefold_supplementary.inc
--echo #
--echo # End of 10.10 tests
--echo #

View File

@@ -22,6 +22,7 @@ SET(STRINGS_SOURCES bchange.c bmove_upp.c ctype-big5.c ctype-bin.c ctype-cp932.c
ctype-czech.c ctype-euc_kr.c ctype-eucjpms.c ctype-extra.c ctype-gb2312.c ctype-gbk.c ctype-czech.c ctype-euc_kr.c ctype-eucjpms.c ctype-extra.c ctype-gb2312.c ctype-gbk.c
ctype-latin1.c ctype-mb.c ctype-simple.c ctype-sjis.c ctype-tis620.c ctype-uca.c ctype-latin1.c ctype-mb.c ctype-simple.c ctype-sjis.c ctype-tis620.c ctype-uca.c
ctype-ucs2.c ctype-ujis.c ctype-utf8.c ctype-win1250ch.c ctype.c decimal.c dtoa.c int2str.c ctype-ucs2.c ctype-ujis.c ctype-utf8.c ctype-win1250ch.c ctype.c decimal.c dtoa.c int2str.c
ctype-unidata.c
is_prefix.c llstr.c longlong2str.c my_strtoll10.c my_vsnprintf.c is_prefix.c llstr.c longlong2str.c my_strtoll10.c my_vsnprintf.c
str2int.c strcend.c strend.c strfill.c strmake.c strmov.c strnmov.c str2int.c strcend.c strend.c strfill.c strmake.c strmov.c strnmov.c
strxmov.c strxnmov.c xml.c strxmov.c strxnmov.c xml.c

View File

@@ -409,7 +409,6 @@ void dispcset(FILE *f,CHARSET_INFO *cs)
fprintf(f," NULL, /* from_uni */\n"); fprintf(f," NULL, /* from_uni */\n");
fprintf(f," NULL, /* casefold */\n"); fprintf(f," NULL, /* casefold */\n");
fprintf(f," &my_unicase_default, /* caseinfo */\n");
fprintf(f," NULL, /* state map */\n"); fprintf(f," NULL, /* state map */\n");
fprintf(f," NULL, /* ident map */\n"); fprintf(f," NULL, /* ident map */\n");
fprintf(f," 1, /* strxfrm_multiply*/\n"); fprintf(f," 1, /* strxfrm_multiply*/\n");

View File

@@ -806,7 +806,8 @@ static const MY_CASEFOLD_CHARACTER *my_casefold_pages_big5[256]=
static MY_CASEFOLD_INFO my_casefold_big5= static MY_CASEFOLD_INFO my_casefold_big5=
{ {
0xFFFF, 0xFFFF,
my_casefold_pages_big5 my_casefold_pages_big5,
NULL /* ws */
}; };
@@ -6847,7 +6848,6 @@ struct charset_info_st my_charset_big5_chinese_ci=
NULL, /* tab_to_uni */ NULL, /* tab_to_uni */
NULL, /* tab_from_uni */ NULL, /* tab_from_uni */
&my_casefold_big5, /* casefold */ &my_casefold_big5, /* casefold */
NULL, /* caseinfo */
NULL, /* state_map */ NULL, /* state_map */
NULL, /* ident_map */ NULL, /* ident_map */
1, /* strxfrm_multiply */ 1, /* strxfrm_multiply */
@@ -6879,7 +6879,6 @@ struct charset_info_st my_charset_big5_bin=
NULL, /* tab_to_uni */ NULL, /* tab_to_uni */
NULL, /* tab_from_uni */ NULL, /* tab_from_uni */
&my_casefold_big5, /* casefold */ &my_casefold_big5, /* casefold */
NULL, /* caseinfo */
NULL, /* state_map */ NULL, /* state_map */
NULL, /* ident_map */ NULL, /* ident_map */
1, /* strxfrm_multiply */ 1, /* strxfrm_multiply */
@@ -6911,7 +6910,6 @@ struct charset_info_st my_charset_big5_chinese_nopad_ci=
NULL, /* tab_to_uni */ NULL, /* tab_to_uni */
NULL, /* tab_from_uni */ NULL, /* tab_from_uni */
&my_casefold_big5, /* casefold */ &my_casefold_big5, /* casefold */
NULL, /* caseinfo */
NULL, /* state_map */ NULL, /* state_map */
NULL, /* ident_map */ NULL, /* ident_map */
1, /* strxfrm_multiply */ 1, /* strxfrm_multiply */
@@ -6943,7 +6941,6 @@ struct charset_info_st my_charset_big5_nopad_bin=
NULL, /* tab_to_uni */ NULL, /* tab_to_uni */
NULL, /* tab_from_uni */ NULL, /* tab_from_uni */
&my_casefold_big5, /* casefold */ &my_casefold_big5, /* casefold */
NULL, /* caseinfo */
NULL, /* state_map */ NULL, /* state_map */
NULL, /* ident_map */ NULL, /* ident_map */
1, /* strxfrm_multiply */ 1, /* strxfrm_multiply */

View File

@@ -625,7 +625,6 @@ struct charset_info_st my_charset_bin =
NULL, /* tab_to_uni */ NULL, /* tab_to_uni */
NULL, /* tab_from_uni */ NULL, /* tab_from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state_map */ NULL, /* state_map */
NULL, /* ident_map */ NULL, /* ident_map */
1, /* strxfrm_multiply */ 1, /* strxfrm_multiply */

View File

@@ -1706,7 +1706,8 @@ static const MY_CASEFOLD_CHARACTER *my_casefold_pages_cp932[256]=
MY_CASEFOLD_INFO my_casefold_cp932= MY_CASEFOLD_INFO my_casefold_cp932=
{ {
0xFFFF, 0xFFFF,
my_casefold_pages_cp932 my_casefold_pages_cp932,
NULL /* ws */
}; };
@@ -34805,7 +34806,6 @@ struct charset_info_st my_charset_cp932_japanese_ci=
NULL, /* tab_to_uni */ NULL, /* tab_to_uni */
NULL, /* tab_from_uni */ NULL, /* tab_from_uni */
&my_casefold_cp932, /* casefold */ &my_casefold_cp932, /* casefold */
NULL, /* caseinfo */
NULL, /* state_map */ NULL, /* state_map */
NULL, /* ident_map */ NULL, /* ident_map */
1, /* strxfrm_multiply */ 1, /* strxfrm_multiply */
@@ -34836,7 +34836,6 @@ struct charset_info_st my_charset_cp932_bin=
NULL, /* tab_to_uni */ NULL, /* tab_to_uni */
NULL, /* tab_from_uni */ NULL, /* tab_from_uni */
&my_casefold_cp932, /* casefold */ &my_casefold_cp932, /* casefold */
NULL, /* caseinfo */
NULL, /* state_map */ NULL, /* state_map */
NULL, /* ident_map */ NULL, /* ident_map */
1, /* strxfrm_multiply */ 1, /* strxfrm_multiply */
@@ -34868,7 +34867,6 @@ struct charset_info_st my_charset_cp932_japanese_nopad_ci=
NULL, /* tab_to_uni */ NULL, /* tab_to_uni */
NULL, /* tab_from_uni */ NULL, /* tab_from_uni */
&my_casefold_cp932, /* casefold */ &my_casefold_cp932, /* casefold */
NULL, /* caseinfo */
NULL, /* state_map */ NULL, /* state_map */
NULL, /* ident_map */ NULL, /* ident_map */
1, /* strxfrm_multiply */ 1, /* strxfrm_multiply */
@@ -34899,7 +34897,6 @@ struct charset_info_st my_charset_cp932_nopad_bin=
NULL, /* tab_to_uni */ NULL, /* tab_to_uni */
NULL, /* tab_from_uni */ NULL, /* tab_from_uni */
&my_casefold_cp932, /* casefold */ &my_casefold_cp932, /* casefold */
NULL, /* caseinfo */
NULL, /* state_map */ NULL, /* state_map */
NULL, /* ident_map */ NULL, /* ident_map */
1, /* strxfrm_multiply */ 1, /* strxfrm_multiply */

View File

@@ -618,7 +618,6 @@ struct charset_info_st my_charset_latin2_czech_cs =
tab_8859_2_uni, /* tab_to_uni */ tab_8859_2_uni, /* tab_to_uni */
idx_uni_8859_2, /* tab_from_uni */ idx_uni_8859_2, /* tab_from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default,/* caseinfo */
NULL, /* state_map */ NULL, /* state_map */
NULL, /* ident_map */ NULL, /* ident_map */
4, /* strxfrm_multiply */ 4, /* strxfrm_multiply */

View File

@@ -1483,7 +1483,8 @@ static const MY_CASEFOLD_CHARACTER *my_casefold_pages_euckr[256]=
static MY_CASEFOLD_INFO my_casefold_euckr= static MY_CASEFOLD_INFO my_casefold_euckr=
{ {
0xFFFF, 0xFFFF,
my_casefold_pages_euckr my_casefold_pages_euckr,
NULL /* ws */
}; };
@@ -10095,7 +10096,6 @@ struct charset_info_st my_charset_euckr_korean_ci=
NULL, /* tab_to_uni */ NULL, /* tab_to_uni */
NULL, /* tab_from_uni */ NULL, /* tab_from_uni */
&my_casefold_euckr, /* casefold */ &my_casefold_euckr, /* casefold */
NULL, /* caseinfo */
NULL, /* state_map */ NULL, /* state_map */
NULL, /* ident_map */ NULL, /* ident_map */
1, /* strxfrm_multiply */ 1, /* strxfrm_multiply */
@@ -10127,7 +10127,6 @@ struct charset_info_st my_charset_euckr_bin=
NULL, /* tab_to_uni */ NULL, /* tab_to_uni */
NULL, /* tab_from_uni */ NULL, /* tab_from_uni */
&my_casefold_euckr, /* casefold */ &my_casefold_euckr, /* casefold */
NULL, /* caseinfo */
NULL, /* state_map */ NULL, /* state_map */
NULL, /* ident_map */ NULL, /* ident_map */
1, /* strxfrm_multiply */ 1, /* strxfrm_multiply */
@@ -10159,7 +10158,6 @@ struct charset_info_st my_charset_euckr_korean_nopad_ci=
NULL, /* tab_to_uni */ NULL, /* tab_to_uni */
NULL, /* tab_from_uni */ NULL, /* tab_from_uni */
&my_casefold_euckr, /* casefold */ &my_casefold_euckr, /* casefold */
NULL, /* caseinfo */
NULL, /* state_map */ NULL, /* state_map */
NULL, /* ident_map */ NULL, /* ident_map */
1, /* strxfrm_multiply */ 1, /* strxfrm_multiply */
@@ -10191,7 +10189,6 @@ struct charset_info_st my_charset_euckr_nopad_bin=
NULL, /* tab_to_uni */ NULL, /* tab_to_uni */
NULL, /* tab_from_uni */ NULL, /* tab_from_uni */
&my_casefold_euckr, /* casefold */ &my_casefold_euckr, /* casefold */
NULL, /* caseinfo */
NULL, /* state_map */ NULL, /* state_map */
NULL, /* ident_map */ NULL, /* ident_map */
1, /* strxfrm_multiply */ 1, /* strxfrm_multiply */

View File

@@ -1779,7 +1779,8 @@ static const MY_CASEFOLD_CHARACTER *my_casefold_pages_eucjpms[512]=
static MY_CASEFOLD_INFO my_casefold_eucjpms= static MY_CASEFOLD_INFO my_casefold_eucjpms=
{ {
0x0FFFF, 0x0FFFF,
my_casefold_pages_eucjpms my_casefold_pages_eucjpms,
NULL /* ws */
}; };
@@ -67634,7 +67635,6 @@ struct charset_info_st my_charset_eucjpms_japanese_ci=
NULL, /* tab_to_uni */ NULL, /* tab_to_uni */
NULL, /* tab_from_uni */ NULL, /* tab_from_uni */
&my_casefold_eucjpms,/* casefold */ &my_casefold_eucjpms,/* casefold */
NULL, /* caseinfo */
NULL, /* state_map */ NULL, /* state_map */
NULL, /* ident_map */ NULL, /* ident_map */
1, /* strxfrm_multiply */ 1, /* strxfrm_multiply */
@@ -67666,7 +67666,6 @@ struct charset_info_st my_charset_eucjpms_bin=
NULL, /* tab_to_uni */ NULL, /* tab_to_uni */
NULL, /* tab_from_uni */ NULL, /* tab_from_uni */
&my_casefold_eucjpms,/* casefold */ &my_casefold_eucjpms,/* casefold */
NULL, /* caseinfo */
NULL, /* state_map */ NULL, /* state_map */
NULL, /* ident_map */ NULL, /* ident_map */
1, /* strxfrm_multiply */ 1, /* strxfrm_multiply */
@@ -67698,7 +67697,6 @@ struct charset_info_st my_charset_eucjpms_japanese_nopad_ci=
NULL, /* tab_to_uni */ NULL, /* tab_to_uni */
NULL, /* tab_from_uni */ NULL, /* tab_from_uni */
&my_casefold_eucjpms,/* casefold */ &my_casefold_eucjpms,/* casefold */
NULL, /* caseinfo */
NULL, /* state_map */ NULL, /* state_map */
NULL, /* ident_map */ NULL, /* ident_map */
1, /* strxfrm_multiply */ 1, /* strxfrm_multiply */
@@ -67730,7 +67728,6 @@ struct charset_info_st my_charset_eucjpms_nopad_bin=
NULL, /* tab_to_uni */ NULL, /* tab_to_uni */
NULL, /* tab_from_uni */ NULL, /* tab_from_uni */
&my_casefold_eucjpms,/* casefold */ &my_casefold_eucjpms,/* casefold */
NULL, /* caseinfo */
NULL, /* state_map */ NULL, /* state_map */
NULL, /* ident_map */ NULL, /* ident_map */
1, /* strxfrm_multiply */ 1, /* strxfrm_multiply */

View File

@@ -3690,7 +3690,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_dec8_swedish_ci, /* to_uni */ to_uni_dec8_swedish_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -3722,7 +3721,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_cp850_general_ci, /* to_uni */ to_uni_cp850_general_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -3754,7 +3752,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_latin1_german1_ci, /* to_uni */ to_uni_latin1_german1_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -3786,7 +3783,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_hp8_english_ci, /* to_uni */ to_uni_hp8_english_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -3818,7 +3814,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_koi8r_general_ci, /* to_uni */ to_uni_koi8r_general_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -3850,7 +3845,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_latin2_general_ci, /* to_uni */ to_uni_latin2_general_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -3882,7 +3876,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_swe7_swedish_ci, /* to_uni */ to_uni_swe7_swedish_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -3914,7 +3907,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_ascii_general_ci, /* to_uni */ to_uni_ascii_general_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -3946,7 +3938,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_cp1251_general_ci, /* to_uni */ to_uni_cp1251_general_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -3978,7 +3969,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_latin1_danish_ci, /* to_uni */ to_uni_latin1_danish_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -4010,7 +4000,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_hebrew_general_ci, /* to_uni */ to_uni_hebrew_general_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -4042,7 +4031,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_latin7_general_ci, /* to_uni */ to_uni_latin7_general_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -4074,7 +4062,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_latin2_general_ci, /* to_uni */ to_uni_latin2_general_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -4106,7 +4093,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_koi8u_general_ci, /* to_uni */ to_uni_koi8u_general_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -4138,7 +4124,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_cp1251_general_ci, /* to_uni */ to_uni_cp1251_general_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -4170,7 +4155,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_greek_general_ci, /* to_uni */ to_uni_greek_general_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -4202,7 +4186,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_cp1250_general_ci, /* to_uni */ to_uni_cp1250_general_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -4234,7 +4217,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_latin2_general_ci, /* to_uni */ to_uni_latin2_general_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -4266,7 +4248,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_cp1257_general_ci, /* to_uni */ to_uni_cp1257_general_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -4298,7 +4279,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_latin5_turkish_ci, /* to_uni */ to_uni_latin5_turkish_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -4330,7 +4310,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_armscii8_general_ci, /* to_uni */ to_uni_armscii8_general_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -4362,7 +4341,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_cp866_general_ci, /* to_uni */ to_uni_cp866_general_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -4394,7 +4372,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_keybcs2_general_ci, /* to_uni */ to_uni_keybcs2_general_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -4426,7 +4403,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_macce_general_ci, /* to_uni */ to_uni_macce_general_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -4458,7 +4434,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_macroman_general_ci, /* to_uni */ to_uni_macroman_general_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -4490,7 +4465,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_cp852_general_ci, /* to_uni */ to_uni_cp852_general_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -4522,7 +4496,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_latin7_general_ci, /* to_uni */ to_uni_latin7_general_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -4554,7 +4527,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_latin7_general_ci, /* to_uni */ to_uni_latin7_general_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -4586,7 +4558,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_macce_general_ci, /* to_uni */ to_uni_macce_general_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -4618,7 +4589,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_cp1250_general_ci, /* to_uni */ to_uni_cp1250_general_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -4650,7 +4620,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_latin1_general_ci, /* to_uni */ to_uni_latin1_general_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -4682,7 +4651,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_latin1_general_cs, /* to_uni */ to_uni_latin1_general_cs, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -4714,7 +4682,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_cp1251_general_ci, /* to_uni */ to_uni_cp1251_general_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -4746,7 +4713,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_cp1251_general_ci, /* to_uni */ to_uni_cp1251_general_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -4778,7 +4744,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_cp1251_general_ci, /* to_uni */ to_uni_cp1251_general_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -4810,7 +4775,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_macroman_general_ci, /* to_uni */ to_uni_macroman_general_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -4842,7 +4806,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_cp1256_general_ci, /* to_uni */ to_uni_cp1256_general_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -4874,7 +4837,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_cp1257_general_ci, /* to_uni */ to_uni_cp1257_general_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -4906,7 +4868,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_cp1257_general_ci, /* to_uni */ to_uni_cp1257_general_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -4938,7 +4899,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_armscii8_general_ci, /* to_uni */ to_uni_armscii8_general_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -4970,7 +4930,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_ascii_general_ci, /* to_uni */ to_uni_ascii_general_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -5002,7 +4961,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_cp1250_general_ci, /* to_uni */ to_uni_cp1250_general_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -5034,7 +4992,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_cp1256_general_ci, /* to_uni */ to_uni_cp1256_general_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -5066,7 +5023,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_cp866_general_ci, /* to_uni */ to_uni_cp866_general_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -5098,7 +5054,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_dec8_swedish_ci, /* to_uni */ to_uni_dec8_swedish_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -5130,7 +5085,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_greek_general_ci, /* to_uni */ to_uni_greek_general_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -5162,7 +5116,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_hebrew_general_ci, /* to_uni */ to_uni_hebrew_general_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -5194,7 +5147,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_hp8_english_ci, /* to_uni */ to_uni_hp8_english_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -5226,7 +5178,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_keybcs2_general_ci, /* to_uni */ to_uni_keybcs2_general_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -5258,7 +5209,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_koi8r_general_ci, /* to_uni */ to_uni_koi8r_general_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -5290,7 +5240,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_koi8u_general_ci, /* to_uni */ to_uni_koi8u_general_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -5322,7 +5271,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_latin2_general_ci, /* to_uni */ to_uni_latin2_general_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -5354,7 +5302,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_latin5_turkish_ci, /* to_uni */ to_uni_latin5_turkish_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -5386,7 +5333,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_latin7_general_ci, /* to_uni */ to_uni_latin7_general_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -5418,7 +5364,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_cp850_general_ci, /* to_uni */ to_uni_cp850_general_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -5450,7 +5395,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_cp852_general_ci, /* to_uni */ to_uni_cp852_general_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -5482,7 +5426,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_swe7_swedish_ci, /* to_uni */ to_uni_swe7_swedish_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -5514,7 +5457,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_geostd8_general_ci, /* to_uni */ to_uni_geostd8_general_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -5546,7 +5488,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_geostd8_general_ci, /* to_uni */ to_uni_geostd8_general_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -5578,7 +5519,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_latin1_spanish_ci, /* to_uni */ to_uni_latin1_spanish_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -5610,7 +5550,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_cp1250_general_ci, /* to_uni */ to_uni_cp1250_general_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -5642,7 +5581,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_dec8_swedish_ci, /* to_uni */ to_uni_dec8_swedish_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -5674,7 +5612,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_cp850_general_ci, /* to_uni */ to_uni_cp850_general_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -5706,7 +5643,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_hp8_english_ci, /* to_uni */ to_uni_hp8_english_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -5738,7 +5674,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_koi8r_general_ci, /* to_uni */ to_uni_koi8r_general_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -5770,7 +5705,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_latin2_general_ci, /* to_uni */ to_uni_latin2_general_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -5802,7 +5736,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_swe7_swedish_ci, /* to_uni */ to_uni_swe7_swedish_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -5834,7 +5767,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_ascii_general_ci, /* to_uni */ to_uni_ascii_general_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -5866,7 +5798,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_hebrew_general_ci, /* to_uni */ to_uni_hebrew_general_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -5898,7 +5829,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_koi8u_general_ci, /* to_uni */ to_uni_koi8u_general_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -5930,7 +5860,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_greek_general_ci, /* to_uni */ to_uni_greek_general_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -5962,7 +5891,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_cp1250_general_ci, /* to_uni */ to_uni_cp1250_general_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -5994,7 +5922,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_latin5_turkish_ci, /* to_uni */ to_uni_latin5_turkish_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -6026,7 +5953,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_armscii8_general_ci, /* to_uni */ to_uni_armscii8_general_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -6058,7 +5984,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_cp866_general_ci, /* to_uni */ to_uni_cp866_general_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -6090,7 +6015,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_keybcs2_general_ci, /* to_uni */ to_uni_keybcs2_general_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -6122,7 +6046,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_macce_general_ci, /* to_uni */ to_uni_macce_general_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -6154,7 +6077,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_macroman_general_ci, /* to_uni */ to_uni_macroman_general_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -6186,7 +6108,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_cp852_general_ci, /* to_uni */ to_uni_cp852_general_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -6218,7 +6139,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_latin7_general_ci, /* to_uni */ to_uni_latin7_general_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -6250,7 +6170,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_macce_general_ci, /* to_uni */ to_uni_macce_general_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -6282,7 +6201,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_cp1251_general_ci, /* to_uni */ to_uni_cp1251_general_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -6314,7 +6232,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_cp1251_general_ci, /* to_uni */ to_uni_cp1251_general_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -6346,7 +6263,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_macroman_general_ci, /* to_uni */ to_uni_macroman_general_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -6378,7 +6294,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_cp1256_general_ci, /* to_uni */ to_uni_cp1256_general_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -6410,7 +6325,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_cp1257_general_ci, /* to_uni */ to_uni_cp1257_general_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -6442,7 +6356,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_cp1257_general_ci, /* to_uni */ to_uni_cp1257_general_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -6474,7 +6387,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_armscii8_general_ci, /* to_uni */ to_uni_armscii8_general_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -6506,7 +6418,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_ascii_general_ci, /* to_uni */ to_uni_ascii_general_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -6538,7 +6449,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_cp1250_general_ci, /* to_uni */ to_uni_cp1250_general_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -6570,7 +6480,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_cp1256_general_ci, /* to_uni */ to_uni_cp1256_general_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -6602,7 +6511,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_cp866_general_ci, /* to_uni */ to_uni_cp866_general_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -6634,7 +6542,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_dec8_swedish_ci, /* to_uni */ to_uni_dec8_swedish_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -6666,7 +6573,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_greek_general_ci, /* to_uni */ to_uni_greek_general_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -6698,7 +6604,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_hebrew_general_ci, /* to_uni */ to_uni_hebrew_general_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -6730,7 +6635,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_hp8_english_ci, /* to_uni */ to_uni_hp8_english_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -6762,7 +6666,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_keybcs2_general_ci, /* to_uni */ to_uni_keybcs2_general_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -6794,7 +6697,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_koi8r_general_ci, /* to_uni */ to_uni_koi8r_general_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -6826,7 +6728,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_koi8u_general_ci, /* to_uni */ to_uni_koi8u_general_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -6858,7 +6759,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_latin2_general_ci, /* to_uni */ to_uni_latin2_general_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -6890,7 +6790,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_latin5_turkish_ci, /* to_uni */ to_uni_latin5_turkish_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -6922,7 +6821,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_latin7_general_ci, /* to_uni */ to_uni_latin7_general_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -6954,7 +6852,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_cp850_general_ci, /* to_uni */ to_uni_cp850_general_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -6986,7 +6883,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_cp852_general_ci, /* to_uni */ to_uni_cp852_general_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -7018,7 +6914,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_swe7_swedish_ci, /* to_uni */ to_uni_swe7_swedish_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -7050,7 +6945,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_geostd8_general_ci, /* to_uni */ to_uni_geostd8_general_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -7082,7 +6976,6 @@ struct charset_info_st compiled_charsets[] = {
to_uni_geostd8_general_ci, /* to_uni */ to_uni_geostd8_general_ci, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/
@@ -7113,7 +7006,6 @@ struct charset_info_st compiled_charsets[] = {
NULL, /* to_uni */ NULL, /* to_uni */
NULL, /* from_uni */ NULL, /* from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state map */ NULL, /* state map */
NULL, /* ident map */ NULL, /* ident map */
1, /* strxfrm_multiply*/ 1, /* strxfrm_multiply*/

View File

@@ -822,7 +822,8 @@ static const MY_CASEFOLD_CHARACTER *my_casefold_pages_gb2312[256]=
static MY_CASEFOLD_INFO my_casefold_gb2312= static MY_CASEFOLD_INFO my_casefold_gb2312=
{ {
0xFFFF, 0xFFFF,
my_casefold_pages_gb2312 my_casefold_pages_gb2312,
NULL /* ws */
}; };
@@ -6499,7 +6500,6 @@ struct charset_info_st my_charset_gb2312_chinese_ci=
NULL, /* tab_to_uni */ NULL, /* tab_to_uni */
NULL, /* tab_from_uni */ NULL, /* tab_from_uni */
&my_casefold_gb2312,/* casefold */ &my_casefold_gb2312,/* casefold */
NULL, /* caseinfo */
NULL, /* state_map */ NULL, /* state_map */
NULL, /* ident_map */ NULL, /* ident_map */
1, /* strxfrm_multiply */ 1, /* strxfrm_multiply */
@@ -6531,7 +6531,6 @@ struct charset_info_st my_charset_gb2312_bin=
NULL, /* tab_to_uni */ NULL, /* tab_to_uni */
NULL, /* tab_from_uni */ NULL, /* tab_from_uni */
&my_casefold_gb2312,/* casefold */ &my_casefold_gb2312,/* casefold */
NULL, /* caseinfo */
NULL, /* state_map */ NULL, /* state_map */
NULL, /* ident_map */ NULL, /* ident_map */
1, /* strxfrm_multiply */ 1, /* strxfrm_multiply */
@@ -6563,7 +6562,6 @@ struct charset_info_st my_charset_gb2312_chinese_nopad_ci=
NULL, /* tab_to_uni */ NULL, /* tab_to_uni */
NULL, /* tab_from_uni */ NULL, /* tab_from_uni */
&my_casefold_gb2312,/* casefold */ &my_casefold_gb2312,/* casefold */
NULL, /* caseinfo */
NULL, /* state_map */ NULL, /* state_map */
NULL, /* ident_map */ NULL, /* ident_map */
1, /* strxfrm_multiply */ 1, /* strxfrm_multiply */
@@ -6595,7 +6593,6 @@ struct charset_info_st my_charset_gb2312_nopad_bin=
NULL, /* tab_to_uni */ NULL, /* tab_to_uni */
NULL, /* tab_from_uni */ NULL, /* tab_from_uni */
&my_casefold_gb2312,/* casefold */ &my_casefold_gb2312,/* casefold */
NULL, /* caseinfo */
NULL, /* state_map */ NULL, /* state_map */
NULL, /* ident_map */ NULL, /* ident_map */
1, /* strxfrm_multiply */ 1, /* strxfrm_multiply */

View File

@@ -1006,7 +1006,8 @@ static const MY_CASEFOLD_CHARACTER *my_casefold_pages_gbk[256]=
static MY_CASEFOLD_INFO my_casefold_gbk= static MY_CASEFOLD_INFO my_casefold_gbk=
{ {
0xFFFF, 0xFFFF,
my_casefold_pages_gbk my_casefold_pages_gbk,
NULL /* ws */
}; };
@@ -10780,7 +10781,6 @@ struct charset_info_st my_charset_gbk_chinese_ci=
NULL, /* tab_to_uni */ NULL, /* tab_to_uni */
NULL, /* tab_from_uni */ NULL, /* tab_from_uni */
&my_casefold_gbk, /* casefold */ &my_casefold_gbk, /* casefold */
NULL, /* caseinfo */
NULL, /* state_map */ NULL, /* state_map */
NULL, /* ident_map */ NULL, /* ident_map */
1, /* strxfrm_multiply */ 1, /* strxfrm_multiply */
@@ -10811,7 +10811,6 @@ struct charset_info_st my_charset_gbk_bin=
NULL, /* tab_to_uni */ NULL, /* tab_to_uni */
NULL, /* tab_from_uni */ NULL, /* tab_from_uni */
&my_casefold_gbk, /* casefold */ &my_casefold_gbk, /* casefold */
NULL, /* caseinfo */
NULL, /* state_map */ NULL, /* state_map */
NULL, /* ident_map */ NULL, /* ident_map */
1, /* strxfrm_multiply */ 1, /* strxfrm_multiply */
@@ -10843,7 +10842,6 @@ struct charset_info_st my_charset_gbk_chinese_nopad_ci=
NULL, /* tab_to_uni */ NULL, /* tab_to_uni */
NULL, /* tab_from_uni */ NULL, /* tab_from_uni */
&my_casefold_gbk, /* casefold */ &my_casefold_gbk, /* casefold */
NULL, /* caseinfo */
NULL, /* state_map */ NULL, /* state_map */
NULL, /* ident_map */ NULL, /* ident_map */
1, /* strxfrm_multiply */ 1, /* strxfrm_multiply */
@@ -10874,7 +10872,6 @@ struct charset_info_st my_charset_gbk_nopad_bin=
NULL, /* tab_to_uni */ NULL, /* tab_to_uni */
NULL, /* tab_from_uni */ NULL, /* tab_from_uni */
&my_casefold_gbk, /* casefold */ &my_casefold_gbk, /* casefold */
NULL, /* caseinfo */
NULL, /* state_map */ NULL, /* state_map */
NULL, /* ident_map */ NULL, /* ident_map */
1, /* strxfrm_multiply */ 1, /* strxfrm_multiply */

View File

@@ -449,7 +449,6 @@ struct charset_info_st my_charset_latin1=
cs_to_uni, /* tab_to_uni */ cs_to_uni, /* tab_to_uni */
NULL, /* tab_from_uni */ NULL, /* tab_from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default,/* caseinfo */
NULL, /* state_map */ NULL, /* state_map */
NULL, /* ident_map */ NULL, /* ident_map */
1, /* strxfrm_multiply */ 1, /* strxfrm_multiply */
@@ -481,7 +480,6 @@ struct charset_info_st my_charset_latin1_nopad=
cs_to_uni, /* tab_to_uni */ cs_to_uni, /* tab_to_uni */
NULL, /* tab_from_uni */ NULL, /* tab_from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state_map */ NULL, /* state_map */
NULL, /* ident_map */ NULL, /* ident_map */
1, /* strxfrm_multiply */ 1, /* strxfrm_multiply */
@@ -763,7 +761,6 @@ struct charset_info_st my_charset_latin1_german2_ci=
cs_to_uni, /* tab_to_uni */ cs_to_uni, /* tab_to_uni */
NULL, /* tab_from_uni */ NULL, /* tab_from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state_map */ NULL, /* state_map */
NULL, /* ident_map */ NULL, /* ident_map */
2, /* strxfrm_multiply */ 2, /* strxfrm_multiply */
@@ -795,7 +792,6 @@ struct charset_info_st my_charset_latin1_bin=
cs_to_uni, /* tab_to_uni */ cs_to_uni, /* tab_to_uni */
NULL, /* tab_from_uni */ NULL, /* tab_from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state_map */ NULL, /* state_map */
NULL, /* ident_map */ NULL, /* ident_map */
1, /* strxfrm_multiply */ 1, /* strxfrm_multiply */
@@ -827,7 +823,6 @@ struct charset_info_st my_charset_latin1_nopad_bin=
cs_to_uni, /* tab_to_uni */ cs_to_uni, /* tab_to_uni */
NULL, /* tab_from_uni */ NULL, /* tab_from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state_map */ NULL, /* state_map */
NULL, /* ident_map */ NULL, /* ident_map */
1, /* strxfrm_multiply */ 1, /* strxfrm_multiply */

View File

@@ -1076,7 +1076,8 @@ static const MY_CASEFOLD_CHARACTER *my_casefold_pages_sjis[256]=
static MY_CASEFOLD_INFO my_casefold_sjis= static MY_CASEFOLD_INFO my_casefold_sjis=
{ {
0xFFFF, 0xFFFF,
my_casefold_pages_sjis my_casefold_pages_sjis,
NULL /* ws */
}; };
@@ -34193,7 +34194,6 @@ struct charset_info_st my_charset_sjis_japanese_ci=
NULL, /* tab_to_uni */ NULL, /* tab_to_uni */
NULL, /* tab_from_uni */ NULL, /* tab_from_uni */
&my_casefold_sjis, /* casefold */ &my_casefold_sjis, /* casefold */
NULL, /* caseinfo */
NULL, /* state_map */ NULL, /* state_map */
NULL, /* ident_map */ NULL, /* ident_map */
1, /* strxfrm_multiply */ 1, /* strxfrm_multiply */
@@ -34224,7 +34224,6 @@ struct charset_info_st my_charset_sjis_bin=
NULL, /* tab_to_uni */ NULL, /* tab_to_uni */
NULL, /* tab_from_uni */ NULL, /* tab_from_uni */
&my_casefold_sjis, /* casefold */ &my_casefold_sjis, /* casefold */
NULL, /* caseinfo */
NULL, /* state_map */ NULL, /* state_map */
NULL, /* ident_map */ NULL, /* ident_map */
1, /* strxfrm_multiply */ 1, /* strxfrm_multiply */
@@ -34256,7 +34255,6 @@ struct charset_info_st my_charset_sjis_japanese_nopad_ci=
NULL, /* tab_to_uni */ NULL, /* tab_to_uni */
NULL, /* tab_from_uni */ NULL, /* tab_from_uni */
&my_casefold_sjis, /* casefold */ &my_casefold_sjis, /* casefold */
NULL, /* caseinfo */
NULL, /* state_map */ NULL, /* state_map */
NULL, /* ident_map */ NULL, /* ident_map */
1, /* strxfrm_multiply */ 1, /* strxfrm_multiply */
@@ -34287,7 +34285,6 @@ struct charset_info_st my_charset_sjis_nopad_bin=
NULL, /* tab_to_uni */ NULL, /* tab_to_uni */
NULL, /* tab_from_uni */ NULL, /* tab_from_uni */
&my_casefold_sjis, /* casefold */ &my_casefold_sjis, /* casefold */
NULL, /* caseinfo */
NULL, /* state_map */ NULL, /* state_map */
NULL, /* ident_map */ NULL, /* ident_map */
1, /* strxfrm_multiply */ 1, /* strxfrm_multiply */

View File

@@ -957,7 +957,6 @@ struct charset_info_st my_charset_tis620_thai_ci=
NULL, /* tab_to_uni */ NULL, /* tab_to_uni */
NULL, /* tab_from_uni */ NULL, /* tab_from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default,/* caseinfo */
NULL, /* state_map */ NULL, /* state_map */
NULL, /* ident_map */ NULL, /* ident_map */
4, /* strxfrm_multiply */ 4, /* strxfrm_multiply */
@@ -988,7 +987,6 @@ struct charset_info_st my_charset_tis620_bin=
NULL, /* tab_to_uni */ NULL, /* tab_to_uni */
NULL, /* tab_from_uni */ NULL, /* tab_from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default,/* caseinfo */
NULL, /* state_map */ NULL, /* state_map */
NULL, /* ident_map */ NULL, /* ident_map */
1, /* strxfrm_multiply */ 1, /* strxfrm_multiply */
@@ -1020,7 +1018,6 @@ struct charset_info_st my_charset_tis620_thai_nopad_ci=
NULL, /* tab_to_uni */ NULL, /* tab_to_uni */
NULL, /* tab_from_uni */ NULL, /* tab_from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state_map */ NULL, /* state_map */
NULL, /* ident_map */ NULL, /* ident_map */
4, /* strxfrm_multiply */ 4, /* strxfrm_multiply */
@@ -1052,7 +1049,6 @@ struct charset_info_st my_charset_tis620_nopad_bin=
NULL, /* tab_to_uni */ NULL, /* tab_to_uni */
NULL, /* tab_from_uni */ NULL, /* tab_from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state_map */ NULL, /* state_map */
NULL, /* ident_map */ NULL, /* ident_map */
1, /* strxfrm_multiply */ 1, /* strxfrm_multiply */

File diff suppressed because it is too large Load Diff

View File

@@ -1197,17 +1197,14 @@ my_lengthsp_mb2(CHARSET_INFO *cs __attribute__((unused)),
static inline int my_weight_mb2_utf16mb2_general_ci(uchar b0, uchar b1) static inline int my_weight_mb2_utf16mb2_general_ci(uchar b0, uchar b1)
{ {
my_wc_t wc= MY_UTF16_WC2(b0, b1); my_wc_t wc= MY_UTF16_WC2(b0, b1);
MY_UNICASE_CHARACTER *page= my_unicase_default_pages[wc >> 8]; return my_general_ci_bmp_char_to_weight((uint16) wc);
return (int) (page ? page[wc & 0xFF].sort : wc);
} }
#define MY_FUNCTION_NAME(x) my_ ## x ## _utf16_general_ci #define MY_FUNCTION_NAME(x) my_ ## x ## _utf16_general_ci
#define DEFINE_STRNXFRM_UNICODE #define DEFINE_STRNXFRM_UNICODE
#define DEFINE_STRNXFRM_UNICODE_NOPAD #define DEFINE_STRNXFRM_UNICODE_NOPAD
#define MY_MB_WC(cs, pwc, s, e) my_mb_wc_utf16_quick(pwc, s, e) #define MY_MB_WC(cs, pwc, s, e) my_mb_wc_utf16_quick(pwc, s, e)
#define OPTIMIZE_ASCII 0 #define OPTIMIZE_ASCII 0
#define UNICASE_MAXCHAR MY_UNICASE_INFO_DEFAULT_MAXCHAR #define MY_WC_WEIGHT(x) my_general_ci_char_to_weight(x)
#define UNICASE_PAGE0 my_unicase_default_page00
#define UNICASE_PAGES my_unicase_default_pages
#define WEIGHT_ILSEQ(x) (0xFF0000 + (uchar) (x)) #define WEIGHT_ILSEQ(x) (0xFF0000 + (uchar) (x))
#define WEIGHT_MB2(b0,b1) my_weight_mb2_utf16mb2_general_ci(b0,b1) #define WEIGHT_MB2(b0,b1) my_weight_mb2_utf16mb2_general_ci(b0,b1)
#define WEIGHT_MB4(b0,b1,b2,b3) MY_CS_REPLACEMENT_CHARACTER #define WEIGHT_MB4(b0,b1,b2,b3) MY_CS_REPLACEMENT_CHARACTER
@@ -1284,40 +1281,6 @@ my_uni_utf16(CHARSET_INFO *cs __attribute__((unused)),
const char charset_name_utf16le[]= "utf16le"; const char charset_name_utf16le[]= "utf16le";
#define charset_name_utf16le_length (sizeof(charset_name_utf16le)-1) #define charset_name_utf16le_length (sizeof(charset_name_utf16le)-1)
static inline void
my_tolower_utf16(MY_UNICASE_INFO *uni_plane, my_wc_t *wc)
{
MY_UNICASE_CHARACTER *page;
if ((*wc <= uni_plane->maxchar) && (page= uni_plane->page[*wc >> 8]))
*wc= page[*wc & 0xFF].tolower;
}
static inline void
my_toupper_utf16(MY_UNICASE_INFO *uni_plane, my_wc_t *wc)
{
MY_UNICASE_CHARACTER *page;
if ((*wc <= uni_plane->maxchar) && (page= uni_plane->page[*wc >> 8]))
*wc= page[*wc & 0xFF].toupper;
}
static inline void
my_tosort_utf16(MY_UNICASE_INFO *uni_plane, my_wc_t *wc)
{
if (*wc <= uni_plane->maxchar)
{
MY_UNICASE_CHARACTER *page;
if ((page= uni_plane->page[*wc >> 8]))
*wc= page[*wc & 0xFF].sort;
}
else
{
*wc= MY_CS_REPLACEMENT_CHARACTER;
}
}
static size_t static size_t
my_caseup_utf16(CHARSET_INFO *cs, const char *src, size_t srclen, my_caseup_utf16(CHARSET_INFO *cs, const char *src, size_t srclen,
@@ -1329,13 +1292,13 @@ my_caseup_utf16(CHARSET_INFO *cs, const char *src, size_t srclen,
int res; int res;
const char *srcend= src + srclen; const char *srcend= src + srclen;
char *dstend= dst + dstlen; char *dstend= dst + dstlen;
MY_UNICASE_INFO *uni_plane= cs->caseinfo; MY_CASEFOLD_INFO *uni_plane= cs->casefold;
DBUG_ASSERT(srclen <= dstlen); DBUG_ASSERT(srclen <= dstlen);
while ((src < srcend) && while ((src < srcend) &&
(res= mb_wc(cs, &wc, (uchar *) src, (uchar *) srcend)) > 0) (res= mb_wc(cs, &wc, (uchar *) src, (uchar *) srcend)) > 0)
{ {
my_toupper_utf16(uni_plane, &wc); my_toupper_unicode(uni_plane, &wc);
if (res != wc_mb(cs, wc, (uchar *) dst, (uchar *) dstend)) if (res != wc_mb(cs, wc, (uchar *) dst, (uchar *) dstend))
break; break;
src+= res; src+= res;
@@ -1354,12 +1317,12 @@ my_hash_sort_utf16_nopad(CHARSET_INFO *cs,
my_charset_conv_mb_wc mb_wc= cs->cset->mb_wc; my_charset_conv_mb_wc mb_wc= cs->cset->mb_wc;
int res; int res;
const uchar *e= s + slen; const uchar *e= s + slen;
MY_UNICASE_INFO *uni_plane= cs->caseinfo; MY_CASEFOLD_INFO *uni_plane= cs->casefold;
register ulong m1= *nr1, m2= *nr2; register ulong m1= *nr1, m2= *nr2;
while ((s < e) && (res= mb_wc(cs, &wc, (uchar *) s, (uchar *) e)) > 0) while ((s < e) && (res= mb_wc(cs, &wc, (uchar *) s, (uchar *) e)) > 0)
{ {
my_tosort_utf16(uni_plane, &wc); my_tosort_unicode(uni_plane, &wc);
MY_HASH_ADD_16(m1, m2, wc); MY_HASH_ADD_16(m1, m2, wc);
s+= res; s+= res;
} }
@@ -1387,13 +1350,13 @@ my_casedn_utf16(CHARSET_INFO *cs, const char *src, size_t srclen,
int res; int res;
const char *srcend= src + srclen; const char *srcend= src + srclen;
char *dstend= dst + dstlen; char *dstend= dst + dstlen;
MY_UNICASE_INFO *uni_plane= cs->caseinfo; MY_CASEFOLD_INFO *uni_plane= cs->casefold;
DBUG_ASSERT(srclen <= dstlen); DBUG_ASSERT(srclen <= dstlen);
while ((src < srcend) && while ((src < srcend) &&
(res= mb_wc(cs, &wc, (uchar *) src, (uchar *) srcend)) > 0) (res= mb_wc(cs, &wc, (uchar *) src, (uchar *) srcend)) > 0)
{ {
my_tolower_utf16(uni_plane, &wc); my_tolower_unicode(uni_plane, &wc);
if (res != wc_mb(cs, wc, (uchar *) dst, (uchar *) dstend)) if (res != wc_mb(cs, wc, (uchar *) dst, (uchar *) dstend))
break; break;
src+= res; src+= res;
@@ -1459,7 +1422,7 @@ my_wildcmp_utf16_ci(CHARSET_INFO *cs,
const char *wildstr,const char *wildend, const char *wildstr,const char *wildend,
int escape, int w_one, int w_many) int escape, int w_one, int w_many)
{ {
MY_UNICASE_INFO *uni_plane= cs->caseinfo; MY_CASEFOLD_INFO *uni_plane= cs->casefold;
return my_wildcmp_unicode(cs, str, str_end, wildstr, wildend, return my_wildcmp_unicode(cs, str, str_end, wildstr, wildend,
escape, w_one, w_many, uni_plane); escape, w_one, w_many, uni_plane);
} }
@@ -1637,8 +1600,7 @@ struct charset_info_st my_charset_utf16_general_ci=
NULL, /* uca */ NULL, /* uca */
NULL, /* tab_to_uni */ NULL, /* tab_to_uni */
NULL, /* tab_from_uni */ NULL, /* tab_from_uni */
NULL, /* casefold */ &my_casefold_default,/* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state_map */ NULL, /* state_map */
NULL, /* ident_map */ NULL, /* ident_map */
1, /* strxfrm_multiply */ 1, /* strxfrm_multiply */
@@ -1669,8 +1631,7 @@ struct charset_info_st my_charset_utf16_bin=
NULL, /* uca */ NULL, /* uca */
NULL, /* tab_to_uni */ NULL, /* tab_to_uni */
NULL, /* tab_from_uni */ NULL, /* tab_from_uni */
NULL, /* casefold */ &my_casefold_default,/* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state_map */ NULL, /* state_map */
NULL, /* ident_map */ NULL, /* ident_map */
1, /* strxfrm_multiply */ 1, /* strxfrm_multiply */
@@ -1701,8 +1662,7 @@ struct charset_info_st my_charset_utf16_general_nopad_ci=
NULL, /* uca */ NULL, /* uca */
NULL, /* tab_to_uni */ NULL, /* tab_to_uni */
NULL, /* tab_from_uni */ NULL, /* tab_from_uni */
NULL, /* casefold */ &my_casefold_default,/* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state_map */ NULL, /* state_map */
NULL, /* ident_map */ NULL, /* ident_map */
1, /* strxfrm_multiply */ 1, /* strxfrm_multiply */
@@ -1734,8 +1694,7 @@ struct charset_info_st my_charset_utf16_nopad_bin=
NULL, /* uca */ NULL, /* uca */
NULL, /* tab_to_uni */ NULL, /* tab_to_uni */
NULL, /* tab_from_uni */ NULL, /* tab_from_uni */
NULL, /* casefold */ &my_casefold_default,/* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state_map */ NULL, /* state_map */
NULL, /* ident_map */ NULL, /* ident_map */
1, /* strxfrm_multiply */ 1, /* strxfrm_multiply */
@@ -1759,9 +1718,7 @@ struct charset_info_st my_charset_utf16_nopad_bin=
#define DEFINE_STRNXFRM_UNICODE_NOPAD #define DEFINE_STRNXFRM_UNICODE_NOPAD
#define MY_MB_WC(cs, pwc, s, e) (my_ci_mb_wc(cs, pwc, s, e)) #define MY_MB_WC(cs, pwc, s, e) (my_ci_mb_wc(cs, pwc, s, e))
#define OPTIMIZE_ASCII 0 #define OPTIMIZE_ASCII 0
#define UNICASE_MAXCHAR MY_UNICASE_INFO_DEFAULT_MAXCHAR #define MY_WC_WEIGHT(x) my_general_ci_char_to_weight(x)
#define UNICASE_PAGE0 my_unicase_default_page00
#define UNICASE_PAGES my_unicase_default_pages
#define WEIGHT_ILSEQ(x) (0xFF0000 + (uchar) (x)) #define WEIGHT_ILSEQ(x) (0xFF0000 + (uchar) (x))
#define WEIGHT_MB2(b0,b1) my_weight_mb2_utf16mb2_general_ci(b1,b0) #define WEIGHT_MB2(b0,b1) my_weight_mb2_utf16mb2_general_ci(b1,b0)
#define WEIGHT_MB4(b0,b1,b2,b3) MY_CS_REPLACEMENT_CHARACTER #define WEIGHT_MB4(b0,b1,b2,b3) MY_CS_REPLACEMENT_CHARACTER
@@ -1996,8 +1953,7 @@ struct charset_info_st my_charset_utf16le_general_ci=
NULL, /* uca */ NULL, /* uca */
NULL, /* tab_to_uni */ NULL, /* tab_to_uni */
NULL, /* tab_from_uni */ NULL, /* tab_from_uni */
NULL, /* casefold */ &my_casefold_default,/* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state_map */ NULL, /* state_map */
NULL, /* ident_map */ NULL, /* ident_map */
1, /* strxfrm_multiply */ 1, /* strxfrm_multiply */
@@ -2028,8 +1984,7 @@ struct charset_info_st my_charset_utf16le_bin=
NULL, /* uca */ NULL, /* uca */
NULL, /* tab_to_uni */ NULL, /* tab_to_uni */
NULL, /* tab_from_uni */ NULL, /* tab_from_uni */
NULL, /* casefold */ &my_casefold_default,/* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state_map */ NULL, /* state_map */
NULL, /* ident_map */ NULL, /* ident_map */
1, /* strxfrm_multiply */ 1, /* strxfrm_multiply */
@@ -2060,8 +2015,7 @@ struct charset_info_st my_charset_utf16le_general_nopad_ci=
NULL, /* uca */ NULL, /* uca */
NULL, /* tab_to_uni */ NULL, /* tab_to_uni */
NULL, /* tab_from_uni */ NULL, /* tab_from_uni */
NULL, /* casefold */ &my_casefold_default,/* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state_map */ NULL, /* state_map */
NULL, /* ident_map */ NULL, /* ident_map */
1, /* strxfrm_multiply */ 1, /* strxfrm_multiply */
@@ -2093,8 +2047,7 @@ struct charset_info_st my_charset_utf16le_nopad_bin=
NULL, /* uca */ NULL, /* uca */
NULL, /* tab_to_uni */ NULL, /* tab_to_uni */
NULL, /* tab_from_uni */ NULL, /* tab_from_uni */
NULL, /* casefold */ &my_casefold_default,/* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state_map */ NULL, /* state_map */
NULL, /* ident_map */ NULL, /* ident_map */
1, /* strxfrm_multiply */ 1, /* strxfrm_multiply */
@@ -2130,21 +2083,14 @@ static inline int my_weight_utf32_general_ci(uchar b0, uchar b1,
uchar b2, uchar b3) uchar b2, uchar b3)
{ {
my_wc_t wc= MY_UTF32_WC4(b0, b1, b2, b3); my_wc_t wc= MY_UTF32_WC4(b0, b1, b2, b3);
if (wc <= 0xFFFF) return my_general_ci_char_to_weight(wc);
{
MY_UNICASE_CHARACTER *page= my_unicase_default_pages[wc >> 8];
return (int) (page ? page[wc & 0xFF].sort : wc);
}
return MY_CS_REPLACEMENT_CHARACTER;
} }
#define MY_FUNCTION_NAME(x) my_ ## x ## _utf32_general_ci #define MY_FUNCTION_NAME(x) my_ ## x ## _utf32_general_ci
#define DEFINE_STRNXFRM_UNICODE #define DEFINE_STRNXFRM_UNICODE
#define DEFINE_STRNXFRM_UNICODE_NOPAD #define DEFINE_STRNXFRM_UNICODE_NOPAD
#define MY_MB_WC(cs, pwc, s, e) my_mb_wc_utf32_quick(pwc, s, e) #define MY_MB_WC(cs, pwc, s, e) my_mb_wc_utf32_quick(pwc, s, e)
#define OPTIMIZE_ASCII 0 #define OPTIMIZE_ASCII 0
#define UNICASE_MAXCHAR MY_UNICASE_INFO_DEFAULT_MAXCHAR #define MY_WC_WEIGHT(x) my_general_ci_char_to_weight(x)
#define UNICASE_PAGE0 my_unicase_default_page00
#define UNICASE_PAGES my_unicase_default_pages
#define WEIGHT_ILSEQ(x) (0xFF0000 + (uchar) (x)) #define WEIGHT_ILSEQ(x) (0xFF0000 + (uchar) (x))
#define WEIGHT_MB4(b0,b1,b2,b3) my_weight_utf32_general_ci(b0, b1, b2, b3) #define WEIGHT_MB4(b0,b1,b2,b3) my_weight_utf32_general_ci(b0, b1, b2, b3)
#include "strcoll.inl" #include "strcoll.inl"
@@ -2196,40 +2142,6 @@ my_uni_utf32(CHARSET_INFO *cs __attribute__((unused)),
} }
static inline void
my_tolower_utf32(MY_UNICASE_INFO *uni_plane, my_wc_t *wc)
{
MY_UNICASE_CHARACTER *page;
if ((*wc <= uni_plane->maxchar) && (page= uni_plane->page[*wc >> 8]))
*wc= page[*wc & 0xFF].tolower;
}
static inline void
my_toupper_utf32(MY_UNICASE_INFO *uni_plane, my_wc_t *wc)
{
MY_UNICASE_CHARACTER *page;
if ((*wc <= uni_plane->maxchar) && (page= uni_plane->page[*wc >> 8]))
*wc= page[*wc & 0xFF].toupper;
}
static inline void
my_tosort_utf32(MY_UNICASE_INFO *uni_plane, my_wc_t *wc)
{
if (*wc <= uni_plane->maxchar)
{
MY_UNICASE_CHARACTER *page;
if ((page= uni_plane->page[*wc >> 8]))
*wc= page[*wc & 0xFF].sort;
}
else
{
*wc= MY_CS_REPLACEMENT_CHARACTER;
}
}
static size_t static size_t
my_lengthsp_utf32(CHARSET_INFO *cs __attribute__((unused)), my_lengthsp_utf32(CHARSET_INFO *cs __attribute__((unused)),
const char *ptr, size_t length) const char *ptr, size_t length)
@@ -2250,13 +2162,13 @@ my_caseup_utf32(CHARSET_INFO *cs, const char *src, size_t srclen,
int res; int res;
const char *srcend= src + srclen; const char *srcend= src + srclen;
char *dstend= dst + dstlen; char *dstend= dst + dstlen;
MY_UNICASE_INFO *uni_plane= cs->caseinfo; MY_CASEFOLD_INFO *uni_plane= cs->casefold;
DBUG_ASSERT(srclen <= dstlen); DBUG_ASSERT(srclen <= dstlen);
while ((src < srcend) && while ((src < srcend) &&
(res= my_utf32_uni(cs, &wc, (uchar *)src, (uchar*) srcend)) > 0) (res= my_utf32_uni(cs, &wc, (uchar *)src, (uchar*) srcend)) > 0)
{ {
my_toupper_utf32(uni_plane, &wc); my_toupper_unicode(uni_plane, &wc);
if (res != my_uni_utf32(cs, wc, (uchar*) dst, (uchar*) dstend)) if (res != my_uni_utf32(cs, wc, (uchar*) dst, (uchar*) dstend))
break; break;
src+= res; src+= res;
@@ -2273,12 +2185,12 @@ my_hash_sort_utf32_nopad(CHARSET_INFO *cs, const uchar *s, size_t slen,
my_wc_t wc; my_wc_t wc;
int res; int res;
const uchar *e= s + slen; const uchar *e= s + slen;
MY_UNICASE_INFO *uni_plane= cs->caseinfo; MY_CASEFOLD_INFO *uni_plane= cs->casefold;
register ulong m1= *nr1, m2= *nr2; register ulong m1= *nr1, m2= *nr2;
while ((res= my_utf32_uni(cs, &wc, (uchar*) s, (uchar*) e)) > 0) while ((res= my_utf32_uni(cs, &wc, (uchar*) s, (uchar*) e)) > 0)
{ {
my_tosort_utf32(uni_plane, &wc); my_tosort_unicode(uni_plane, &wc);
MY_HASH_ADD(m1, m2, (uint) (wc >> 24)); MY_HASH_ADD(m1, m2, (uint) (wc >> 24));
MY_HASH_ADD(m1, m2, (uint) (wc >> 16) & 0xFF); MY_HASH_ADD(m1, m2, (uint) (wc >> 16) & 0xFF);
MY_HASH_ADD(m1, m2, (uint) (wc >> 8) & 0xFF); MY_HASH_ADD(m1, m2, (uint) (wc >> 8) & 0xFF);
@@ -2307,12 +2219,12 @@ my_casedn_utf32(CHARSET_INFO *cs, const char *src, size_t srclen,
int res; int res;
const char *srcend= src + srclen; const char *srcend= src + srclen;
char *dstend= dst + dstlen; char *dstend= dst + dstlen;
MY_UNICASE_INFO *uni_plane= cs->caseinfo; MY_CASEFOLD_INFO *uni_plane= cs->casefold;
DBUG_ASSERT(srclen <= dstlen); DBUG_ASSERT(srclen <= dstlen);
while ((res= my_utf32_uni(cs, &wc, (uchar*) src, (uchar*) srcend)) > 0) while ((res= my_utf32_uni(cs, &wc, (uchar*) src, (uchar*) srcend)) > 0)
{ {
my_tolower_utf32(uni_plane,&wc); my_tolower_unicode(uni_plane,&wc);
if (res != my_uni_utf32(cs, wc, (uchar*) dst, (uchar*) dstend)) if (res != my_uni_utf32(cs, wc, (uchar*) dst, (uchar*) dstend))
break; break;
src+= res; src+= res;
@@ -2661,7 +2573,7 @@ my_wildcmp_utf32_ci(CHARSET_INFO *cs,
const char *wildstr, const char *wildend, const char *wildstr, const char *wildend,
int escape, int w_one, int w_many) int escape, int w_one, int w_many)
{ {
MY_UNICASE_INFO *uni_plane= cs->caseinfo; MY_CASEFOLD_INFO *uni_plane= cs->casefold;
return my_wildcmp_unicode(cs, str, str_end, wildstr, wildend, return my_wildcmp_unicode(cs, str, str_end, wildstr, wildend,
escape, w_one, w_many, uni_plane); escape, w_one, w_many, uni_plane);
} }
@@ -2840,8 +2752,7 @@ struct charset_info_st my_charset_utf32_general_ci=
NULL, /* uca */ NULL, /* uca */
NULL, /* tab_to_uni */ NULL, /* tab_to_uni */
NULL, /* tab_from_uni */ NULL, /* tab_from_uni */
NULL, /* casefold */ &my_casefold_default,/* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state_map */ NULL, /* state_map */
NULL, /* ident_map */ NULL, /* ident_map */
1, /* strxfrm_multiply */ 1, /* strxfrm_multiply */
@@ -2872,8 +2783,7 @@ struct charset_info_st my_charset_utf32_bin=
NULL, /* uca */ NULL, /* uca */
NULL, /* tab_to_uni */ NULL, /* tab_to_uni */
NULL, /* tab_from_uni */ NULL, /* tab_from_uni */
NULL, /* casefold */ &my_casefold_default,/* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state_map */ NULL, /* state_map */
NULL, /* ident_map */ NULL, /* ident_map */
1, /* strxfrm_multiply */ 1, /* strxfrm_multiply */
@@ -2904,8 +2814,7 @@ struct charset_info_st my_charset_utf32_general_nopad_ci=
NULL, /* uca */ NULL, /* uca */
NULL, /* tab_to_uni */ NULL, /* tab_to_uni */
NULL, /* tab_from_uni */ NULL, /* tab_from_uni */
NULL, /* casefold */ &my_casefold_default,/* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state_map */ NULL, /* state_map */
NULL, /* ident_map */ NULL, /* ident_map */
1, /* strxfrm_multiply */ 1, /* strxfrm_multiply */
@@ -2937,8 +2846,7 @@ struct charset_info_st my_charset_utf32_nopad_bin=
NULL, /* uca */ NULL, /* uca */
NULL, /* tab_to_uni */ NULL, /* tab_to_uni */
NULL, /* tab_from_uni */ NULL, /* tab_from_uni */
NULL, /* casefold */ &my_casefold_default,/* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state_map */ NULL, /* state_map */
NULL, /* ident_map */ NULL, /* ident_map */
1, /* strxfrm_multiply */ 1, /* strxfrm_multiply */
@@ -3028,16 +2936,14 @@ static const uchar to_upper_ucs2[] = {
static inline int my_weight_mb2_ucs2_general_ci(uchar b0, uchar b1) static inline int my_weight_mb2_ucs2_general_ci(uchar b0, uchar b1)
{ {
my_wc_t wc= UCS2_CODE(b0, b1); my_wc_t wc= UCS2_CODE(b0, b1);
MY_UNICASE_CHARACTER *page= my_unicase_default_pages[wc >> 8]; return my_general_ci_bmp_char_to_weight((uint16) wc);
return (int) (page ? page[wc & 0xFF].sort : wc);
} }
static inline int my_weight_mb2_ucs2_general_mysql500_ci(uchar b0, uchar b1) static inline int my_weight_mb2_ucs2_general_mysql500_ci(uchar b0, uchar b1)
{ {
my_wc_t wc= UCS2_CODE(b0, b1); my_wc_t wc= UCS2_CODE(b0, b1);
MY_UNICASE_CHARACTER *page= my_unicase_mysql500_pages[wc >> 8]; return my_general_mysql500_ci_bmp_char_to_weight((uint16) wc);
return (int) (page ? page[wc & 0xFF].sort : wc);
} }
@@ -3046,21 +2952,18 @@ static inline int my_weight_mb2_ucs2_general_mysql500_ci(uchar b0, uchar b1)
#define DEFINE_STRNXFRM_UNICODE_NOPAD #define DEFINE_STRNXFRM_UNICODE_NOPAD
#define MY_MB_WC(cs, pwc, s, e) my_mb_wc_ucs2_quick(pwc, s, e) #define MY_MB_WC(cs, pwc, s, e) my_mb_wc_ucs2_quick(pwc, s, e)
#define OPTIMIZE_ASCII 0 #define OPTIMIZE_ASCII 0
#define UNICASE_MAXCHAR MY_UNICASE_INFO_DEFAULT_MAXCHAR #define MY_WC_WEIGHT(x) my_general_ci_bmp_char_to_weight(x)
#define UNICASE_PAGE0 my_unicase_default_page00
#define UNICASE_PAGES my_unicase_default_pages
#define WEIGHT_ILSEQ(x) (0xFF0000 + (uchar) (x)) #define WEIGHT_ILSEQ(x) (0xFF0000 + (uchar) (x))
#define WEIGHT_MB2(b0,b1) my_weight_mb2_ucs2_general_ci(b0,b1) #define WEIGHT_MB2(b0,b1) my_weight_mb2_ucs2_general_ci(b0,b1)
#include "strcoll.inl" #include "strcoll.inl"
#define MY_FUNCTION_NAME(x) my_ ## x ## _ucs2_general_mysql500_ci #define MY_FUNCTION_NAME(x) my_ ## x ## _ucs2_general_mysql500_ci
#define DEFINE_STRNXFRM_UNICODE #define DEFINE_STRNXFRM_UNICODE
#define MY_MB_WC(cs, pwc, s, e) my_mb_wc_ucs2_quick(pwc, s, e) #define MY_MB_WC(cs, pwc, s, e) my_mb_wc_ucs2_quick(pwc, s, e)
#define OPTIMIZE_ASCII 0 #define OPTIMIZE_ASCII 0
#define UNICASE_MAXCHAR MY_UNICASE_INFO_DEFAULT_MAXCHAR #define MY_WC_WEIGHT(x) my_general_mysql500_ci_bmp_char_to_weight(x)
#define UNICASE_PAGE0 my_unicase_mysql500_page00
#define UNICASE_PAGES my_unicase_mysql500_pages
#define WEIGHT_ILSEQ(x) (0xFF0000 + (uchar) (x)) #define WEIGHT_ILSEQ(x) (0xFF0000 + (uchar) (x))
#define WEIGHT_MB2(b0,b1) my_weight_mb2_ucs2_general_mysql500_ci(b0,b1) #define WEIGHT_MB2(b0,b1) my_weight_mb2_ucs2_general_mysql500_ci(b0,b1)
#include "strcoll.inl" #include "strcoll.inl"
@@ -3118,32 +3021,6 @@ static int my_uni_ucs2(CHARSET_INFO *cs __attribute__((unused)) ,
} }
static inline void
my_tolower_ucs2(MY_UNICASE_INFO *uni_plane, my_wc_t *wc)
{
MY_UNICASE_CHARACTER *page;
if ((page= uni_plane->page[(*wc >> 8) & 0xFF]))
*wc= page[*wc & 0xFF].tolower;
}
static inline void
my_toupper_ucs2(MY_UNICASE_INFO *uni_plane, my_wc_t *wc)
{
MY_UNICASE_CHARACTER *page;
if ((page= uni_plane->page[(*wc >> 8) & 0xFF]))
*wc= page[*wc & 0xFF].toupper;
}
static inline void
my_tosort_ucs2(MY_UNICASE_INFO *uni_plane, my_wc_t *wc)
{
MY_UNICASE_CHARACTER *page;
if ((page= uni_plane->page[(*wc >> 8) & 0xFF]))
*wc= page[*wc & 0xFF].sort;
}
static size_t my_caseup_ucs2(CHARSET_INFO *cs, const char *src, size_t srclen, static size_t my_caseup_ucs2(CHARSET_INFO *cs, const char *src, size_t srclen,
char *dst, size_t dstlen) char *dst, size_t dstlen)
{ {
@@ -3151,13 +3028,13 @@ static size_t my_caseup_ucs2(CHARSET_INFO *cs, const char *src, size_t srclen,
int res; int res;
const char *srcend= src + srclen; const char *srcend= src + srclen;
char *dstend= dst + dstlen; char *dstend= dst + dstlen;
MY_UNICASE_INFO *uni_plane= cs->caseinfo; MY_CASEFOLD_INFO *uni_plane= cs->casefold;
DBUG_ASSERT(srclen <= dstlen); DBUG_ASSERT(srclen <= dstlen);
while ((src < srcend) && while ((src < srcend) &&
(res= my_ucs2_uni(cs, &wc, (uchar *)src, (uchar*) srcend)) > 0) (res= my_ucs2_uni(cs, &wc, (uchar *)src, (uchar*) srcend)) > 0)
{ {
my_toupper_ucs2(uni_plane, &wc); my_toupper_unicode_bmp(uni_plane, &wc);
if (res != my_uni_ucs2(cs, wc, (uchar*) dst, (uchar*) dstend)) if (res != my_uni_ucs2(cs, wc, (uchar*) dst, (uchar*) dstend))
break; break;
src+= res; src+= res;
@@ -3174,12 +3051,12 @@ my_hash_sort_ucs2_nopad(CHARSET_INFO *cs, const uchar *s, size_t slen,
my_wc_t wc; my_wc_t wc;
int res; int res;
const uchar *e=s+slen; const uchar *e=s+slen;
MY_UNICASE_INFO *uni_plane= cs->caseinfo; MY_CASEFOLD_INFO *uni_plane= cs->casefold;
register ulong m1= *nr1, m2= *nr2; register ulong m1= *nr1, m2= *nr2;
while ((s < e) && (res=my_ucs2_uni(cs,&wc, (uchar *)s, (uchar*)e)) >0) while ((s < e) && (res=my_ucs2_uni(cs,&wc, (uchar *)s, (uchar*)e)) >0)
{ {
my_tosort_ucs2(uni_plane, &wc); my_tosort_unicode_bmp(uni_plane, &wc);
MY_HASH_ADD_16(m1, m2, wc); MY_HASH_ADD_16(m1, m2, wc);
s+=res; s+=res;
} }
@@ -3202,13 +3079,13 @@ static size_t my_casedn_ucs2(CHARSET_INFO *cs, const char *src, size_t srclen,
int res; int res;
const char *srcend= src + srclen; const char *srcend= src + srclen;
char *dstend= dst + dstlen; char *dstend= dst + dstlen;
MY_UNICASE_INFO *uni_plane= cs->caseinfo; MY_CASEFOLD_INFO *uni_plane= cs->casefold;
DBUG_ASSERT(srclen <= dstlen); DBUG_ASSERT(srclen <= dstlen);
while ((src < srcend) && while ((src < srcend) &&
(res= my_ucs2_uni(cs, &wc, (uchar*) src, (uchar*) srcend)) > 0) (res= my_ucs2_uni(cs, &wc, (uchar*) src, (uchar*) srcend)) > 0)
{ {
my_tolower_ucs2(uni_plane, &wc); my_tolower_unicode_bmp(uni_plane, &wc);
if (res != my_uni_ucs2(cs, wc, (uchar*) dst, (uchar*) dstend)) if (res != my_uni_ucs2(cs, wc, (uchar*) dst, (uchar*) dstend))
break; break;
src+= res; src+= res;
@@ -3292,7 +3169,7 @@ int my_wildcmp_ucs2_ci(CHARSET_INFO *cs,
const char *wildstr,const char *wildend, const char *wildstr,const char *wildend,
int escape, int w_one, int w_many) int escape, int w_one, int w_many)
{ {
MY_UNICASE_INFO *uni_plane= cs->caseinfo; MY_CASEFOLD_INFO *uni_plane= cs->casefold;
return my_wildcmp_unicode(cs,str,str_end,wildstr,wildend, return my_wildcmp_unicode(cs,str,str_end,wildstr,wildend,
escape,w_one,w_many,uni_plane); escape,w_one,w_many,uni_plane);
} }
@@ -3490,8 +3367,7 @@ struct charset_info_st my_charset_ucs2_general_ci=
NULL, /* uca */ NULL, /* uca */
NULL, /* tab_to_uni */ NULL, /* tab_to_uni */
NULL, /* tab_from_uni */ NULL, /* tab_from_uni */
NULL, /* casefold */ &my_casefold_default,/* casefold */
&my_unicase_default,/* caseinfo */
NULL, /* state_map */ NULL, /* state_map */
NULL, /* ident_map */ NULL, /* ident_map */
1, /* strxfrm_multiply */ 1, /* strxfrm_multiply */
@@ -3522,8 +3398,7 @@ struct charset_info_st my_charset_ucs2_general_mysql500_ci=
NULL, /* uca */ NULL, /* uca */
NULL, /* tab_to_uni */ NULL, /* tab_to_uni */
NULL, /* tab_from_uni */ NULL, /* tab_from_uni */
NULL, /* casefold */ &my_casefold_mysql500, /* casefold */
&my_unicase_mysql500, /* caseinfo */
NULL, /* state_map */ NULL, /* state_map */
NULL, /* ident_map */ NULL, /* ident_map */
1, /* strxfrm_multiply */ 1, /* strxfrm_multiply */
@@ -3554,8 +3429,7 @@ struct charset_info_st my_charset_ucs2_bin=
NULL, /* uca */ NULL, /* uca */
NULL, /* tab_to_uni */ NULL, /* tab_to_uni */
NULL, /* tab_from_uni */ NULL, /* tab_from_uni */
NULL, /* casefold */ &my_casefold_default,/* casefold */
&my_unicase_default,/* caseinfo */
NULL, /* state_map */ NULL, /* state_map */
NULL, /* ident_map */ NULL, /* ident_map */
1, /* strxfrm_multiply */ 1, /* strxfrm_multiply */
@@ -3586,8 +3460,7 @@ struct charset_info_st my_charset_ucs2_general_nopad_ci=
NULL, /* uca */ NULL, /* uca */
NULL, /* tab_to_uni */ NULL, /* tab_to_uni */
NULL, /* tab_from_uni */ NULL, /* tab_from_uni */
NULL, /* casefold */ &my_casefold_default, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state_map */ NULL, /* state_map */
NULL, /* ident_map */ NULL, /* ident_map */
1, /* strxfrm_multiply */ 1, /* strxfrm_multiply */
@@ -3618,8 +3491,7 @@ struct charset_info_st my_charset_ucs2_nopad_bin=
NULL, /* uca */ NULL, /* uca */
NULL, /* tab_to_uni */ NULL, /* tab_to_uni */
NULL, /* tab_from_uni */ NULL, /* tab_from_uni */
NULL, /* casefold */ &my_casefold_default, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state_map */ NULL, /* state_map */
NULL, /* ident_map */ NULL, /* ident_map */
1, /* strxfrm_multiply */ 1, /* strxfrm_multiply */

View File

@@ -67140,7 +67140,8 @@ static const MY_CASEFOLD_CHARACTER *my_casefold_pages_ujis[512]=
static MY_CASEFOLD_INFO my_casefold_info_ujis= static MY_CASEFOLD_INFO my_casefold_info_ujis=
{ {
0x0FFFF, 0x0FFFF,
my_casefold_pages_ujis my_casefold_pages_ujis,
NULL /* ws */
}; };
@@ -67378,7 +67379,6 @@ struct charset_info_st my_charset_ujis_japanese_ci=
NULL, /* tab_to_uni */ NULL, /* tab_to_uni */
NULL, /* tab_from_uni */ NULL, /* tab_from_uni */
&my_casefold_info_ujis,/* casefold */ &my_casefold_info_ujis,/* casefold */
NULL, /* caseinfo */
NULL, /* state_map */ NULL, /* state_map */
NULL, /* ident_map */ NULL, /* ident_map */
1, /* strxfrm_multiply */ 1, /* strxfrm_multiply */
@@ -67410,7 +67410,6 @@ struct charset_info_st my_charset_ujis_bin=
NULL, /* tab_to_uni */ NULL, /* tab_to_uni */
NULL, /* tab_from_uni */ NULL, /* tab_from_uni */
&my_casefold_info_ujis,/* casefold */ &my_casefold_info_ujis,/* casefold */
NULL, /* caseinfo */
NULL, /* state_map */ NULL, /* state_map */
NULL, /* ident_map */ NULL, /* ident_map */
1, /* strxfrm_multiply */ 1, /* strxfrm_multiply */
@@ -67442,7 +67441,6 @@ struct charset_info_st my_charset_ujis_japanese_nopad_ci=
NULL, /* tab_to_uni */ NULL, /* tab_to_uni */
NULL, /* tab_from_uni */ NULL, /* tab_from_uni */
&my_casefold_info_ujis,/* casefold */ &my_casefold_info_ujis,/* casefold */
NULL, /* caseinfo */
NULL, /* state_map */ NULL, /* state_map */
NULL, /* ident_map */ NULL, /* ident_map */
1, /* strxfrm_multiply */ 1, /* strxfrm_multiply */
@@ -67474,7 +67472,6 @@ struct charset_info_st my_charset_ujis_nopad_bin=
NULL, /* tab_to_uni */ NULL, /* tab_to_uni */
NULL, /* tab_from_uni */ NULL, /* tab_from_uni */
&my_casefold_info_ujis,/* casefold */ &my_casefold_info_ujis,/* casefold */
NULL, /* caseinfo */
NULL, /* state_map */ NULL, /* state_map */
NULL, /* ident_map */ NULL, /* ident_map */
1, /* strxfrm_multiply */ 1, /* strxfrm_multiply */

View File

@@ -0,0 +1,704 @@
/* Copyright (c) 2000, 2013, Oracle and/or its affiliates.
Copyright (c) 2009, 2023, MariaDB Corporation.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; version 2 of the License.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA
*/
/*
Generated by:
./unidata-dump \
--mode=casefold-tr \
--page-name=u1400tr_casefold_page \
--page-name-derived=u1400_casefold_page \
--index-name=my_u1400tr_casefold_index \
UnicodeData-14.0.0.txt
*/
const MY_CASEFOLD_CHARACTER u1400tr_casefold_page00[256]={
{0x0000,0x0000},{0x0001,0x0001}, /* 0000 */
{0x0002,0x0002},{0x0003,0x0003}, /* 0002 */
{0x0004,0x0004},{0x0005,0x0005}, /* 0004 */
{0x0006,0x0006},{0x0007,0x0007}, /* 0006 */
{0x0008,0x0008},{0x0009,0x0009}, /* 0008 */
{0x000A,0x000A},{0x000B,0x000B}, /* 000A */
{0x000C,0x000C},{0x000D,0x000D}, /* 000C */
{0x000E,0x000E},{0x000F,0x000F}, /* 000E */
{0x0010,0x0010},{0x0011,0x0011}, /* 0010 */
{0x0012,0x0012},{0x0013,0x0013}, /* 0012 */
{0x0014,0x0014},{0x0015,0x0015}, /* 0014 */
{0x0016,0x0016},{0x0017,0x0017}, /* 0016 */
{0x0018,0x0018},{0x0019,0x0019}, /* 0018 */
{0x001A,0x001A},{0x001B,0x001B}, /* 001A */
{0x001C,0x001C},{0x001D,0x001D}, /* 001C */
{0x001E,0x001E},{0x001F,0x001F}, /* 001E */
{0x0020,0x0020},{0x0021,0x0021}, /* 0020 */
{0x0022,0x0022},{0x0023,0x0023}, /* 0022 */
{0x0024,0x0024},{0x0025,0x0025}, /* 0024 */
{0x0026,0x0026},{0x0027,0x0027}, /* 0026 */
{0x0028,0x0028},{0x0029,0x0029}, /* 0028 */
{0x002A,0x002A},{0x002B,0x002B}, /* 002A */
{0x002C,0x002C},{0x002D,0x002D}, /* 002C */
{0x002E,0x002E},{0x002F,0x002F}, /* 002E */
{0x0030,0x0030},{0x0031,0x0031}, /* 0030 */
{0x0032,0x0032},{0x0033,0x0033}, /* 0032 */
{0x0034,0x0034},{0x0035,0x0035}, /* 0034 */
{0x0036,0x0036},{0x0037,0x0037}, /* 0036 */
{0x0038,0x0038},{0x0039,0x0039}, /* 0038 */
{0x003A,0x003A},{0x003B,0x003B}, /* 003A */
{0x003C,0x003C},{0x003D,0x003D}, /* 003C */
{0x003E,0x003E},{0x003F,0x003F}, /* 003E */
{0x0040,0x0040},{0x0041,0x0061}, /* 0040 */
{0x0042,0x0062},{0x0043,0x0063}, /* 0042 */
{0x0044,0x0064},{0x0045,0x0065}, /* 0044 */
{0x0046,0x0066},{0x0047,0x0067}, /* 0046 */
{0x0048,0x0068},{0x0049,0x0131}, /* 0048 */
{0x004A,0x006A},{0x004B,0x006B}, /* 004A */
{0x004C,0x006C},{0x004D,0x006D}, /* 004C */
{0x004E,0x006E},{0x004F,0x006F}, /* 004E */
{0x0050,0x0070},{0x0051,0x0071}, /* 0050 */
{0x0052,0x0072},{0x0053,0x0073}, /* 0052 */
{0x0054,0x0074},{0x0055,0x0075}, /* 0054 */
{0x0056,0x0076},{0x0057,0x0077}, /* 0056 */
{0x0058,0x0078},{0x0059,0x0079}, /* 0058 */
{0x005A,0x007A},{0x005B,0x005B}, /* 005A */
{0x005C,0x005C},{0x005D,0x005D}, /* 005C */
{0x005E,0x005E},{0x005F,0x005F}, /* 005E */
{0x0060,0x0060},{0x0041,0x0061}, /* 0060 */
{0x0042,0x0062},{0x0043,0x0063}, /* 0062 */
{0x0044,0x0064},{0x0045,0x0065}, /* 0064 */
{0x0046,0x0066},{0x0047,0x0067}, /* 0066 */
{0x0048,0x0068},{0x0130,0x0069}, /* 0068 */
{0x004A,0x006A},{0x004B,0x006B}, /* 006A */
{0x004C,0x006C},{0x004D,0x006D}, /* 006C */
{0x004E,0x006E},{0x004F,0x006F}, /* 006E */
{0x0050,0x0070},{0x0051,0x0071}, /* 0070 */
{0x0052,0x0072},{0x0053,0x0073}, /* 0072 */
{0x0054,0x0074},{0x0055,0x0075}, /* 0074 */
{0x0056,0x0076},{0x0057,0x0077}, /* 0076 */
{0x0058,0x0078},{0x0059,0x0079}, /* 0078 */
{0x005A,0x007A},{0x007B,0x007B}, /* 007A */
{0x007C,0x007C},{0x007D,0x007D}, /* 007C */
{0x007E,0x007E},{0x007F,0x007F}, /* 007E */
{0x0080,0x0080},{0x0081,0x0081}, /* 0080 */
{0x0082,0x0082},{0x0083,0x0083}, /* 0082 */
{0x0084,0x0084},{0x0085,0x0085}, /* 0084 */
{0x0086,0x0086},{0x0087,0x0087}, /* 0086 */
{0x0088,0x0088},{0x0089,0x0089}, /* 0088 */
{0x008A,0x008A},{0x008B,0x008B}, /* 008A */
{0x008C,0x008C},{0x008D,0x008D}, /* 008C */
{0x008E,0x008E},{0x008F,0x008F}, /* 008E */
{0x0090,0x0090},{0x0091,0x0091}, /* 0090 */
{0x0092,0x0092},{0x0093,0x0093}, /* 0092 */
{0x0094,0x0094},{0x0095,0x0095}, /* 0094 */
{0x0096,0x0096},{0x0097,0x0097}, /* 0096 */
{0x0098,0x0098},{0x0099,0x0099}, /* 0098 */
{0x009A,0x009A},{0x009B,0x009B}, /* 009A */
{0x009C,0x009C},{0x009D,0x009D}, /* 009C */
{0x009E,0x009E},{0x009F,0x009F}, /* 009E */
{0x00A0,0x00A0},{0x00A1,0x00A1}, /* 00A0 */
{0x00A2,0x00A2},{0x00A3,0x00A3}, /* 00A2 */
{0x00A4,0x00A4},{0x00A5,0x00A5}, /* 00A4 */
{0x00A6,0x00A6},{0x00A7,0x00A7}, /* 00A6 */
{0x00A8,0x00A8},{0x00A9,0x00A9}, /* 00A8 */
{0x00AA,0x00AA},{0x00AB,0x00AB}, /* 00AA */
{0x00AC,0x00AC},{0x00AD,0x00AD}, /* 00AC */
{0x00AE,0x00AE},{0x00AF,0x00AF}, /* 00AE */
{0x00B0,0x00B0},{0x00B1,0x00B1}, /* 00B0 */
{0x00B2,0x00B2},{0x00B3,0x00B3}, /* 00B2 */
{0x00B4,0x00B4},{0x039C,0x00B5}, /* 00B4 */
{0x00B6,0x00B6},{0x00B7,0x00B7}, /* 00B6 */
{0x00B8,0x00B8},{0x00B9,0x00B9}, /* 00B8 */
{0x00BA,0x00BA},{0x00BB,0x00BB}, /* 00BA */
{0x00BC,0x00BC},{0x00BD,0x00BD}, /* 00BC */
{0x00BE,0x00BE},{0x00BF,0x00BF}, /* 00BE */
{0x00C0,0x00E0},{0x00C1,0x00E1}, /* 00C0 */
{0x00C2,0x00E2},{0x00C3,0x00E3}, /* 00C2 */
{0x00C4,0x00E4},{0x00C5,0x00E5}, /* 00C4 */
{0x00C6,0x00E6},{0x00C7,0x00E7}, /* 00C6 */
{0x00C8,0x00E8},{0x00C9,0x00E9}, /* 00C8 */
{0x00CA,0x00EA},{0x00CB,0x00EB}, /* 00CA */
{0x00CC,0x00EC},{0x00CD,0x00ED}, /* 00CC */
{0x00CE,0x00EE},{0x00CF,0x00EF}, /* 00CE */
{0x00D0,0x00F0},{0x00D1,0x00F1}, /* 00D0 */
{0x00D2,0x00F2},{0x00D3,0x00F3}, /* 00D2 */
{0x00D4,0x00F4},{0x00D5,0x00F5}, /* 00D4 */
{0x00D6,0x00F6},{0x00D7,0x00D7}, /* 00D6 */
{0x00D8,0x00F8},{0x00D9,0x00F9}, /* 00D8 */
{0x00DA,0x00FA},{0x00DB,0x00FB}, /* 00DA */
{0x00DC,0x00FC},{0x00DD,0x00FD}, /* 00DC */
{0x00DE,0x00FE},{0x00DF,0x00DF}, /* 00DE */
{0x00C0,0x00E0},{0x00C1,0x00E1}, /* 00E0 */
{0x00C2,0x00E2},{0x00C3,0x00E3}, /* 00E2 */
{0x00C4,0x00E4},{0x00C5,0x00E5}, /* 00E4 */
{0x00C6,0x00E6},{0x00C7,0x00E7}, /* 00E6 */
{0x00C8,0x00E8},{0x00C9,0x00E9}, /* 00E8 */
{0x00CA,0x00EA},{0x00CB,0x00EB}, /* 00EA */
{0x00CC,0x00EC},{0x00CD,0x00ED}, /* 00EC */
{0x00CE,0x00EE},{0x00CF,0x00EF}, /* 00EE */
{0x00D0,0x00F0},{0x00D1,0x00F1}, /* 00F0 */
{0x00D2,0x00F2},{0x00D3,0x00F3}, /* 00F2 */
{0x00D4,0x00F4},{0x00D5,0x00F5}, /* 00F4 */
{0x00D6,0x00F6},{0x00F7,0x00F7}, /* 00F6 */
{0x00D8,0x00F8},{0x00D9,0x00F9}, /* 00F8 */
{0x00DA,0x00FA},{0x00DB,0x00FB}, /* 00FA */
{0x00DC,0x00FC},{0x00DD,0x00FD}, /* 00FC */
{0x00DE,0x00FE},{0x0178,0x00FF} /* 00FE */
};
const MY_CASEFOLD_CHARACTER * my_u1400tr_casefold_index[4352]={
u1400tr_casefold_page00, u1400_casefold_page01, u1400_casefold_page02, u1400_casefold_page03, u1400_casefold_page04, u1400_casefold_page05, u1400_casefold_page06, u1400_casefold_page07,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
u1400_casefold_page10, NULL, NULL, u1400_casefold_page13, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, u1400_casefold_page1C, u1400_casefold_page1D, u1400_casefold_page1E, u1400_casefold_page1F,
NULL, u1400_casefold_page21, NULL, NULL, u1400_casefold_page24, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, u1400_casefold_page2C, u1400_casefold_page2D, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, u1400_casefold_pageA6, u1400_casefold_pageA7,
NULL, NULL, NULL, u1400_casefold_pageAB, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, u1400_casefold_pageFF,
NULL, NULL, NULL, NULL, u1400_casefold_page104, u1400_casefold_page105, NULL, NULL,
NULL, NULL, NULL, NULL, u1400_casefold_page10C, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
u1400_casefold_page118, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, u1400_casefold_page16E, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, u1400_casefold_page1E9, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL
};

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,193 @@
/* Copyright (c) 2000, 2013, Oracle and/or its affiliates.
Copyright (c) 2009, 2023, MariaDB Corporation.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; version 2 of the License.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA
*/
/*
Generated by:
./unidata-dump \
--mode=casefold-tr \
--page-name=u300tr_casefold_page \
--page-name-derived=u300_casefold_page \
--index-name=my_u300tr_casefold_index \
--max-char=0xFFFF \
UnicodeData-3.0.0.txt
*/
const MY_CASEFOLD_CHARACTER u300tr_casefold_page00[256]={
{0x0000,0x0000},{0x0001,0x0001}, /* 0000 */
{0x0002,0x0002},{0x0003,0x0003}, /* 0002 */
{0x0004,0x0004},{0x0005,0x0005}, /* 0004 */
{0x0006,0x0006},{0x0007,0x0007}, /* 0006 */
{0x0008,0x0008},{0x0009,0x0009}, /* 0008 */
{0x000A,0x000A},{0x000B,0x000B}, /* 000A */
{0x000C,0x000C},{0x000D,0x000D}, /* 000C */
{0x000E,0x000E},{0x000F,0x000F}, /* 000E */
{0x0010,0x0010},{0x0011,0x0011}, /* 0010 */
{0x0012,0x0012},{0x0013,0x0013}, /* 0012 */
{0x0014,0x0014},{0x0015,0x0015}, /* 0014 */
{0x0016,0x0016},{0x0017,0x0017}, /* 0016 */
{0x0018,0x0018},{0x0019,0x0019}, /* 0018 */
{0x001A,0x001A},{0x001B,0x001B}, /* 001A */
{0x001C,0x001C},{0x001D,0x001D}, /* 001C */
{0x001E,0x001E},{0x001F,0x001F}, /* 001E */
{0x0020,0x0020},{0x0021,0x0021}, /* 0020 */
{0x0022,0x0022},{0x0023,0x0023}, /* 0022 */
{0x0024,0x0024},{0x0025,0x0025}, /* 0024 */
{0x0026,0x0026},{0x0027,0x0027}, /* 0026 */
{0x0028,0x0028},{0x0029,0x0029}, /* 0028 */
{0x002A,0x002A},{0x002B,0x002B}, /* 002A */
{0x002C,0x002C},{0x002D,0x002D}, /* 002C */
{0x002E,0x002E},{0x002F,0x002F}, /* 002E */
{0x0030,0x0030},{0x0031,0x0031}, /* 0030 */
{0x0032,0x0032},{0x0033,0x0033}, /* 0032 */
{0x0034,0x0034},{0x0035,0x0035}, /* 0034 */
{0x0036,0x0036},{0x0037,0x0037}, /* 0036 */
{0x0038,0x0038},{0x0039,0x0039}, /* 0038 */
{0x003A,0x003A},{0x003B,0x003B}, /* 003A */
{0x003C,0x003C},{0x003D,0x003D}, /* 003C */
{0x003E,0x003E},{0x003F,0x003F}, /* 003E */
{0x0040,0x0040},{0x0041,0x0061}, /* 0040 */
{0x0042,0x0062},{0x0043,0x0063}, /* 0042 */
{0x0044,0x0064},{0x0045,0x0065}, /* 0044 */
{0x0046,0x0066},{0x0047,0x0067}, /* 0046 */
{0x0048,0x0068},{0x0049,0x0131}, /* 0048 */
{0x004A,0x006A},{0x004B,0x006B}, /* 004A */
{0x004C,0x006C},{0x004D,0x006D}, /* 004C */
{0x004E,0x006E},{0x004F,0x006F}, /* 004E */
{0x0050,0x0070},{0x0051,0x0071}, /* 0050 */
{0x0052,0x0072},{0x0053,0x0073}, /* 0052 */
{0x0054,0x0074},{0x0055,0x0075}, /* 0054 */
{0x0056,0x0076},{0x0057,0x0077}, /* 0056 */
{0x0058,0x0078},{0x0059,0x0079}, /* 0058 */
{0x005A,0x007A},{0x005B,0x005B}, /* 005A */
{0x005C,0x005C},{0x005D,0x005D}, /* 005C */
{0x005E,0x005E},{0x005F,0x005F}, /* 005E */
{0x0060,0x0060},{0x0041,0x0061}, /* 0060 */
{0x0042,0x0062},{0x0043,0x0063}, /* 0062 */
{0x0044,0x0064},{0x0045,0x0065}, /* 0064 */
{0x0046,0x0066},{0x0047,0x0067}, /* 0066 */
{0x0048,0x0068},{0x0130,0x0069}, /* 0068 */
{0x004A,0x006A},{0x004B,0x006B}, /* 006A */
{0x004C,0x006C},{0x004D,0x006D}, /* 006C */
{0x004E,0x006E},{0x004F,0x006F}, /* 006E */
{0x0050,0x0070},{0x0051,0x0071}, /* 0070 */
{0x0052,0x0072},{0x0053,0x0073}, /* 0072 */
{0x0054,0x0074},{0x0055,0x0075}, /* 0074 */
{0x0056,0x0076},{0x0057,0x0077}, /* 0076 */
{0x0058,0x0078},{0x0059,0x0079}, /* 0078 */
{0x005A,0x007A},{0x007B,0x007B}, /* 007A */
{0x007C,0x007C},{0x007D,0x007D}, /* 007C */
{0x007E,0x007E},{0x007F,0x007F}, /* 007E */
{0x0080,0x0080},{0x0081,0x0081}, /* 0080 */
{0x0082,0x0082},{0x0083,0x0083}, /* 0082 */
{0x0084,0x0084},{0x0085,0x0085}, /* 0084 */
{0x0086,0x0086},{0x0087,0x0087}, /* 0086 */
{0x0088,0x0088},{0x0089,0x0089}, /* 0088 */
{0x008A,0x008A},{0x008B,0x008B}, /* 008A */
{0x008C,0x008C},{0x008D,0x008D}, /* 008C */
{0x008E,0x008E},{0x008F,0x008F}, /* 008E */
{0x0090,0x0090},{0x0091,0x0091}, /* 0090 */
{0x0092,0x0092},{0x0093,0x0093}, /* 0092 */
{0x0094,0x0094},{0x0095,0x0095}, /* 0094 */
{0x0096,0x0096},{0x0097,0x0097}, /* 0096 */
{0x0098,0x0098},{0x0099,0x0099}, /* 0098 */
{0x009A,0x009A},{0x009B,0x009B}, /* 009A */
{0x009C,0x009C},{0x009D,0x009D}, /* 009C */
{0x009E,0x009E},{0x009F,0x009F}, /* 009E */
{0x00A0,0x00A0},{0x00A1,0x00A1}, /* 00A0 */
{0x00A2,0x00A2},{0x00A3,0x00A3}, /* 00A2 */
{0x00A4,0x00A4},{0x00A5,0x00A5}, /* 00A4 */
{0x00A6,0x00A6},{0x00A7,0x00A7}, /* 00A6 */
{0x00A8,0x00A8},{0x00A9,0x00A9}, /* 00A8 */
{0x00AA,0x00AA},{0x00AB,0x00AB}, /* 00AA */
{0x00AC,0x00AC},{0x00AD,0x00AD}, /* 00AC */
{0x00AE,0x00AE},{0x00AF,0x00AF}, /* 00AE */
{0x00B0,0x00B0},{0x00B1,0x00B1}, /* 00B0 */
{0x00B2,0x00B2},{0x00B3,0x00B3}, /* 00B2 */
{0x00B4,0x00B4},{0x039C,0x00B5}, /* 00B4 */
{0x00B6,0x00B6},{0x00B7,0x00B7}, /* 00B6 */
{0x00B8,0x00B8},{0x00B9,0x00B9}, /* 00B8 */
{0x00BA,0x00BA},{0x00BB,0x00BB}, /* 00BA */
{0x00BC,0x00BC},{0x00BD,0x00BD}, /* 00BC */
{0x00BE,0x00BE},{0x00BF,0x00BF}, /* 00BE */
{0x00C0,0x00E0},{0x00C1,0x00E1}, /* 00C0 */
{0x00C2,0x00E2},{0x00C3,0x00E3}, /* 00C2 */
{0x00C4,0x00E4},{0x00C5,0x00E5}, /* 00C4 */
{0x00C6,0x00E6},{0x00C7,0x00E7}, /* 00C6 */
{0x00C8,0x00E8},{0x00C9,0x00E9}, /* 00C8 */
{0x00CA,0x00EA},{0x00CB,0x00EB}, /* 00CA */
{0x00CC,0x00EC},{0x00CD,0x00ED}, /* 00CC */
{0x00CE,0x00EE},{0x00CF,0x00EF}, /* 00CE */
{0x00D0,0x00F0},{0x00D1,0x00F1}, /* 00D0 */
{0x00D2,0x00F2},{0x00D3,0x00F3}, /* 00D2 */
{0x00D4,0x00F4},{0x00D5,0x00F5}, /* 00D4 */
{0x00D6,0x00F6},{0x00D7,0x00D7}, /* 00D6 */
{0x00D8,0x00F8},{0x00D9,0x00F9}, /* 00D8 */
{0x00DA,0x00FA},{0x00DB,0x00FB}, /* 00DA */
{0x00DC,0x00FC},{0x00DD,0x00FD}, /* 00DC */
{0x00DE,0x00FE},{0x00DF,0x00DF}, /* 00DE */
{0x00C0,0x00E0},{0x00C1,0x00E1}, /* 00E0 */
{0x00C2,0x00E2},{0x00C3,0x00E3}, /* 00E2 */
{0x00C4,0x00E4},{0x00C5,0x00E5}, /* 00E4 */
{0x00C6,0x00E6},{0x00C7,0x00E7}, /* 00E6 */
{0x00C8,0x00E8},{0x00C9,0x00E9}, /* 00E8 */
{0x00CA,0x00EA},{0x00CB,0x00EB}, /* 00EA */
{0x00CC,0x00EC},{0x00CD,0x00ED}, /* 00EC */
{0x00CE,0x00EE},{0x00CF,0x00EF}, /* 00EE */
{0x00D0,0x00F0},{0x00D1,0x00F1}, /* 00F0 */
{0x00D2,0x00F2},{0x00D3,0x00F3}, /* 00F2 */
{0x00D4,0x00F4},{0x00D5,0x00F5}, /* 00F4 */
{0x00D6,0x00F6},{0x00F7,0x00F7}, /* 00F6 */
{0x00D8,0x00F8},{0x00D9,0x00F9}, /* 00F8 */
{0x00DA,0x00FA},{0x00DB,0x00FB}, /* 00FA */
{0x00DC,0x00FC},{0x00DD,0x00FD}, /* 00FC */
{0x00DE,0x00FE},{0x0178,0x00FF} /* 00FE */
};
const MY_CASEFOLD_CHARACTER * my_u300tr_casefold_index[256]={
u300tr_casefold_page00, u300_casefold_page01, u300_casefold_page02, u300_casefold_page03, u300_casefold_page04, u300_casefold_page05, u300_casefold_page06, u300_casefold_page07,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, u300_casefold_page1E, u300_casefold_page1F,
NULL, u300_casefold_page21, NULL, NULL, u300_casefold_page24, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, u300_casefold_pageFF
};

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,610 @@
/* Copyright (c) 2000, 2013, Oracle and/or its affiliates.
Copyright (c) 2009, 2023, MariaDB Corporation.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; version 2 of the License.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA
*/
/*
Generated by:
./unidata-dump \
--mode=weight_general_ci \
--max-char=0xFFFF \
UnicodeData-3.0.0.txt
*/
const uint16 weight_general_ci_page00[256]={
0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, /* 0000 */
0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, /* 0008 */
0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, /* 0010 */
0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, /* 0018 */
0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, /* 0020 */
0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, /* 0028 */
0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, /* 0030 */
0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, /* 0038 */
0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, /* 0040 */
0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, /* 0048 */
0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, /* 0050 */
0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, /* 0058 */
0x0060,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, /* 0060 */
0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, /* 0068 */
0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, /* 0070 */
0x0058,0x0059,0x005A,0x007B,0x007C,0x007D,0x007E,0x007F, /* 0078 */
0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087, /* 0080 */
0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F, /* 0088 */
0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097, /* 0090 */
0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F, /* 0098 */
0x00A0,0x00A1,0x00A2,0x00A3,0x00A4,0x00A5,0x00A6,0x00A7, /* 00A0 */
0x00A8,0x00A9,0x00AA,0x00AB,0x00AC,0x00AD,0x00AE,0x00AF, /* 00A8 */
0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x039C,0x00B6,0x00B7, /* 00B0 */
0x00B8,0x00B9,0x00BA,0x00BB,0x00BC,0x00BD,0x00BE,0x00BF, /* 00B8 */
0x0041,0x0041,0x0041,0x0041,0x0041,0x0041,0x00C6,0x0043, /* 00C0 */
0x0045,0x0045,0x0045,0x0045,0x0049,0x0049,0x0049,0x0049, /* 00C8 */
0x00D0,0x004E,0x004F,0x004F,0x004F,0x004F,0x004F,0x00D7, /* 00D0 */
0x00D8,0x0055,0x0055,0x0055,0x0055,0x0059,0x00DE,0x0053, /* 00D8 */
0x0041,0x0041,0x0041,0x0041,0x0041,0x0041,0x00C6,0x0043, /* 00E0 */
0x0045,0x0045,0x0045,0x0045,0x0049,0x0049,0x0049,0x0049, /* 00E8 */
0x00D0,0x004E,0x004F,0x004F,0x004F,0x004F,0x004F,0x00F7, /* 00F0 */
0x00D8,0x0055,0x0055,0x0055,0x0055,0x0059,0x00DE,0x0059 /* 00F8 */
};
static const uint16 weight_general_ci_page01[256]={
0x0041,0x0041,0x0041,0x0041,0x0041,0x0041,0x0043,0x0043, /* 0100 */
0x0043,0x0043,0x0043,0x0043,0x0043,0x0043,0x0044,0x0044, /* 0108 */
0x0110,0x0110,0x0045,0x0045,0x0045,0x0045,0x0045,0x0045, /* 0110 */
0x0045,0x0045,0x0045,0x0045,0x0047,0x0047,0x0047,0x0047, /* 0118 */
0x0047,0x0047,0x0047,0x0047,0x0048,0x0048,0x0126,0x0126, /* 0120 */
0x0049,0x0049,0x0049,0x0049,0x0049,0x0049,0x0049,0x0049, /* 0128 */
0x0049,0x0049,0x0132,0x0132,0x004A,0x004A,0x004B,0x004B, /* 0130 */
0x0138,0x004C,0x004C,0x004C,0x004C,0x004C,0x004C,0x013F, /* 0138 */
0x013F,0x0141,0x0141,0x004E,0x004E,0x004E,0x004E,0x004E, /* 0140 */
0x004E,0x0149,0x014A,0x014A,0x004F,0x004F,0x004F,0x004F, /* 0148 */
0x004F,0x004F,0x0152,0x0152,0x0052,0x0052,0x0052,0x0052, /* 0150 */
0x0052,0x0052,0x0053,0x0053,0x0053,0x0053,0x0053,0x0053, /* 0158 */
0x0053,0x0053,0x0054,0x0054,0x0054,0x0054,0x0166,0x0166, /* 0160 */
0x0055,0x0055,0x0055,0x0055,0x0055,0x0055,0x0055,0x0055, /* 0168 */
0x0055,0x0055,0x0055,0x0055,0x0057,0x0057,0x0059,0x0059, /* 0170 */
0x0059,0x005A,0x005A,0x005A,0x005A,0x005A,0x005A,0x0053, /* 0178 */
0x0180,0x0181,0x0182,0x0182,0x0184,0x0184,0x0186,0x0187, /* 0180 */
0x0187,0x0189,0x018A,0x018B,0x018B,0x018D,0x018E,0x018F, /* 0188 */
0x0190,0x0191,0x0191,0x0193,0x0194,0x01F6,0x0196,0x0197, /* 0190 */
0x0198,0x0198,0x019A,0x019B,0x019C,0x019D,0x019E,0x019F, /* 0198 */
0x004F,0x004F,0x01A2,0x01A2,0x01A4,0x01A4,0x01A6,0x01A7, /* 01A0 */
0x01A7,0x01A9,0x01AA,0x01AB,0x01AC,0x01AC,0x01AE,0x0055, /* 01A8 */
0x0055,0x01B1,0x01B2,0x01B3,0x01B3,0x01B5,0x01B5,0x01B7, /* 01B0 */
0x01B8,0x01B8,0x01BA,0x01BB,0x01BC,0x01BC,0x01BE,0x01F7, /* 01B8 */
0x01C0,0x01C1,0x01C2,0x01C3,0x01C4,0x01C4,0x01C4,0x01C7, /* 01C0 */
0x01C7,0x01C7,0x01CA,0x01CA,0x01CA,0x0041,0x0041,0x0049, /* 01C8 */
0x0049,0x004F,0x004F,0x0055,0x0055,0x0055,0x0055,0x0055, /* 01D0 */
0x0055,0x0055,0x0055,0x0055,0x0055,0x018E,0x0041,0x0041, /* 01D8 */
0x0041,0x0041,0x00C6,0x00C6,0x01E4,0x01E4,0x0047,0x0047, /* 01E0 */
0x004B,0x004B,0x004F,0x004F,0x004F,0x004F,0x01B7,0x01B7, /* 01E8 */
0x004A,0x01F1,0x01F1,0x01F1,0x0047,0x0047,0x01F6,0x01F7, /* 01F0 */
0x004E,0x004E,0x0041,0x0041,0x00C6,0x00C6,0x00D8,0x00D8 /* 01F8 */
};
static const uint16 weight_general_ci_page02[256]={
0x0041,0x0041,0x0041,0x0041,0x0045,0x0045,0x0045,0x0045, /* 0200 */
0x0049,0x0049,0x0049,0x0049,0x004F,0x004F,0x004F,0x004F, /* 0208 */
0x0052,0x0052,0x0052,0x0052,0x0055,0x0055,0x0055,0x0055, /* 0210 */
0x0053,0x0053,0x0054,0x0054,0x021C,0x021C,0x0048,0x0048, /* 0218 */
0x0220,0x0221,0x0222,0x0222,0x0224,0x0224,0x0041,0x0041, /* 0220 */
0x0045,0x0045,0x004F,0x004F,0x004F,0x004F,0x004F,0x004F, /* 0228 */
0x004F,0x004F,0x0059,0x0059,0x0234,0x0235,0x0236,0x0237, /* 0230 */
0x0238,0x0239,0x023A,0x023B,0x023C,0x023D,0x023E,0x023F, /* 0238 */
0x0240,0x0241,0x0242,0x0243,0x0244,0x0245,0x0246,0x0247, /* 0240 */
0x0248,0x0249,0x024A,0x024B,0x024C,0x024D,0x024E,0x024F, /* 0248 */
0x0250,0x0251,0x0252,0x0181,0x0186,0x0255,0x0189,0x018A, /* 0250 */
0x0258,0x018F,0x025A,0x0190,0x025C,0x025D,0x025E,0x025F, /* 0258 */
0x0193,0x0261,0x0262,0x0194,0x0264,0x0265,0x0266,0x0267, /* 0260 */
0x0197,0x0196,0x026A,0x026B,0x026C,0x026D,0x026E,0x019C, /* 0268 */
0x0270,0x0271,0x019D,0x0273,0x0274,0x019F,0x0276,0x0277, /* 0270 */
0x0278,0x0279,0x027A,0x027B,0x027C,0x027D,0x027E,0x027F, /* 0278 */
0x01A6,0x0281,0x0282,0x01A9,0x0284,0x0285,0x0286,0x0287, /* 0280 */
0x01AE,0x0289,0x01B1,0x01B2,0x028C,0x028D,0x028E,0x028F, /* 0288 */
0x0290,0x0291,0x01B7,0x0293,0x0294,0x0295,0x0296,0x0297, /* 0290 */
0x0298,0x0299,0x029A,0x029B,0x029C,0x029D,0x029E,0x029F, /* 0298 */
0x02A0,0x02A1,0x02A2,0x02A3,0x02A4,0x02A5,0x02A6,0x02A7, /* 02A0 */
0x02A8,0x02A9,0x02AA,0x02AB,0x02AC,0x02AD,0x02AE,0x02AF, /* 02A8 */
0x02B0,0x02B1,0x02B2,0x02B3,0x02B4,0x02B5,0x02B6,0x02B7, /* 02B0 */
0x02B8,0x02B9,0x02BA,0x02BB,0x02BC,0x02BD,0x02BE,0x02BF, /* 02B8 */
0x02C0,0x02C1,0x02C2,0x02C3,0x02C4,0x02C5,0x02C6,0x02C7, /* 02C0 */
0x02C8,0x02C9,0x02CA,0x02CB,0x02CC,0x02CD,0x02CE,0x02CF, /* 02C8 */
0x02D0,0x02D1,0x02D2,0x02D3,0x02D4,0x02D5,0x02D6,0x02D7, /* 02D0 */
0x02D8,0x02D9,0x02DA,0x02DB,0x02DC,0x02DD,0x02DE,0x02DF, /* 02D8 */
0x02E0,0x02E1,0x02E2,0x02E3,0x02E4,0x02E5,0x02E6,0x02E7, /* 02E0 */
0x02E8,0x02E9,0x02EA,0x02EB,0x02EC,0x02ED,0x02EE,0x02EF, /* 02E8 */
0x02F0,0x02F1,0x02F2,0x02F3,0x02F4,0x02F5,0x02F6,0x02F7, /* 02F0 */
0x02F8,0x02F9,0x02FA,0x02FB,0x02FC,0x02FD,0x02FE,0x02FF /* 02F8 */
};
static const uint16 weight_general_ci_page03[256]={
0x0300,0x0301,0x0302,0x0303,0x0304,0x0305,0x0306,0x0307, /* 0300 */
0x0308,0x0309,0x030A,0x030B,0x030C,0x030D,0x030E,0x030F, /* 0308 */
0x0310,0x0311,0x0312,0x0313,0x0314,0x0315,0x0316,0x0317, /* 0310 */
0x0318,0x0319,0x031A,0x031B,0x031C,0x031D,0x031E,0x031F, /* 0318 */
0x0320,0x0321,0x0322,0x0323,0x0324,0x0325,0x0326,0x0327, /* 0320 */
0x0328,0x0329,0x032A,0x032B,0x032C,0x032D,0x032E,0x032F, /* 0328 */
0x0330,0x0331,0x0332,0x0333,0x0334,0x0335,0x0336,0x0337, /* 0330 */
0x0338,0x0339,0x033A,0x033B,0x033C,0x033D,0x033E,0x033F, /* 0338 */
0x0340,0x0341,0x0342,0x0343,0x0344,0x0399,0x0346,0x0347, /* 0340 */
0x0348,0x0349,0x034A,0x034B,0x034C,0x034D,0x034E,0x034F, /* 0348 */
0x0350,0x0351,0x0352,0x0353,0x0354,0x0355,0x0356,0x0357, /* 0350 */
0x0358,0x0359,0x035A,0x035B,0x035C,0x035D,0x035E,0x035F, /* 0358 */
0x0360,0x0361,0x0362,0x0363,0x0364,0x0365,0x0366,0x0367, /* 0360 */
0x0368,0x0369,0x036A,0x036B,0x036C,0x036D,0x036E,0x036F, /* 0368 */
0x0370,0x0371,0x0372,0x0373,0x0374,0x0375,0x0376,0x0377, /* 0370 */
0x0378,0x0379,0x037A,0x037B,0x037C,0x037D,0x037E,0x037F, /* 0378 */
0x0380,0x0381,0x0382,0x0383,0x0384,0x0385,0x0391,0x0387, /* 0380 */
0x0395,0x0397,0x0399,0x038B,0x039F,0x038D,0x03A5,0x03A9, /* 0388 */
0x0399,0x0391,0x0392,0x0393,0x0394,0x0395,0x0396,0x0397, /* 0390 */
0x0398,0x0399,0x039A,0x039B,0x039C,0x039D,0x039E,0x039F, /* 0398 */
0x03A0,0x03A1,0x03A2,0x03A3,0x03A4,0x03A5,0x03A6,0x03A7, /* 03A0 */
0x03A8,0x03A9,0x0399,0x03A5,0x0391,0x0395,0x0397,0x0399, /* 03A8 */
0x03A5,0x0391,0x0392,0x0393,0x0394,0x0395,0x0396,0x0397, /* 03B0 */
0x0398,0x0399,0x039A,0x039B,0x039C,0x039D,0x039E,0x039F, /* 03B8 */
0x03A0,0x03A1,0x03A3,0x03A3,0x03A4,0x03A5,0x03A6,0x03A7, /* 03C0 */
0x03A8,0x03A9,0x0399,0x03A5,0x039F,0x03A5,0x03A9,0x03CF, /* 03C8 */
0x0392,0x0398,0x03D2,0x03D2,0x03D2,0x03A6,0x03A0,0x03D7, /* 03D0 */
0x03D8,0x03D9,0x03DA,0x03DA,0x03DC,0x03DC,0x03DE,0x03DE, /* 03D8 */
0x03E0,0x03E0,0x03E2,0x03E2,0x03E4,0x03E4,0x03E6,0x03E6, /* 03E0 */
0x03E8,0x03E8,0x03EA,0x03EA,0x03EC,0x03EC,0x03EE,0x03EE, /* 03E8 */
0x039A,0x03A1,0x03A3,0x03F3,0x03F4,0x03F5,0x03F6,0x03F7, /* 03F0 */
0x03F8,0x03F9,0x03FA,0x03FB,0x03FC,0x03FD,0x03FE,0x03FF /* 03F8 */
};
static const uint16 weight_general_ci_page04[256]={
0x0415,0x0415,0x0402,0x0413,0x0404,0x0405,0x0406,0x0406, /* 0400 */
0x0408,0x0409,0x040A,0x040B,0x041A,0x0418,0x0423,0x040F, /* 0408 */
0x0410,0x0411,0x0412,0x0413,0x0414,0x0415,0x0416,0x0417, /* 0410 */
0x0418,0x0419,0x041A,0x041B,0x041C,0x041D,0x041E,0x041F, /* 0418 */
0x0420,0x0421,0x0422,0x0423,0x0424,0x0425,0x0426,0x0427, /* 0420 */
0x0428,0x0429,0x042A,0x042B,0x042C,0x042D,0x042E,0x042F, /* 0428 */
0x0410,0x0411,0x0412,0x0413,0x0414,0x0415,0x0416,0x0417, /* 0430 */
0x0418,0x0419,0x041A,0x041B,0x041C,0x041D,0x041E,0x041F, /* 0438 */
0x0420,0x0421,0x0422,0x0423,0x0424,0x0425,0x0426,0x0427, /* 0440 */
0x0428,0x0429,0x042A,0x042B,0x042C,0x042D,0x042E,0x042F, /* 0448 */
0x0415,0x0415,0x0402,0x0413,0x0404,0x0405,0x0406,0x0406, /* 0450 */
0x0408,0x0409,0x040A,0x040B,0x041A,0x0418,0x0423,0x040F, /* 0458 */
0x0460,0x0460,0x0462,0x0462,0x0464,0x0464,0x0466,0x0466, /* 0460 */
0x0468,0x0468,0x046A,0x046A,0x046C,0x046C,0x046E,0x046E, /* 0468 */
0x0470,0x0470,0x0472,0x0472,0x0474,0x0474,0x0474,0x0474, /* 0470 */
0x0478,0x0478,0x047A,0x047A,0x047C,0x047C,0x047E,0x047E, /* 0478 */
0x0480,0x0480,0x0482,0x0483,0x0484,0x0485,0x0486,0x0487, /* 0480 */
0x0488,0x0489,0x048A,0x048B,0x048C,0x048C,0x048E,0x048E, /* 0488 */
0x0490,0x0490,0x0492,0x0492,0x0494,0x0494,0x0496,0x0496, /* 0490 */
0x0498,0x0498,0x049A,0x049A,0x049C,0x049C,0x049E,0x049E, /* 0498 */
0x04A0,0x04A0,0x04A2,0x04A2,0x04A4,0x04A4,0x04A6,0x04A6, /* 04A0 */
0x04A8,0x04A8,0x04AA,0x04AA,0x04AC,0x04AC,0x04AE,0x04AE, /* 04A8 */
0x04B0,0x04B0,0x04B2,0x04B2,0x04B4,0x04B4,0x04B6,0x04B6, /* 04B0 */
0x04B8,0x04B8,0x04BA,0x04BA,0x04BC,0x04BC,0x04BE,0x04BE, /* 04B8 */
0x04C0,0x0416,0x0416,0x04C3,0x04C3,0x04C5,0x04C6,0x04C7, /* 04C0 */
0x04C7,0x04C9,0x04CA,0x04CB,0x04CB,0x04CD,0x04CE,0x04CF, /* 04C8 */
0x0410,0x0410,0x0410,0x0410,0x04D4,0x04D4,0x0415,0x0415, /* 04D0 */
0x04D8,0x04D8,0x04D8,0x04D8,0x0416,0x0416,0x0417,0x0417, /* 04D8 */
0x04E0,0x04E0,0x0418,0x0418,0x0418,0x0418,0x041E,0x041E, /* 04E0 */
0x04E8,0x04E8,0x04E8,0x04E8,0x042D,0x042D,0x0423,0x0423, /* 04E8 */
0x0423,0x0423,0x0423,0x0423,0x0427,0x0427,0x04F6,0x04F7, /* 04F0 */
0x042B,0x042B,0x04FA,0x04FB,0x04FC,0x04FD,0x04FE,0x04FF /* 04F8 */
};
static const uint16 weight_general_ci_page05[256]={
0x0500,0x0501,0x0502,0x0503,0x0504,0x0505,0x0506,0x0507, /* 0500 */
0x0508,0x0509,0x050A,0x050B,0x050C,0x050D,0x050E,0x050F, /* 0508 */
0x0510,0x0511,0x0512,0x0513,0x0514,0x0515,0x0516,0x0517, /* 0510 */
0x0518,0x0519,0x051A,0x051B,0x051C,0x051D,0x051E,0x051F, /* 0518 */
0x0520,0x0521,0x0522,0x0523,0x0524,0x0525,0x0526,0x0527, /* 0520 */
0x0528,0x0529,0x052A,0x052B,0x052C,0x052D,0x052E,0x052F, /* 0528 */
0x0530,0x0531,0x0532,0x0533,0x0534,0x0535,0x0536,0x0537, /* 0530 */
0x0538,0x0539,0x053A,0x053B,0x053C,0x053D,0x053E,0x053F, /* 0538 */
0x0540,0x0541,0x0542,0x0543,0x0544,0x0545,0x0546,0x0547, /* 0540 */
0x0548,0x0549,0x054A,0x054B,0x054C,0x054D,0x054E,0x054F, /* 0548 */
0x0550,0x0551,0x0552,0x0553,0x0554,0x0555,0x0556,0x0557, /* 0550 */
0x0558,0x0559,0x055A,0x055B,0x055C,0x055D,0x055E,0x055F, /* 0558 */
0x0560,0x0531,0x0532,0x0533,0x0534,0x0535,0x0536,0x0537, /* 0560 */
0x0538,0x0539,0x053A,0x053B,0x053C,0x053D,0x053E,0x053F, /* 0568 */
0x0540,0x0541,0x0542,0x0543,0x0544,0x0545,0x0546,0x0547, /* 0570 */
0x0548,0x0549,0x054A,0x054B,0x054C,0x054D,0x054E,0x054F, /* 0578 */
0x0550,0x0551,0x0552,0x0553,0x0554,0x0555,0x0556,0x0587, /* 0580 */
0x0588,0x0589,0x058A,0x058B,0x058C,0x058D,0x058E,0x058F, /* 0588 */
0x0590,0x0591,0x0592,0x0593,0x0594,0x0595,0x0596,0x0597, /* 0590 */
0x0598,0x0599,0x059A,0x059B,0x059C,0x059D,0x059E,0x059F, /* 0598 */
0x05A0,0x05A1,0x05A2,0x05A3,0x05A4,0x05A5,0x05A6,0x05A7, /* 05A0 */
0x05A8,0x05A9,0x05AA,0x05AB,0x05AC,0x05AD,0x05AE,0x05AF, /* 05A8 */
0x05B0,0x05B1,0x05B2,0x05B3,0x05B4,0x05B5,0x05B6,0x05B7, /* 05B0 */
0x05B8,0x05B9,0x05BA,0x05BB,0x05BC,0x05BD,0x05BE,0x05BF, /* 05B8 */
0x05C0,0x05C1,0x05C2,0x05C3,0x05C4,0x05C5,0x05C6,0x05C7, /* 05C0 */
0x05C8,0x05C9,0x05CA,0x05CB,0x05CC,0x05CD,0x05CE,0x05CF, /* 05C8 */
0x05D0,0x05D1,0x05D2,0x05D3,0x05D4,0x05D5,0x05D6,0x05D7, /* 05D0 */
0x05D8,0x05D9,0x05DA,0x05DB,0x05DC,0x05DD,0x05DE,0x05DF, /* 05D8 */
0x05E0,0x05E1,0x05E2,0x05E3,0x05E4,0x05E5,0x05E6,0x05E7, /* 05E0 */
0x05E8,0x05E9,0x05EA,0x05EB,0x05EC,0x05ED,0x05EE,0x05EF, /* 05E8 */
0x05F0,0x05F1,0x05F2,0x05F3,0x05F4,0x05F5,0x05F6,0x05F7, /* 05F0 */
0x05F8,0x05F9,0x05FA,0x05FB,0x05FC,0x05FD,0x05FE,0x05FF /* 05F8 */
};
static const uint16 weight_general_ci_page06[256]={ /* This page is dummy */
0x0600,0x0601,0x0602,0x0603,0x0604,0x0605,0x0606,0x0607, /* 0600 */
0x0608,0x0609,0x060A,0x060B,0x060C,0x060D,0x060E,0x060F, /* 0608 */
0x0610,0x0611,0x0612,0x0613,0x0614,0x0615,0x0616,0x0617, /* 0610 */
0x0618,0x0619,0x061A,0x061B,0x061C,0x061D,0x061E,0x061F, /* 0618 */
0x0620,0x0621,0x0622,0x0623,0x0624,0x0625,0x0626,0x0627, /* 0620 */
0x0628,0x0629,0x062A,0x062B,0x062C,0x062D,0x062E,0x062F, /* 0628 */
0x0630,0x0631,0x0632,0x0633,0x0634,0x0635,0x0636,0x0637, /* 0630 */
0x0638,0x0639,0x063A,0x063B,0x063C,0x063D,0x063E,0x063F, /* 0638 */
0x0640,0x0641,0x0642,0x0643,0x0644,0x0645,0x0646,0x0647, /* 0640 */
0x0648,0x0649,0x064A,0x064B,0x064C,0x064D,0x064E,0x064F, /* 0648 */
0x0650,0x0651,0x0652,0x0653,0x0654,0x0655,0x0656,0x0657, /* 0650 */
0x0658,0x0659,0x065A,0x065B,0x065C,0x065D,0x065E,0x065F, /* 0658 */
0x0660,0x0661,0x0662,0x0663,0x0664,0x0665,0x0666,0x0667, /* 0660 */
0x0668,0x0669,0x066A,0x066B,0x066C,0x066D,0x066E,0x066F, /* 0668 */
0x0670,0x0671,0x0672,0x0673,0x0674,0x0675,0x0676,0x0677, /* 0670 */
0x0678,0x0679,0x067A,0x067B,0x067C,0x067D,0x067E,0x067F, /* 0678 */
0x0680,0x0681,0x0682,0x0683,0x0684,0x0685,0x0686,0x0687, /* 0680 */
0x0688,0x0689,0x068A,0x068B,0x068C,0x068D,0x068E,0x068F, /* 0688 */
0x0690,0x0691,0x0692,0x0693,0x0694,0x0695,0x0696,0x0697, /* 0690 */
0x0698,0x0699,0x069A,0x069B,0x069C,0x069D,0x069E,0x069F, /* 0698 */
0x06A0,0x06A1,0x06A2,0x06A3,0x06A4,0x06A5,0x06A6,0x06A7, /* 06A0 */
0x06A8,0x06A9,0x06AA,0x06AB,0x06AC,0x06AD,0x06AE,0x06AF, /* 06A8 */
0x06B0,0x06B1,0x06B2,0x06B3,0x06B4,0x06B5,0x06B6,0x06B7, /* 06B0 */
0x06B8,0x06B9,0x06BA,0x06BB,0x06BC,0x06BD,0x06BE,0x06BF, /* 06B8 */
0x06C0,0x06C1,0x06C2,0x06C3,0x06C4,0x06C5,0x06C6,0x06C7, /* 06C0 */
0x06C8,0x06C9,0x06CA,0x06CB,0x06CC,0x06CD,0x06CE,0x06CF, /* 06C8 */
0x06D0,0x06D1,0x06D2,0x06D3,0x06D4,0x06D5,0x06D6,0x06D7, /* 06D0 */
0x06D8,0x06D9,0x06DA,0x06DB,0x06DC,0x06DD,0x06DE,0x06DF, /* 06D8 */
0x06E0,0x06E1,0x06E2,0x06E3,0x06E4,0x06E5,0x06E6,0x06E7, /* 06E0 */
0x06E8,0x06E9,0x06EA,0x06EB,0x06EC,0x06ED,0x06EE,0x06EF, /* 06E8 */
0x06F0,0x06F1,0x06F2,0x06F3,0x06F4,0x06F5,0x06F6,0x06F7, /* 06F0 */
0x06F8,0x06F9,0x06FA,0x06FB,0x06FC,0x06FD,0x06FE,0x06FF /* 06F8 */
};
static const uint16 weight_general_ci_page07[256]={ /* This page is dummy */
0x0700,0x0701,0x0702,0x0703,0x0704,0x0705,0x0706,0x0707, /* 0700 */
0x0708,0x0709,0x070A,0x070B,0x070C,0x070D,0x070E,0x070F, /* 0708 */
0x0710,0x0711,0x0712,0x0713,0x0714,0x0715,0x0716,0x0717, /* 0710 */
0x0718,0x0719,0x071A,0x071B,0x071C,0x071D,0x071E,0x071F, /* 0718 */
0x0720,0x0721,0x0722,0x0723,0x0724,0x0725,0x0726,0x0727, /* 0720 */
0x0728,0x0729,0x072A,0x072B,0x072C,0x072D,0x072E,0x072F, /* 0728 */
0x0730,0x0731,0x0732,0x0733,0x0734,0x0735,0x0736,0x0737, /* 0730 */
0x0738,0x0739,0x073A,0x073B,0x073C,0x073D,0x073E,0x073F, /* 0738 */
0x0740,0x0741,0x0742,0x0743,0x0744,0x0745,0x0746,0x0747, /* 0740 */
0x0748,0x0749,0x074A,0x074B,0x074C,0x074D,0x074E,0x074F, /* 0748 */
0x0750,0x0751,0x0752,0x0753,0x0754,0x0755,0x0756,0x0757, /* 0750 */
0x0758,0x0759,0x075A,0x075B,0x075C,0x075D,0x075E,0x075F, /* 0758 */
0x0760,0x0761,0x0762,0x0763,0x0764,0x0765,0x0766,0x0767, /* 0760 */
0x0768,0x0769,0x076A,0x076B,0x076C,0x076D,0x076E,0x076F, /* 0768 */
0x0770,0x0771,0x0772,0x0773,0x0774,0x0775,0x0776,0x0777, /* 0770 */
0x0778,0x0779,0x077A,0x077B,0x077C,0x077D,0x077E,0x077F, /* 0778 */
0x0780,0x0781,0x0782,0x0783,0x0784,0x0785,0x0786,0x0787, /* 0780 */
0x0788,0x0789,0x078A,0x078B,0x078C,0x078D,0x078E,0x078F, /* 0788 */
0x0790,0x0791,0x0792,0x0793,0x0794,0x0795,0x0796,0x0797, /* 0790 */
0x0798,0x0799,0x079A,0x079B,0x079C,0x079D,0x079E,0x079F, /* 0798 */
0x07A0,0x07A1,0x07A2,0x07A3,0x07A4,0x07A5,0x07A6,0x07A7, /* 07A0 */
0x07A8,0x07A9,0x07AA,0x07AB,0x07AC,0x07AD,0x07AE,0x07AF, /* 07A8 */
0x07B0,0x07B1,0x07B2,0x07B3,0x07B4,0x07B5,0x07B6,0x07B7, /* 07B0 */
0x07B8,0x07B9,0x07BA,0x07BB,0x07BC,0x07BD,0x07BE,0x07BF, /* 07B8 */
0x07C0,0x07C1,0x07C2,0x07C3,0x07C4,0x07C5,0x07C6,0x07C7, /* 07C0 */
0x07C8,0x07C9,0x07CA,0x07CB,0x07CC,0x07CD,0x07CE,0x07CF, /* 07C8 */
0x07D0,0x07D1,0x07D2,0x07D3,0x07D4,0x07D5,0x07D6,0x07D7, /* 07D0 */
0x07D8,0x07D9,0x07DA,0x07DB,0x07DC,0x07DD,0x07DE,0x07DF, /* 07D8 */
0x07E0,0x07E1,0x07E2,0x07E3,0x07E4,0x07E5,0x07E6,0x07E7, /* 07E0 */
0x07E8,0x07E9,0x07EA,0x07EB,0x07EC,0x07ED,0x07EE,0x07EF, /* 07E8 */
0x07F0,0x07F1,0x07F2,0x07F3,0x07F4,0x07F5,0x07F6,0x07F7, /* 07F0 */
0x07F8,0x07F9,0x07FA,0x07FB,0x07FC,0x07FD,0x07FE,0x07FF /* 07F8 */
};
static const uint16 weight_general_ci_page1E[256]={
0x0041,0x0041,0x0042,0x0042,0x0042,0x0042,0x0042,0x0042, /* 1E00 */
0x0043,0x0043,0x0044,0x0044,0x0044,0x0044,0x0044,0x0044, /* 1E08 */
0x0044,0x0044,0x0044,0x0044,0x0045,0x0045,0x0045,0x0045, /* 1E10 */
0x0045,0x0045,0x0045,0x0045,0x0045,0x0045,0x0046,0x0046, /* 1E18 */
0x0047,0x0047,0x0048,0x0048,0x0048,0x0048,0x0048,0x0048, /* 1E20 */
0x0048,0x0048,0x0048,0x0048,0x0049,0x0049,0x0049,0x0049, /* 1E28 */
0x004B,0x004B,0x004B,0x004B,0x004B,0x004B,0x004C,0x004C, /* 1E30 */
0x004C,0x004C,0x004C,0x004C,0x004C,0x004C,0x004D,0x004D, /* 1E38 */
0x004D,0x004D,0x004D,0x004D,0x004E,0x004E,0x004E,0x004E, /* 1E40 */
0x004E,0x004E,0x004E,0x004E,0x004F,0x004F,0x004F,0x004F, /* 1E48 */
0x004F,0x004F,0x004F,0x004F,0x0050,0x0050,0x0050,0x0050, /* 1E50 */
0x0052,0x0052,0x0052,0x0052,0x0052,0x0052,0x0052,0x0052, /* 1E58 */
0x0053,0x0053,0x0053,0x0053,0x0053,0x0053,0x0053,0x0053, /* 1E60 */
0x0053,0x0053,0x0054,0x0054,0x0054,0x0054,0x0054,0x0054, /* 1E68 */
0x0054,0x0054,0x0055,0x0055,0x0055,0x0055,0x0055,0x0055, /* 1E70 */
0x0055,0x0055,0x0055,0x0055,0x0056,0x0056,0x0056,0x0056, /* 1E78 */
0x0057,0x0057,0x0057,0x0057,0x0057,0x0057,0x0057,0x0057, /* 1E80 */
0x0057,0x0057,0x0058,0x0058,0x0058,0x0058,0x0059,0x0059, /* 1E88 */
0x005A,0x005A,0x005A,0x005A,0x005A,0x005A,0x0048,0x0054, /* 1E90 */
0x0057,0x0059,0x1E9A,0x0053,0x1E9C,0x1E9D,0x1E9E,0x1E9F, /* 1E98 */
0x0041,0x0041,0x0041,0x0041,0x0041,0x0041,0x0041,0x0041, /* 1EA0 */
0x0041,0x0041,0x0041,0x0041,0x0041,0x0041,0x0041,0x0041, /* 1EA8 */
0x0041,0x0041,0x0041,0x0041,0x0041,0x0041,0x0041,0x0041, /* 1EB0 */
0x0045,0x0045,0x0045,0x0045,0x0045,0x0045,0x0045,0x0045, /* 1EB8 */
0x0045,0x0045,0x0045,0x0045,0x0045,0x0045,0x0045,0x0045, /* 1EC0 */
0x0049,0x0049,0x0049,0x0049,0x004F,0x004F,0x004F,0x004F, /* 1EC8 */
0x004F,0x004F,0x004F,0x004F,0x004F,0x004F,0x004F,0x004F, /* 1ED0 */
0x004F,0x004F,0x004F,0x004F,0x004F,0x004F,0x004F,0x004F, /* 1ED8 */
0x004F,0x004F,0x004F,0x004F,0x0055,0x0055,0x0055,0x0055, /* 1EE0 */
0x0055,0x0055,0x0055,0x0055,0x0055,0x0055,0x0055,0x0055, /* 1EE8 */
0x0055,0x0055,0x0059,0x0059,0x0059,0x0059,0x0059,0x0059, /* 1EF0 */
0x0059,0x0059,0x1EFA,0x1EFB,0x1EFC,0x1EFD,0x1EFE,0x1EFF /* 1EF8 */
};
static const uint16 weight_general_ci_page1F[256]={
0x0391,0x0391,0x0391,0x0391,0x0391,0x0391,0x0391,0x0391, /* 1F00 */
0x0391,0x0391,0x0391,0x0391,0x0391,0x0391,0x0391,0x0391, /* 1F08 */
0x0395,0x0395,0x0395,0x0395,0x0395,0x0395,0x1F16,0x1F17, /* 1F10 */
0x0395,0x0395,0x0395,0x0395,0x0395,0x0395,0x1F1E,0x1F1F, /* 1F18 */
0x0397,0x0397,0x0397,0x0397,0x0397,0x0397,0x0397,0x0397, /* 1F20 */
0x0397,0x0397,0x0397,0x0397,0x0397,0x0397,0x0397,0x0397, /* 1F28 */
0x0399,0x0399,0x0399,0x0399,0x0399,0x0399,0x0399,0x0399, /* 1F30 */
0x0399,0x0399,0x0399,0x0399,0x0399,0x0399,0x0399,0x0399, /* 1F38 */
0x039F,0x039F,0x039F,0x039F,0x039F,0x039F,0x1F46,0x1F47, /* 1F40 */
0x039F,0x039F,0x039F,0x039F,0x039F,0x039F,0x1F4E,0x1F4F, /* 1F48 */
0x03A5,0x03A5,0x03A5,0x03A5,0x03A5,0x03A5,0x03A5,0x03A5, /* 1F50 */
0x1F58,0x03A5,0x1F5A,0x03A5,0x1F5C,0x03A5,0x1F5E,0x03A5, /* 1F58 */
0x03A9,0x03A9,0x03A9,0x03A9,0x03A9,0x03A9,0x03A9,0x03A9, /* 1F60 */
0x03A9,0x03A9,0x03A9,0x03A9,0x03A9,0x03A9,0x03A9,0x03A9, /* 1F68 */
0x0391,0x1FBB,0x0395,0x1FC9,0x0397,0x1FCB,0x0399,0x1FDB, /* 1F70 */
0x039F,0x1FF9,0x03A5,0x1FEB,0x03A9,0x1FFB,0x1F7E,0x1F7F, /* 1F78 */
0x0391,0x0391,0x0391,0x0391,0x0391,0x0391,0x0391,0x0391, /* 1F80 */
0x0391,0x0391,0x0391,0x0391,0x0391,0x0391,0x0391,0x0391, /* 1F88 */
0x0397,0x0397,0x0397,0x0397,0x0397,0x0397,0x0397,0x0397, /* 1F90 */
0x0397,0x0397,0x0397,0x0397,0x0397,0x0397,0x0397,0x0397, /* 1F98 */
0x03A9,0x03A9,0x03A9,0x03A9,0x03A9,0x03A9,0x03A9,0x03A9, /* 1FA0 */
0x03A9,0x03A9,0x03A9,0x03A9,0x03A9,0x03A9,0x03A9,0x03A9, /* 1FA8 */
0x0391,0x0391,0x0391,0x0391,0x0391,0x1FB5,0x0391,0x0391, /* 1FB0 */
0x0391,0x0391,0x0391,0x1FBB,0x0391,0x1FBD,0x0399,0x1FBF, /* 1FB8 */
0x1FC0,0x1FC1,0x0397,0x0397,0x0397,0x1FC5,0x0397,0x0397, /* 1FC0 */
0x0395,0x1FC9,0x0397,0x1FCB,0x0397,0x1FCD,0x1FCE,0x1FCF, /* 1FC8 */
0x0399,0x0399,0x0399,0x1FD3,0x1FD4,0x1FD5,0x0399,0x0399, /* 1FD0 */
0x0399,0x0399,0x0399,0x1FDB,0x1FDC,0x1FDD,0x1FDE,0x1FDF, /* 1FD8 */
0x03A5,0x03A5,0x03A5,0x1FE3,0x03A1,0x03A1,0x03A5,0x03A5, /* 1FE0 */
0x03A5,0x03A5,0x03A5,0x1FEB,0x03A1,0x1FED,0x1FEE,0x1FEF, /* 1FE8 */
0x1FF0,0x1FF1,0x03A9,0x03A9,0x03A9,0x1FF5,0x03A9,0x03A9, /* 1FF0 */
0x039F,0x1FF9,0x03A9,0x1FFB,0x03A9,0x1FFD,0x1FFE,0x1FFF /* 1FF8 */
};
static const uint16 weight_general_ci_page21[256]={
0x2100,0x2101,0x2102,0x2103,0x2104,0x2105,0x2106,0x2107, /* 2100 */
0x2108,0x2109,0x210A,0x210B,0x210C,0x210D,0x210E,0x210F, /* 2108 */
0x2110,0x2111,0x2112,0x2113,0x2114,0x2115,0x2116,0x2117, /* 2110 */
0x2118,0x2119,0x211A,0x211B,0x211C,0x211D,0x211E,0x211F, /* 2118 */
0x2120,0x2121,0x2122,0x2123,0x2124,0x2125,0x2126,0x2127, /* 2120 */
0x2128,0x2129,0x212A,0x212B,0x212C,0x212D,0x212E,0x212F, /* 2128 */
0x2130,0x2131,0x2132,0x2133,0x2134,0x2135,0x2136,0x2137, /* 2130 */
0x2138,0x2139,0x213A,0x213B,0x213C,0x213D,0x213E,0x213F, /* 2138 */
0x2140,0x2141,0x2142,0x2143,0x2144,0x2145,0x2146,0x2147, /* 2140 */
0x2148,0x2149,0x214A,0x214B,0x214C,0x214D,0x214E,0x214F, /* 2148 */
0x2150,0x2151,0x2152,0x2153,0x2154,0x2155,0x2156,0x2157, /* 2150 */
0x2158,0x2159,0x215A,0x215B,0x215C,0x215D,0x215E,0x215F, /* 2158 */
0x2160,0x2161,0x2162,0x2163,0x2164,0x2165,0x2166,0x2167, /* 2160 */
0x2168,0x2169,0x216A,0x216B,0x216C,0x216D,0x216E,0x216F, /* 2168 */
0x2160,0x2161,0x2162,0x2163,0x2164,0x2165,0x2166,0x2167, /* 2170 */
0x2168,0x2169,0x216A,0x216B,0x216C,0x216D,0x216E,0x216F, /* 2178 */
0x2180,0x2181,0x2182,0x2183,0x2184,0x2185,0x2186,0x2187, /* 2180 */
0x2188,0x2189,0x218A,0x218B,0x218C,0x218D,0x218E,0x218F, /* 2188 */
0x2190,0x2191,0x2192,0x2193,0x2194,0x2195,0x2196,0x2197, /* 2190 */
0x2198,0x2199,0x219A,0x219B,0x219C,0x219D,0x219E,0x219F, /* 2198 */
0x21A0,0x21A1,0x21A2,0x21A3,0x21A4,0x21A5,0x21A6,0x21A7, /* 21A0 */
0x21A8,0x21A9,0x21AA,0x21AB,0x21AC,0x21AD,0x21AE,0x21AF, /* 21A8 */
0x21B0,0x21B1,0x21B2,0x21B3,0x21B4,0x21B5,0x21B6,0x21B7, /* 21B0 */
0x21B8,0x21B9,0x21BA,0x21BB,0x21BC,0x21BD,0x21BE,0x21BF, /* 21B8 */
0x21C0,0x21C1,0x21C2,0x21C3,0x21C4,0x21C5,0x21C6,0x21C7, /* 21C0 */
0x21C8,0x21C9,0x21CA,0x21CB,0x21CC,0x21CD,0x21CE,0x21CF, /* 21C8 */
0x21D0,0x21D1,0x21D2,0x21D3,0x21D4,0x21D5,0x21D6,0x21D7, /* 21D0 */
0x21D8,0x21D9,0x21DA,0x21DB,0x21DC,0x21DD,0x21DE,0x21DF, /* 21D8 */
0x21E0,0x21E1,0x21E2,0x21E3,0x21E4,0x21E5,0x21E6,0x21E7, /* 21E0 */
0x21E8,0x21E9,0x21EA,0x21EB,0x21EC,0x21ED,0x21EE,0x21EF, /* 21E8 */
0x21F0,0x21F1,0x21F2,0x21F3,0x21F4,0x21F5,0x21F6,0x21F7, /* 21F0 */
0x21F8,0x21F9,0x21FA,0x21FB,0x21FC,0x21FD,0x21FE,0x21FF /* 21F8 */
};
static const uint16 weight_general_ci_page24[256]={
0x2400,0x2401,0x2402,0x2403,0x2404,0x2405,0x2406,0x2407, /* 2400 */
0x2408,0x2409,0x240A,0x240B,0x240C,0x240D,0x240E,0x240F, /* 2408 */
0x2410,0x2411,0x2412,0x2413,0x2414,0x2415,0x2416,0x2417, /* 2410 */
0x2418,0x2419,0x241A,0x241B,0x241C,0x241D,0x241E,0x241F, /* 2418 */
0x2420,0x2421,0x2422,0x2423,0x2424,0x2425,0x2426,0x2427, /* 2420 */
0x2428,0x2429,0x242A,0x242B,0x242C,0x242D,0x242E,0x242F, /* 2428 */
0x2430,0x2431,0x2432,0x2433,0x2434,0x2435,0x2436,0x2437, /* 2430 */
0x2438,0x2439,0x243A,0x243B,0x243C,0x243D,0x243E,0x243F, /* 2438 */
0x2440,0x2441,0x2442,0x2443,0x2444,0x2445,0x2446,0x2447, /* 2440 */
0x2448,0x2449,0x244A,0x244B,0x244C,0x244D,0x244E,0x244F, /* 2448 */
0x2450,0x2451,0x2452,0x2453,0x2454,0x2455,0x2456,0x2457, /* 2450 */
0x2458,0x2459,0x245A,0x245B,0x245C,0x245D,0x245E,0x245F, /* 2458 */
0x2460,0x2461,0x2462,0x2463,0x2464,0x2465,0x2466,0x2467, /* 2460 */
0x2468,0x2469,0x246A,0x246B,0x246C,0x246D,0x246E,0x246F, /* 2468 */
0x2470,0x2471,0x2472,0x2473,0x2474,0x2475,0x2476,0x2477, /* 2470 */
0x2478,0x2479,0x247A,0x247B,0x247C,0x247D,0x247E,0x247F, /* 2478 */
0x2480,0x2481,0x2482,0x2483,0x2484,0x2485,0x2486,0x2487, /* 2480 */
0x2488,0x2489,0x248A,0x248B,0x248C,0x248D,0x248E,0x248F, /* 2488 */
0x2490,0x2491,0x2492,0x2493,0x2494,0x2495,0x2496,0x2497, /* 2490 */
0x2498,0x2499,0x249A,0x249B,0x249C,0x249D,0x249E,0x249F, /* 2498 */
0x24A0,0x24A1,0x24A2,0x24A3,0x24A4,0x24A5,0x24A6,0x24A7, /* 24A0 */
0x24A8,0x24A9,0x24AA,0x24AB,0x24AC,0x24AD,0x24AE,0x24AF, /* 24A8 */
0x24B0,0x24B1,0x24B2,0x24B3,0x24B4,0x24B5,0x24B6,0x24B7, /* 24B0 */
0x24B8,0x24B9,0x24BA,0x24BB,0x24BC,0x24BD,0x24BE,0x24BF, /* 24B8 */
0x24C0,0x24C1,0x24C2,0x24C3,0x24C4,0x24C5,0x24C6,0x24C7, /* 24C0 */
0x24C8,0x24C9,0x24CA,0x24CB,0x24CC,0x24CD,0x24CE,0x24CF, /* 24C8 */
0x24B6,0x24B7,0x24B8,0x24B9,0x24BA,0x24BB,0x24BC,0x24BD, /* 24D0 */
0x24BE,0x24BF,0x24C0,0x24C1,0x24C2,0x24C3,0x24C4,0x24C5, /* 24D8 */
0x24C6,0x24C7,0x24C8,0x24C9,0x24CA,0x24CB,0x24CC,0x24CD, /* 24E0 */
0x24CE,0x24CF,0x24EA,0x24EB,0x24EC,0x24ED,0x24EE,0x24EF, /* 24E8 */
0x24F0,0x24F1,0x24F2,0x24F3,0x24F4,0x24F5,0x24F6,0x24F7, /* 24F0 */
0x24F8,0x24F9,0x24FA,0x24FB,0x24FC,0x24FD,0x24FE,0x24FF /* 24F8 */
};
static const uint16 weight_general_ci_pageFF[256]={
0xFF00,0xFF01,0xFF02,0xFF03,0xFF04,0xFF05,0xFF06,0xFF07, /* FF00 */
0xFF08,0xFF09,0xFF0A,0xFF0B,0xFF0C,0xFF0D,0xFF0E,0xFF0F, /* FF08 */
0xFF10,0xFF11,0xFF12,0xFF13,0xFF14,0xFF15,0xFF16,0xFF17, /* FF10 */
0xFF18,0xFF19,0xFF1A,0xFF1B,0xFF1C,0xFF1D,0xFF1E,0xFF1F, /* FF18 */
0xFF20,0xFF21,0xFF22,0xFF23,0xFF24,0xFF25,0xFF26,0xFF27, /* FF20 */
0xFF28,0xFF29,0xFF2A,0xFF2B,0xFF2C,0xFF2D,0xFF2E,0xFF2F, /* FF28 */
0xFF30,0xFF31,0xFF32,0xFF33,0xFF34,0xFF35,0xFF36,0xFF37, /* FF30 */
0xFF38,0xFF39,0xFF3A,0xFF3B,0xFF3C,0xFF3D,0xFF3E,0xFF3F, /* FF38 */
0xFF40,0xFF21,0xFF22,0xFF23,0xFF24,0xFF25,0xFF26,0xFF27, /* FF40 */
0xFF28,0xFF29,0xFF2A,0xFF2B,0xFF2C,0xFF2D,0xFF2E,0xFF2F, /* FF48 */
0xFF30,0xFF31,0xFF32,0xFF33,0xFF34,0xFF35,0xFF36,0xFF37, /* FF50 */
0xFF38,0xFF39,0xFF3A,0xFF5B,0xFF5C,0xFF5D,0xFF5E,0xFF5F, /* FF58 */
0xFF60,0xFF61,0xFF62,0xFF63,0xFF64,0xFF65,0xFF66,0xFF67, /* FF60 */
0xFF68,0xFF69,0xFF6A,0xFF6B,0xFF6C,0xFF6D,0xFF6E,0xFF6F, /* FF68 */
0xFF70,0xFF71,0xFF72,0xFF73,0xFF74,0xFF75,0xFF76,0xFF77, /* FF70 */
0xFF78,0xFF79,0xFF7A,0xFF7B,0xFF7C,0xFF7D,0xFF7E,0xFF7F, /* FF78 */
0xFF80,0xFF81,0xFF82,0xFF83,0xFF84,0xFF85,0xFF86,0xFF87, /* FF80 */
0xFF88,0xFF89,0xFF8A,0xFF8B,0xFF8C,0xFF8D,0xFF8E,0xFF8F, /* FF88 */
0xFF90,0xFF91,0xFF92,0xFF93,0xFF94,0xFF95,0xFF96,0xFF97, /* FF90 */
0xFF98,0xFF99,0xFF9A,0xFF9B,0xFF9C,0xFF9D,0xFF9E,0xFF9F, /* FF98 */
0xFFA0,0xFFA1,0xFFA2,0xFFA3,0xFFA4,0xFFA5,0xFFA6,0xFFA7, /* FFA0 */
0xFFA8,0xFFA9,0xFFAA,0xFFAB,0xFFAC,0xFFAD,0xFFAE,0xFFAF, /* FFA8 */
0xFFB0,0xFFB1,0xFFB2,0xFFB3,0xFFB4,0xFFB5,0xFFB6,0xFFB7, /* FFB0 */
0xFFB8,0xFFB9,0xFFBA,0xFFBB,0xFFBC,0xFFBD,0xFFBE,0xFFBF, /* FFB8 */
0xFFC0,0xFFC1,0xFFC2,0xFFC3,0xFFC4,0xFFC5,0xFFC6,0xFFC7, /* FFC0 */
0xFFC8,0xFFC9,0xFFCA,0xFFCB,0xFFCC,0xFFCD,0xFFCE,0xFFCF, /* FFC8 */
0xFFD0,0xFFD1,0xFFD2,0xFFD3,0xFFD4,0xFFD5,0xFFD6,0xFFD7, /* FFD0 */
0xFFD8,0xFFD9,0xFFDA,0xFFDB,0xFFDC,0xFFDD,0xFFDE,0xFFDF, /* FFD8 */
0xFFE0,0xFFE1,0xFFE2,0xFFE3,0xFFE4,0xFFE5,0xFFE6,0xFFE7, /* FFE0 */
0xFFE8,0xFFE9,0xFFEA,0xFFEB,0xFFEC,0xFFED,0xFFEE,0xFFEF, /* FFE8 */
0xFFF0,0xFFF1,0xFFF2,0xFFF3,0xFFF4,0xFFF5,0xFFF6,0xFFF7, /* FFF0 */
0xFFF8,0xFFF9,0xFFFA,0xFFFB,0xFFFC,0xFFFD,0xFFFE,0xFFFF /* FFF8 */
};
const uint16 * weight_general_ci_index[256]={
weight_general_ci_page00, weight_general_ci_page01,
weight_general_ci_page02, weight_general_ci_page03,
weight_general_ci_page04, weight_general_ci_page05,
weight_general_ci_page06, weight_general_ci_page07,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
weight_general_ci_page1E, weight_general_ci_page1F,
NULL, weight_general_ci_page21,
NULL, NULL,
weight_general_ci_page24, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, weight_general_ci_pageFF
};

View File

@@ -0,0 +1,190 @@
/* Copyright (c) 2000, 2013, Oracle and/or its affiliates.
Copyright (c) 2009, 2023, MariaDB Corporation.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; version 2 of the License.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA
*/
/*
Generated by:
./unidata-dump \
--mode=weight_general_mysql500_ci \
--max-char=0xFFFF \
UnicodeData-3.0.0.txt
*/
const uint16 weight_general_mysql500_ci_page00[256]={
0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, /* 0000 */
0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, /* 0008 */
0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, /* 0010 */
0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, /* 0018 */
0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, /* 0020 */
0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, /* 0028 */
0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, /* 0030 */
0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, /* 0038 */
0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, /* 0040 */
0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, /* 0048 */
0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, /* 0050 */
0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, /* 0058 */
0x0060,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, /* 0060 */
0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, /* 0068 */
0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, /* 0070 */
0x0058,0x0059,0x005A,0x007B,0x007C,0x007D,0x007E,0x007F, /* 0078 */
0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087, /* 0080 */
0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F, /* 0088 */
0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097, /* 0090 */
0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F, /* 0098 */
0x00A0,0x00A1,0x00A2,0x00A3,0x00A4,0x00A5,0x00A6,0x00A7, /* 00A0 */
0x00A8,0x00A9,0x00AA,0x00AB,0x00AC,0x00AD,0x00AE,0x00AF, /* 00A8 */
0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x039C,0x00B6,0x00B7, /* 00B0 */
0x00B8,0x00B9,0x00BA,0x00BB,0x00BC,0x00BD,0x00BE,0x00BF, /* 00B8 */
0x0041,0x0041,0x0041,0x0041,0x0041,0x0041,0x00C6,0x0043, /* 00C0 */
0x0045,0x0045,0x0045,0x0045,0x0049,0x0049,0x0049,0x0049, /* 00C8 */
0x00D0,0x004E,0x004F,0x004F,0x004F,0x004F,0x004F,0x00D7, /* 00D0 */
0x00D8,0x0055,0x0055,0x0055,0x0055,0x0059,0x00DE,0x00DF, /* 00D8 */
0x0041,0x0041,0x0041,0x0041,0x0041,0x0041,0x00C6,0x0043, /* 00E0 */
0x0045,0x0045,0x0045,0x0045,0x0049,0x0049,0x0049,0x0049, /* 00E8 */
0x00D0,0x004E,0x004F,0x004F,0x004F,0x004F,0x004F,0x00F7, /* 00F0 */
0x00D8,0x0055,0x0055,0x0055,0x0055,0x0059,0x00DE,0x0059 /* 00F8 */
};
const uint16 * weight_general_mysql500_ci_index[256]={
weight_general_mysql500_ci_page00, weight_general_ci_page01,
weight_general_ci_page02, weight_general_ci_page03,
weight_general_ci_page04, weight_general_ci_page05,
weight_general_ci_page06, weight_general_ci_page07,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
weight_general_ci_page1E, weight_general_ci_page1F,
NULL, weight_general_ci_page21,
NULL, NULL,
weight_general_ci_page24, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, weight_general_ci_pageFF
};

File diff suppressed because it is too large Load Diff

97
strings/ctype-unidata.c Normal file
View File

@@ -0,0 +1,97 @@
/* Copyright (c) 2000, 2013, Oracle and/or its affiliates.
Copyright (c) 2009, 2020, MariaDB
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; version 2
of the License.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with this library; if not, write to the Free
Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
MA 02110-1335 USA */
#include "strings_def.h"
#include <m_ctype.h>
#include "ctype-mb.h"
#ifndef EILSEQ
#define EILSEQ ENOENT
#endif
#include "ctype-unidata.h"
#include "ctype-unicode300-general_ci.h"
#include "ctype-unicode300-general_mysql500_ci.h"
#include "ctype-unicode300-casefold.h"
#include "ctype-unicode300-casefold-tr.h"
#include "ctype-unicode520-casefold.h"
#include "ctype-unicode1400-casefold.h"
#include "ctype-unicode1400-casefold-tr.h"
MY_CASEFOLD_INFO my_casefold_default=
{
0xFFFF,
my_u300_casefold_index,
weight_general_ci_index
};
/*
Turkish lower/upper mapping:
1. LOWER(0x0049 LATIN CAPITAL LETTER I) ->
0x0131 LATIN SMALL LETTER DOTLESS I
2. UPPER(0x0069 LATIN SMALL LETTER I) ->
0x0130 LATIN CAPITAL LETTER I WITH DOT ABOVE
*/
MY_CASEFOLD_INFO my_casefold_turkish=
{
0xFFFF,
my_u300tr_casefold_index,
weight_general_ci_index
};
/*
general_mysql500_ci is very similar to general_ci, but maps sorting order
for U+00DF to 0x00DF instead of 0x0053.
*/
MY_CASEFOLD_INFO my_casefold_mysql500=
{
0xFFFF,
my_u300_casefold_index,
weight_general_mysql500_ci_index
};
MY_CASEFOLD_INFO my_casefold_unicode520=
{
0x10FFFF,
my_u520_casefold_index,
NULL
};
MY_CASEFOLD_INFO my_casefold_unicode1400=
{
0x10FFFF,
my_u1400_casefold_index,
NULL
};
MY_CASEFOLD_INFO my_casefold_unicode1400tr=
{
0x10FFFF,
my_u1400tr_casefold_index,
NULL
};

View File

@@ -1,7 +1,7 @@
#ifndef CTYPE_UNIDATA_H_INCLUDED #ifndef CTYPE_UNIDATA_H_INCLUDED
#define CTYPE_UNIDATA_H_INCLUDED #define CTYPE_UNIDATA_H_INCLUDED
/* /*
Copyright (c) 2018 MariaDB Corporation Copyright (c) 2018, 2023 MariaDB Corporation
This program is free software; you can redistribute it and/or modify This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
@@ -17,12 +17,128 @@
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/ */
#define MY_UNICASE_INFO_DEFAULT_MAXCHAR 0xFFFF
extern MY_UNICASE_CHARACTER my_unicase_default_page00[256];
extern MY_UNICASE_CHARACTER *my_unicase_default_pages[256];
extern MY_UNICASE_CHARACTER my_unicase_mysql500_page00[256]; extern const uint16 weight_general_ci_page00[256];
extern MY_UNICASE_CHARACTER *my_unicase_mysql500_pages[256]; extern const uint16 *weight_general_ci_index[256];
extern const uint16 weight_general_mysql500_ci_page00[256];
extern const uint16 *weight_general_mysql500_ci_index[256];
extern const MY_CASEFOLD_CHARACTER u300_casefold_page00[256];
static inline my_wc_t my_u300_tolower_7bit(uchar ch)
{
return u300_casefold_page00[ch].tolower;
}
static inline my_wc_t my_u300_toupper_7bit(uchar ch)
{
return u300_casefold_page00[ch].toupper;
}
static inline my_wc_t my_general_ci_bmp_char_to_weight(my_wc_t wc)
{
const uint16 *page;
DBUG_ASSERT((wc >> 8) < array_elements(weight_general_ci_index));
page= weight_general_ci_index[wc >> 8];
return page ? page[wc & 0xFF] : wc;
}
static inline my_wc_t my_general_ci_char_to_weight(my_wc_t wc)
{
if ((wc >> 8) < array_elements(weight_general_ci_index))
return my_general_ci_bmp_char_to_weight(wc);
return MY_CS_REPLACEMENT_CHARACTER;
}
static inline my_wc_t my_general_mysql500_ci_bmp_char_to_weight(my_wc_t wc)
{
const uint16 *page;
DBUG_ASSERT((wc >> 8) < array_elements(weight_general_mysql500_ci_index));
page= weight_general_mysql500_ci_index[wc >> 8];
return page ? page[wc & 0xFF] : wc;
}
static inline void my_tosort_unicode_bmp(MY_CASEFOLD_INFO *uni_plane,
my_wc_t *wc)
{
const uint16 *page;
DBUG_ASSERT(*wc <= uni_plane->maxchar);
if ((page= uni_plane->simple_weight[*wc >> 8]))
*wc= page[*wc & 0xFF];
}
static inline void my_tosort_unicode(MY_CASEFOLD_INFO *uni_plane,
my_wc_t *wc)
{
if (*wc <= uni_plane->maxchar)
{
const uint16 *page;
if ((page= uni_plane->simple_weight[*wc >> 8]))
*wc= page[*wc & 0xFF];
}
else
{
*wc= MY_CS_REPLACEMENT_CHARACTER;
}
}
static inline void
my_tolower_unicode_bmp(MY_CASEFOLD_INFO *uni_plane, my_wc_t *wc)
{
const MY_CASEFOLD_CHARACTER *page;
DBUG_ASSERT(*wc <= uni_plane->maxchar);
if ((page= uni_plane->page[*wc >> 8]))
*wc= page[*wc & 0xFF].tolower;
}
static inline void
my_toupper_unicode_bmp(MY_CASEFOLD_INFO *uni_plane, my_wc_t *wc)
{
const MY_CASEFOLD_CHARACTER *page;
DBUG_ASSERT(*wc <= uni_plane->maxchar);
if ((page= uni_plane->page[*wc >> 8]))
*wc= page[*wc & 0xFF].toupper;
}
static inline void
my_tolower_unicode(MY_CASEFOLD_INFO *uni_plane, my_wc_t *wc)
{
if (*wc <= uni_plane->maxchar)
{
const MY_CASEFOLD_CHARACTER *page;
if ((page= uni_plane->page[(*wc >> 8)]))
*wc= page[*wc & 0xFF].tolower;
}
}
static inline void
my_toupper_unicode(MY_CASEFOLD_INFO *uni_plane, my_wc_t *wc)
{
if (*wc <= uni_plane->maxchar)
{
const MY_CASEFOLD_CHARACTER *page;
if ((page= uni_plane->page[(*wc >> 8)]))
*wc= page[*wc & 0xFF].toupper;
}
}
extern MY_CASEFOLD_INFO my_casefold_default;
extern MY_CASEFOLD_INFO my_casefold_turkish;
extern MY_CASEFOLD_INFO my_casefold_mysql500;
extern MY_CASEFOLD_INFO my_casefold_unicode520;
extern MY_CASEFOLD_INFO my_casefold_unicode1400;
extern MY_CASEFOLD_INFO my_casefold_unicode1400tr;
size_t my_strxfrm_pad_nweights_unicode(uchar *str, uchar *strend, size_t nweights); size_t my_strxfrm_pad_nweights_unicode(uchar *str, uchar *strend, size_t nweights);
size_t my_strxfrm_pad_unicode(uchar *str, uchar *strend); size_t my_strxfrm_pad_unicode(uchar *str, uchar *strend);

File diff suppressed because it is too large Load Diff

View File

@@ -711,7 +711,6 @@ struct charset_info_st my_charset_cp1250_czech_cs =
tab_cp1250_uni, /* tab_to_uni */ tab_cp1250_uni, /* tab_to_uni */
idx_uni_cp1250, /* tab_from_uni */ idx_uni_cp1250, /* tab_from_uni */
NULL, /* casefold */ NULL, /* casefold */
&my_unicase_default, /* caseinfo */
NULL, /* state_map */ NULL, /* state_map */
NULL, /* ident_map */ NULL, /* ident_map */
2, /* strxfrm_multiply */ 2, /* strxfrm_multiply */

View File

@@ -490,16 +490,12 @@ MY_FUNCTION_NAME(strnxfrm)(CHARSET_INFO *cs,
#error OPTIMIZE_ASCII must be defined for DEFINE_STRNXFRM_UNICODE #error OPTIMIZE_ASCII must be defined for DEFINE_STRNXFRM_UNICODE
#endif #endif
#ifndef UNICASE_MAXCHAR #if OPTIMIZE_ASCII && !defined(WEIGHT_MB1)
#error UNICASE_MAXCHAR must be defined for DEFINE_STRNXFRM_UNICODE #error WEIGHT_MB1 must be defined for DEFINE_STRNXFRM_UNICODE
#endif #endif
#ifndef UNICASE_PAGE0 #ifndef MY_WC_WEIGHT
#error UNICASE_PAGE0 must be defined for DEFINE_STRNXFRM_UNICODE #error MY_WC_WEIGHT must be defined for DEFINE_STRNXFRM_UNICODE
#endif
#ifndef UNICASE_PAGES
#error UNICASE_PAGES must be defined for DEFINE_STRNXFRM_UNICODE
#endif #endif
@@ -514,7 +510,6 @@ MY_FUNCTION_NAME(strnxfrm_internal)(CHARSET_INFO *cs __attribute__((unused)),
DBUG_ASSERT(src || !se); DBUG_ASSERT(src || !se);
DBUG_ASSERT((cs->state & MY_CS_LOWER_SORT) == 0); DBUG_ASSERT((cs->state & MY_CS_LOWER_SORT) == 0);
DBUG_ASSERT(0x7F <= UNICASE_MAXCHAR);
for (; dst < de && *nweights; (*nweights)--) for (; dst < de && *nweights; (*nweights)--)
{ {
@@ -524,7 +519,7 @@ MY_FUNCTION_NAME(strnxfrm_internal)(CHARSET_INFO *cs __attribute__((unused)),
break; break;
if (src[0] <= 0x7F) if (src[0] <= 0x7F)
{ {
wc= UNICASE_PAGE0[*src++].sort; wc= WEIGHT_MB1(*src++);
PUT_WC_BE2_HAVE_1BYTE(dst, de, wc); PUT_WC_BE2_HAVE_1BYTE(dst, de, wc);
continue; continue;
} }
@@ -532,14 +527,7 @@ MY_FUNCTION_NAME(strnxfrm_internal)(CHARSET_INFO *cs __attribute__((unused)),
if ((res= MY_MB_WC(cs, &wc, src, se)) <= 0) if ((res= MY_MB_WC(cs, &wc, src, se)) <= 0)
break; break;
src+= res; src+= res;
if (wc <= UNICASE_MAXCHAR) wc= MY_WC_WEIGHT(wc);
{
MY_UNICASE_CHARACTER *page;
if ((page= UNICASE_PAGES[wc >> 8]))
wc= page[wc & 0xFF].sort;
}
else
wc= MY_CS_REPLACEMENT_CHARACTER;
PUT_WC_BE2_HAVE_1BYTE(dst, de, wc); PUT_WC_BE2_HAVE_1BYTE(dst, de, wc);
} }
return dst - dst0; return dst - dst0;
@@ -722,9 +710,7 @@ MY_FUNCTION_NAME(strnxfrm_nopad)(CHARSET_INFO *cs,
#undef MY_FUNCTION_NAME #undef MY_FUNCTION_NAME
#undef MY_MB_WC #undef MY_MB_WC
#undef OPTIMIZE_ASCII #undef OPTIMIZE_ASCII
#undef UNICASE_MAXCHAR #undef MY_WC_WEIGHT
#undef UNICASE_PAGE0
#undef UNICASE_PAGES
#undef WEIGHT_ILSEQ #undef WEIGHT_ILSEQ
#undef WEIGHT_MB1 #undef WEIGHT_MB1
#undef WEIGHT_MB2 #undef WEIGHT_MB2

1110
strings/unidata-dump.c Normal file

File diff suppressed because it is too large Load Diff