summaryrefslogtreecommitdiff
path: root/mysql-test/include
diff options
context:
space:
mode:
authorMarko Mäkelä <marko.makela@mariadb.com>2023-02-28 13:14:08 +0200
committerMarko Mäkelä <marko.makela@mariadb.com>2023-02-28 13:14:08 +0200
commit7a834d6248f42bd2207152071d31e9ecfc5de422 (patch)
tree583f7edea179b674adcebf7e5e507d9c1c733597 /mysql-test/include
parent50c8e65b38b279496ca1f9a9f9029429d98e07e5 (diff)
parent95d51369c9b1d5b759be630003ab12e9615ea0cc (diff)
downloadmariadb-git-7a834d6248f42bd2207152071d31e9ecfc5de422.tar.gz
Merge 10.11 into 11.0
Diffstat (limited to 'mysql-test/include')
-rw-r--r--mysql-test/include/ctype_casefolding.inc8
-rw-r--r--mysql-test/include/ctype_unicode_casefold_bmp.inc23
-rw-r--r--mysql-test/include/ctype_unicode_casefold_supplementary.inc22
-rw-r--r--mysql-test/include/ctype_unicode_ws_bmp.inc26
-rw-r--r--mysql-test/include/ctype_unicode_ws_supplementary.inc19
5 files changed, 98 insertions, 0 deletions
diff --git a/mysql-test/include/ctype_casefolding.inc b/mysql-test/include/ctype_casefolding.inc
index 4ee402c95ad..74b2ab7650a 100644
--- a/mysql-test/include/ctype_casefolding.inc
+++ b/mysql-test/include/ctype_casefolding.inc
@@ -13,6 +13,14 @@ INSERT INTO case_folding (code) VALUES
(0x26B),
(0x271),
(0x27D);
+
+INSERT INTO case_folding (code) VALUES
+(0x0049) /* LATIN CAPITAL LETTER I */,
+(0x0069) /* LATIN SMALL LETTER I */,
+(0x0130) /* LATIN CAPITAL LETTER I WITH DOT ABOVE */,
+(0x0131) /* LATIN SMALL LETTER DOTLESS I */
+;
+
UPDATE case_folding SET c=CHAR(code USING ucs2);
SELECT HEX(code), HEX(LOWER(c)), HEX(UPPER(c)), c FROM case_folding;
DROP TABLE case_folding;
diff --git a/mysql-test/include/ctype_unicode_casefold_bmp.inc b/mysql-test/include/ctype_unicode_casefold_bmp.inc
new file mode 100644
index 00000000000..e5b16b9334e
--- /dev/null
+++ b/mysql-test/include/ctype_unicode_casefold_bmp.inc
@@ -0,0 +1,23 @@
+--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;
diff --git a/mysql-test/include/ctype_unicode_casefold_supplementary.inc b/mysql-test/include/ctype_unicode_casefold_supplementary.inc
new file mode 100644
index 00000000000..bb603118db6
--- /dev/null
+++ b/mysql-test/include/ctype_unicode_casefold_supplementary.inc
@@ -0,0 +1,22 @@
+--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;
diff --git a/mysql-test/include/ctype_unicode_ws_bmp.inc b/mysql-test/include/ctype_unicode_ws_bmp.inc
new file mode 100644
index 00000000000..31166b5d31a
--- /dev/null
+++ b/mysql-test/include/ctype_unicode_ws_bmp.inc
@@ -0,0 +1,26 @@
+--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;
diff --git a/mysql-test/include/ctype_unicode_ws_supplementary.inc b/mysql-test/include/ctype_unicode_ws_supplementary.inc
new file mode 100644
index 00000000000..82273e8fb6a
--- /dev/null
+++ b/mysql-test/include/ctype_unicode_ws_supplementary.inc
@@ -0,0 +1,19 @@
+--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;