Commit b62123e0 authored by Alexander Barkov's avatar Alexander Barkov

MDEV-30716 Wrong casefolding in xxx_unicode_520_ci for U+0700..U+07FF

The array my_unicase_pages_unicode520[7] erroneously mapped to plane06
instead of plane07.
parent b12cd88c
--source include/have_utf32.inc
--source include/have_ucs2.inc
--source include/have_sequence.inc
EXECUTE IMMEDIATE SFORMAT('
CREATE VIEW v_bmp AS
SELECT
seq AS codepoint,
LPAD(HEX(seq),4,''0'') AS codepoint_hex4,
CONVERT(CHAR(seq USING utf32) USING {}) COLLATE {} AS c
FROM
seq_0_to_65535', @@character_set_connection, @@collation_connection);
SELECT COLLATION(c) FROM v_bmp LIMIT 1;
SELECT
codepoint_hex4,
HEX(CAST(LOWER(c) AS CHAR CHARACTER SET ucs2)),
HEX(CAST(UPPER(c) AS CHAR CHARACTER SET ucs2))
FROM v_bmp
WHERE BINARY(c)<>BINARY(LOWER(c)) OR BINARY(c)<>BINARY(UPPER(c));
DROP VIEW v_bmp;
--source include/have_utf32.inc
--source include/have_sequence.inc
EXECUTE IMMEDIATE SFORMAT('
CREATE VIEW v_supplementary AS
SELECT
seq AS codepoint,
LPAD(HEX(seq),8,''0'') AS codepoint_hex8,
CONVERT(CHAR(seq USING utf32) USING {}) COLLATE {} AS c
FROM
seq_65536_to_1114111', @@character_set_connection, @@collation_connection);
SELECT COLLATION(c) FROM v_supplementary LIMIT 1;
SELECT
codepoint_hex8,
HEX(CAST(LOWER(c) AS CHAR CHARACTER SET utf32)),
HEX(CAST(UPPER(c) AS CHAR CHARACTER SET utf32))
FROM v_supplementary
WHERE BINARY(c)<>BINARY(LOWER(c)) OR BINARY(c)<>BINARY(UPPER(c));
DROP VIEW v_supplementary;
--source include/have_utf32.inc
--source include/have_sequence.inc
EXECUTE IMMEDIATE SFORMAT('
CREATE VIEW v_bmp AS
SELECT
seq AS codepoint,
LPAD(HEX(seq),4,''0'') AS codepoint_hex4,
CONVERT(CHAR(seq USING utf32) USING {}) COLLATE {} AS c
FROM
seq_0_to_65535', @@character_set_connection, @@collation_connection);
SELECT COLLATION(c) FROM v_bmp LIMIT 1;
SELECT HEX(codepoint) FROM v_bmp WHERE HEX(WEIGHT_STRING(c))='FFFD';
SELECT
SUM(codepoint_hex4=HEX(WEIGHT_STRING(c))) AS count_bmp_weight_is_codepoint,
SUM(codepoint_hex4<>HEX(WEIGHT_STRING(c))) AS count_bmp_weight_is_not_codepoint
FROM v_bmp;
SELECT codepoint_hex4,HEX(WEIGHT_STRING(c))
FROM v_bmp
WHERE codepoint_hex4<>HEX(WEIGHT_STRING(c));
DROP VIEW v_bmp;
--source include/have_utf32.inc
--source include/have_sequence.inc
EXECUTE IMMEDIATE SFORMAT('
CREATE VIEW v_supplementary AS
SELECT
seq AS codepoint,
CONVERT(CHAR(seq USING utf32) USING {}) COLLATE {} AS c
FROM
seq_65536_to_1114111', @@character_set_connection, @@collation_connection);
SELECT COLLATION(c) FROM v_supplementary LIMIT 1;
SELECT
SUM(HEX(WEIGHT_STRING(c))<>'FFFD'),
SUM(HEX(WEIGHT_STRING(c))='FFFD')
FROM v_supplementary;
DROP VIEW v_supplementary;
This diff is collapsed.
--echo #
--echo # Start of 10.7 tests
--echo #
--echo #
--echo # MDEV-30716 Wrong casefolding in xxx_unicode_520_ci for U+0700..U+07FF
--echo #
SET collation_connection=ucs2_general_ci;
--source include/ctype_unicode_casefold_bmp.inc
--echo #
--echo # End of 10.7 tests
--echo #
This diff is collapsed.
--echo #
--echo # Start of 10.7 tests
--echo #
--echo #
--echo # MDEV-30716 Wrong casefolding in xxx_unicode_520_ci for U+0700..U+07FF
--echo #
SET @@collation_connection=ucs2_general_ci;
--source include/ctype_unicode_ws_bmp.inc
--echo #
--echo # End of 10.7 tests
--echo #
This diff is collapsed.
--echo #
--echo # Start of 10.7 tests
--echo #
--echo #
--echo # MDEV-30716 Wrong casefolding in xxx_unicode_520_ci for U+0700..U+07FF
--echo #
SET @@collation_connection=ucs2_general_mysql500_ci;
--source include/ctype_unicode_casefold_bmp.inc
--echo #
--echo # End of 10.7 tests
--echo #
This diff is collapsed.
--echo #
--echo # Start of 10.7 tests
--echo #
--echo #
--echo # MDEV-30716 Wrong casefolding in xxx_unicode_520_ci for U+0700..U+07FF
--echo #
SET @@collation_connection=ucs2_general_mysql500_ci;
--source include/ctype_unicode_ws_bmp.inc
--echo #
--echo # End of 10.7 tests
--echo #
This diff is collapsed.
--echo #
--echo # Start of 10.7 tests
--echo #
--echo #
--echo # MDEV-30716 Wrong casefolding in xxx_unicode_520_ci for U+0700..U+07FF
--echo #
SET @@collation_connection=ucs2_turkish_ci;
--source include/ctype_unicode_casefold_bmp.inc
--echo #
--echo # End of 10.7 tests
--echo #
This diff is collapsed.
--echo #
--echo # Start of 10.7 tests
--echo #
--echo #
--echo # MDEV-30716 Wrong casefolding in xxx_unicode_520_ci for U+0700..U+07FF
--echo #
SET @@collation_connection=ucs2_unicode_520_ci;
--source include/ctype_unicode_casefold_bmp.inc
--echo #
--echo # End of 10.7 tests
--echo #
This diff is collapsed.
--echo #
--echo # Start of 10.7 tests
--echo #
--echo #
--echo # MDEV-30716 Wrong casefolding in xxx_unicode_520_ci for U+0700..U+07FF
--echo #
SET NAMES utf8mb3 COLLATE utf8mb3_general_ci;
--source include/ctype_unicode_casefold_bmp.inc
--echo #
--echo # End of 10.7 tests
--echo #
This diff is collapsed.
--echo #
--echo # Start of 10.7 tests
--echo #
--echo #
--echo # MDEV-30716 Wrong casefolding in xxx_unicode_520_ci for U+0700..U+07FF
--echo #
SET NAMES utf8mb3 COLLATE utf8mb3_general_ci;
--source include/ctype_unicode_ws_bmp.inc
--echo #
--echo # End of 10.7 tests
--echo #
--echo #
--echo # Start of 10.7 tests
--echo #
--echo #
--echo # MDEV-30716 Wrong casefolding in xxx_unicode_520_ci for U+0700..U+07FF
--echo #
SET NAMES utf8mb3 COLLATE utf8mb3_general_mysql500_ci;
--source include/ctype_unicode_casefold_bmp.inc
--echo #
--echo # End of 10.7 tests
--echo #
This diff is collapsed.
--echo #
--echo # Start of 10.7 tests
--echo #
--echo #
--echo # MDEV-30716 Wrong casefolding in xxx_unicode_520_ci for U+0700..U+07FF
--echo #
SET NAMES utf8mb3 COLLATE utf8mb3_general_mysql500_ci;
--source include/ctype_unicode_ws_bmp.inc
--echo #
--echo # End of 10.7 tests
--echo #
This diff is collapsed.
--echo #
--echo # Start of 10.7 tests
--echo #
--echo #
--echo # MDEV-30716 Wrong casefolding in xxx_unicode_520_ci for U+0700..U+07FF
--echo #
SET NAMES utf8mb3 COLLATE utf8mb3_turkish_ci;
--source include/ctype_unicode_casefold_bmp.inc
--echo #
--echo # End of 10.7 tests
--echo #
This diff is collapsed.
--echo #
--echo # Start of 10.7 tests
--echo #
--echo #
--echo # MDEV-30716 Wrong casefolding in xxx_unicode_520_ci for U+0700..U+07FF
--echo #
SET NAMES utf8mb3 COLLATE utf8mb3_unicode_520_ci;
--source include/ctype_unicode_casefold_bmp.inc
--echo #
--echo # End of 10.7 tests
--echo #
This diff is collapsed.
--echo #
--echo # Start of 10.7 tests
--echo #
--echo #
--echo # MDEV-30716 Wrong casefolding in xxx_unicode_520_ci for U+0700..U+07FF
--echo #
SET NAMES utf8mb4 COLLATE utf8mb4_general_ci;
--source include/ctype_unicode_casefold_bmp.inc
--source include/ctype_unicode_casefold_supplementary.inc
--echo #
--echo # End of 10.7 tests
--echo #
This diff is collapsed.
--echo #
--echo # Start of 10.7 tests
--echo #
--echo #
--echo # MDEV-30716 Wrong casefolding in xxx_unicode_520_ci for U+0700..U+07FF
--echo #
SET NAMES utf8mb4 COLLATE utf8mb4_general_ci;
--source include/ctype_unicode_ws_bmp.inc
--source include/ctype_unicode_ws_supplementary.inc
--echo #
--echo # End of 10.7 tests
--echo #
This diff is collapsed.
--echo #
--echo # Start of 10.7 tests
--echo #
--echo #
--echo # MDEV-30716 Wrong casefolding in xxx_unicode_520_ci for U+0700..U+07FF
--echo #
SET NAMES utf8mb4 COLLATE utf8mb4_turkish_ci;
--source include/ctype_unicode_casefold_bmp.inc
--source include/ctype_unicode_casefold_supplementary.inc
--echo #
--echo # End of 10.7 tests
--echo #
This diff is collapsed.
--echo #
--echo # Start of 10.7 tests
--echo #
--echo #
--echo # MDEV-30716 Wrong casefolding in xxx_unicode_520_ci for U+0700..U+07FF
--echo #
SET NAMES utf8mb4 COLLATE utf8mb4_unicode_520_ci;
--source include/ctype_unicode_casefold_bmp.inc
--source include/ctype_unicode_casefold_supplementary.inc
--echo #
--echo # End of 10.7 tests
--echo #
This diff is collapsed.
--echo #
--echo # Start of 10.7 tests
--echo #
--echo #
--echo # MDEV-30716 Wrong casefolding in xxx_unicode_520_ci for U+0700..U+07FF
--echo #
SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci;
--source include/ctype_unicode_casefold_bmp.inc
--source include/ctype_unicode_casefold_supplementary.inc
--echo #
--echo # End of 10.7 tests
--echo #
......@@ -4595,7 +4595,7 @@ static MY_UNICASE_CHARACTER u520p104[]={
MY_UNICASE_CHARACTER *my_unicase_pages_unicode520[4352]=
{
u520p00, u520p01, u520p02, u520p03, u520p04, u520p05, plane06, plane06,
u520p00, u520p01, u520p02, u520p03, u520p04, u520p05, plane06, plane07,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
u520p10, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, u520p1D, u520p1E, u520p1F,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment