summaryrefslogtreecommitdiffstats
path: root/mysql-test/include/ctype_german.inc
diff options
context:
space:
mode:
Diffstat (limited to 'mysql-test/include/ctype_german.inc')
-rw-r--r--mysql-test/include/ctype_german.inc73
1 files changed, 73 insertions, 0 deletions
diff --git a/mysql-test/include/ctype_german.inc b/mysql-test/include/ctype_german.inc
new file mode 100644
index 00000000..3985216a
--- /dev/null
+++ b/mysql-test/include/ctype_german.inc
@@ -0,0 +1,73 @@
+--echo "BEGIN ctype_german.inc"
+#
+# Bug #27877 incorrect german order in utf8_general_ci
+#
+# Testing if "SHARP S" is equal to "S",
+# like in latin1_german1_ci, utf8_general_ci, ucs2_general_ci
+# Or if "SHART S" is equal to "SS",
+# like in latin1_german2_ci, utf8_unicode_ci, ucs2_unicode_ci
+#
+# Also testing A-uml, O-uml, U-uml
+#
+
+--disable_warnings
+drop table if exists t1;
+--enable_warnings
+
+#
+# Create a table with a varchar(x) column,
+# using current values of
+# @@character_set_connection and @@collation_connection.
+#
+
+create table t1 as select repeat(' ', 64) as s1;
+select collation(s1) from t1;
+delete from t1;
+
+#
+# Populate data
+#
+
+INSERT INTO t1 VALUES ('ud'),('uf');
+INSERT INTO t1 VALUES ('od'),('of');
+INSERT INTO t1 VALUES ('e');
+INSERT INTO t1 VALUES ('ad'),('af');
+
+insert into t1 values ('a'),('ae'),(_latin1 0xE4);
+insert into t1 values ('o'),('oe'),(_latin1 0xF6);
+insert into t1 values ('s'),('ss'),(_latin1 0xDF);
+insert into t1 values ('u'),('ue'),(_latin1 0xFC);
+
+# LIGATURE AE
+INSERT INTO t1 VALUES (_latin1 0xE6), (_latin1 0xC6);
+# LIGATURE OE
+INSERT INTO t1 VALUES (_latin1 0x9C), (_latin1 0x8C);
+
+#
+# Check order
+#
+#enable after fix MDEV-29290
+--disable_view_protocol
+select s1, hex(s1) from t1 order by s1, binary s1;
+select group_concat(s1 order by binary s1) from t1 group by s1;
+
+SELECT s1, hex(s1), hex(weight_string(s1)) FROM t1 ORDER BY s1, BINARY(s1);
+SELECT s1, hex(s1) FROM t1 WHERE s1='ae' ORDER BY s1, BINARY(s1);
+
+drop table t1;
+--enable_view_protocol
+
+#
+# Check filesort for 'S' and "U+00DF SHARP S",
+# for field and for item.
+#
+CREATE TABLE t1 AS SELECT REPEAT('a',1) AS a, 1 AS b LIMIT 0;
+SHOW CREATE TABLE t1;
+INSERT INTO t1 VALUES ('s',0),(_latin1 0xDF,1);
+SELECT * FROM t1 ORDER BY a, b;
+SELECT * FROM t1 ORDER BY a DESC, b;
+SELECT * FROM t1 ORDER BY CONCAT(a), b;
+SELECT * FROM t1 ORDER BY CONCAT(a) DESC, b;
+DROP TABLE t1;
+
+--echo "END ctype_german.inc"