summaryrefslogtreecommitdiff
path: root/mysql-test/t/ctype_many.test
diff options
context:
space:
mode:
authorAlexander Barkov <bar@mysql.com>2010-02-24 13:15:34 +0400
committerAlexander Barkov <bar@mysql.com>2010-02-24 13:15:34 +0400
commit8994fad85db18b4ab31fc67e2f8e15f1203d0b1a (patch)
tree469ee723904a6610a4436b55056ed5e2c19d9972 /mysql-test/t/ctype_many.test
parentd2af6c43c0f7b62a6051d0c5f74c66f98dbefe7a (diff)
downloadmariadb-git-8994fad85db18b4ab31fc67e2f8e15f1203d0b1a.tar.gz
Backporting WL#1213
config/ac-macros/character_sets.m4: - Adding configure definitions for utf8mb4, utf16, utf32 include/config-win.h: - Enabling utf8mb4, utf16, utf32 in Windows build include/m_ctype.h: - Adding new flags - Adding new shared functions prototypes mysql-test/include/ctype_datetime.inc: - Adding test to check that datetime functions work with "real" multibyte character sets. mysql-test/include/ctype_like.inc: - Adding LIKE tests mysql-test/include/have_utf16.inc: New file mysql-test/include/have_utf32.inc: New file mysql-test/include/have_utf8mb4.inc: New file mysql-test/r/ctype_ldml.result: - Adding tests for utf8mb4, utf16, utf32 mysql-test/r/ctype_many.result: - Adding tests to check superset/subset relations between all Unicode character sets. mysql-test/r/ctype_utf16.result: New file mysql-test/r/ctype_utf16_uca.result: New file mysql-test/r/ctype_utf32.result: New file mysql-test/r/ctype_utf32_uca.result: New file mysql-test/r/ctype_utf8.result: - Adding tests for utf8mn3 alias mysql-test/r/ctype_utf8mb4.result: - Adding tests for utf8mb4 mysql-test/r/have_utf16.require: New file mysql-test/r/have_utf32.require: New file mysql-test/r/have_utf8mb4.require: New file mysql-test/std_data/Index.xml: - Adding tests for loadable utf8m4, utf16, utf32 collations mysql-test/suite/sys_vars/r/character_set_client_basic.result: - Adding tests for utf16, utf32. - Fixing new number of character sets mysql-test/suite/sys_vars/r/character_set_connection_basic.result: - Fixing new number of character sets mysql-test/suite/sys_vars/r/character_set_database_basic.result: - Fixing new number of character sets mysql-test/suite/sys_vars/r/character_set_filesystem_basic.result: - Fixing new number of character sets mysql-test/suite/sys_vars/r/character_set_results_basic.result: - Fixing new number of character sets mysql-test/suite/sys_vars/t/character_set_client_basic.test: - Adding tests for new character sets mysql-test/suite/sys_vars/t/character_set_connection_basic.test: - Adding dependency on utf8mb4, utf16, utf32 mysql-test/suite/sys_vars/t/character_set_database_basic.test: - Adding dependency on utf8mb4, utf16, utf32 mysql-test/suite/sys_vars/t/character_set_filesystem_basic.test: - Adding dependency on utf8mb4, utf16, utf32 mysql-test/suite/sys_vars/t/character_set_results_basic.test: - Adding dependency on utf8mb4, utf16, utf32 mysql-test/t/ctype_ldml.test: - Adding tests for dynamic utf8mb4, utf16, utf32 collations mysql-test/t/ctype_many.test: - Adding tests to check superset/subset relations between all Unicode character sets mysql-test/t/ctype_utf16.test: New file mysql-test/t/ctype_utf16_uca.test: New file mysql-test/t/ctype_utf32.test: New file mysql-test/t/ctype_utf32_uca.test: New file mysql-test/t/ctype_utf8.test: - Adding tests for utf8mb4 alias mysql-test/t/ctype_utf8mb4.test: New file mysys/charset-def.c: - Adding initialization of utf8mb4, utf16, utf32 built-int collations mysys/charset.c: - Adding initialization of utf8mb4, utf16, utf32 dynamic collations sql/field.cc: - Fixing "truncated" error with datetime functions: Force conversion in case of non-ascii character sets. sql/item.cc: - Adding superset/subset relation check for utf8mb4/utf8 sql/item_strfunc.cc: - Fixing a problem with CHAR(x USING utf32) sql/sql_string.cc: - Fixing problems with zero padding for UTF32 sql/sql_table.cc: - Fixing buffer size, to make utf32 comma fit. strings/ctype-mb.c: - Making handlers for multi-byte binary collations public strings/ctype-uca.c: - Adding definitions for utf8mb4, utf16, utf32 UCA collations strings/ctype-ucs2.c: - Adding functions which are shared between ucs2, utf16, utf32 - Ading utf16 implementation - Adding utf32 implementation strings/ctype-utf8.c: - Adding functions shared between utf8 and utf8mb4 - Adding implementation of utf8mb4
Diffstat (limited to 'mysql-test/t/ctype_many.test')
-rw-r--r--mysql-test/t/ctype_many.test73
1 files changed, 73 insertions, 0 deletions
diff --git a/mysql-test/t/ctype_many.test b/mysql-test/t/ctype_many.test
index 0903c3dd7fa..67726c53585 100644
--- a/mysql-test/t/ctype_many.test
+++ b/mysql-test/t/ctype_many.test
@@ -1,4 +1,7 @@
-- source include/have_ucs2.inc
+-- source include/have_utf8mb4.inc
+-- source include/have_utf16.inc
+-- source include/have_utf32.inc
--disable_warnings
DROP TABLE IF EXISTS t1;
@@ -211,3 +214,73 @@ SELECT min(comment),count(*) FROM t1 GROUP BY ucs2_f;
DROP TABLE t1;
# End of 4.1 tests
+
+
+--echo #
+--echo # WL#1213 Implement 4-byte UTF8, UTF16 and UTF32
+--echo # Testing that only utf8mb4 is superset for utf8
+--echo # No other Unicode character set pairs have superset/subset relations
+--echo #
+
+CREATE TABLE t1 (
+ utf8 CHAR CHARACTER SET utf8,
+ utf8mb4 CHAR CHARACTER SET utf8mb4,
+ ucs2 CHAR CHARACTER SET ucs2,
+ utf16 CHAR CHARACTER SET utf16,
+ utf32 CHAR CHARACTER SET utf32
+);
+INSERT INTO t1 VALUES ('','','','','');
+
+# utf8mb4 is superset only for utf8
+SELECT CHARSET(CONCAT(utf8, utf8mb4)) FROM t1;
+--error ER_CANT_AGGREGATE_2COLLATIONS
+SELECT CHARSET(CONCAT(utf8, ucs2)) FROM t1;
+--error ER_CANT_AGGREGATE_2COLLATIONS
+SELECT CHARSET(CONCAT(utf8, utf16)) FROM t1;
+--error ER_CANT_AGGREGATE_2COLLATIONS
+SELECT CHARSET(CONCAT(utf8, utf32)) FROM t1;
+
+
+# utf8mb4 is superset only for utf8
+SELECT CHARSET(CONCAT(utf8mb4, utf8)) FROM t1;
+--error ER_CANT_AGGREGATE_2COLLATIONS
+SELECT CHARSET(CONCAT(utf8mb4, ucs2)) FROM t1;
+--error ER_CANT_AGGREGATE_2COLLATIONS
+SELECT CHARSET(CONCAT(utf8mb4, utf16)) FROM t1;
+--error ER_CANT_AGGREGATE_2COLLATIONS
+SELECT CHARSET(CONCAT(utf8mb4, utf32)) FROM t1;
+
+
+# ucs2 is not a superset for the other Unicode character sets
+--error ER_CANT_AGGREGATE_2COLLATIONS
+SELECT CHARSET(CONCAT(ucs2, utf8)) FROM t1;
+--error ER_CANT_AGGREGATE_2COLLATIONS
+SELECT CHARSET(CONCAT(ucs2, utf8mb4)) FROM t1;
+--error ER_CANT_AGGREGATE_2COLLATIONS
+SELECT CHARSET(CONCAT(ucs2, utf16)) FROM t1;
+--error ER_CANT_AGGREGATE_2COLLATIONS
+SELECT CHARSET(CONCAT(ucs2, utf32)) FROM t1;
+
+
+# utf16 is not a superset for the other Unicode character sets
+--error ER_CANT_AGGREGATE_2COLLATIONS
+SELECT CHARSET(CONCAT(utf16, utf8)) FROM t1;
+--error ER_CANT_AGGREGATE_2COLLATIONS
+SELECT CHARSET(CONCAT(utf16, ucs2)) FROM t1;
+--error ER_CANT_AGGREGATE_2COLLATIONS
+SELECT CHARSET(CONCAT(utf16, utf8mb4)) FROM t1;
+--error ER_CANT_AGGREGATE_2COLLATIONS
+SELECT CHARSET(CONCAT(utf16, utf32)) FROM t1;
+
+
+# utf32 is not a superset for the other Unicode character sets
+--error ER_CANT_AGGREGATE_2COLLATIONS
+SELECT CHARSET(CONCAT(utf32, utf8)) FROM t1;
+--error ER_CANT_AGGREGATE_2COLLATIONS
+SELECT CHARSET(CONCAT(utf32, ucs2)) FROM t1;
+--error ER_CANT_AGGREGATE_2COLLATIONS
+SELECT CHARSET(CONCAT(utf32, utf8mb4)) FROM t1;
+--error ER_CANT_AGGREGATE_2COLLATIONS
+SELECT CHARSET(CONCAT(utf32, utf16)) FROM t1;
+
+DROP TABLE t1;