diff options
author | Alexander Barkov <bar@mysql.com> | 2010-02-24 13:15:34 +0400 |
---|---|---|
committer | Alexander Barkov <bar@mysql.com> | 2010-02-24 13:15:34 +0400 |
commit | 8994fad85db18b4ab31fc67e2f8e15f1203d0b1a (patch) | |
tree | 469ee723904a6610a4436b55056ed5e2c19d9972 /mysql-test/t/ctype_many.test | |
parent | d2af6c43c0f7b62a6051d0c5f74c66f98dbefe7a (diff) | |
download | mariadb-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.test | 73 |
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; |