diff options
author | unknown <gluh@mysql.com/eagle.(none)> | 2007-10-11 16:07:10 +0500 |
---|---|---|
committer | unknown <gluh@mysql.com/eagle.(none)> | 2007-10-11 16:07:10 +0500 |
commit | f30eacb223f581ece4bce02b3c4dfac1310f9f72 (patch) | |
tree | 8789a2b0f9db5501bfb30bb5adfb6ccb9efeb7ef /mysql-test/r | |
parent | 6146c0c75d013b15ea2c6656ee0d774498734fd2 (diff) | |
download | mariadb-git-f30eacb223f581ece4bce02b3c4dfac1310f9f72.tar.gz |
Bug#30981 CHAR(0x41 USING ucs2) doesn't add leading zero
Bug#30982 CHAR(..USING..) can return a not-well-formed string
Bug#30986 Character set introducer followed by a HEX string can return bad result
check_well_formed_result moved to Item from Item_str_func
fixed Item_func_char::val_str for proper ucs symbols converting
added check for well formed strings for correct conversion of constants with underscore
charset
mysql-test/r/ctype_ucs.result:
test result
mysql-test/r/ctype_utf8.result:
test result
mysql-test/t/ctype_ucs.test:
test case
mysql-test/t/ctype_utf8.test:
test case
sql/item.cc:
check_well_formed_result() moved from Item_str_func
sql/item.h:
check_well_formed_result() moved from Item_str_func
sql/item_strfunc.cc:
check_well_formed_result moved to Item
fixed Item_func_char::val_str for proper ucs symbols converting
sql/item_strfunc.h:
check_well_formed_result moved to Item
sql/sql_yacc.yy:
added check for well formed string
Diffstat (limited to 'mysql-test/r')
-rw-r--r-- | mysql-test/r/ctype_ucs.result | 3 | ||||
-rw-r--r-- | mysql-test/r/ctype_utf8.result | 66 |
2 files changed, 67 insertions, 2 deletions
diff --git a/mysql-test/r/ctype_ucs.result b/mysql-test/r/ctype_ucs.result index 023267c227c..262055436b8 100644 --- a/mysql-test/r/ctype_ucs.result +++ b/mysql-test/r/ctype_ucs.result @@ -922,4 +922,7 @@ ERROR HY000: Illegal mix of collations (ascii_general_ci,IMPLICIT) and (ucs2_gen select * from t1 where a=if(b<10,_ucs2 0x0062,_ucs2 0x00C0); ERROR HY000: Illegal mix of collations (ascii_general_ci,IMPLICIT) and (ucs2_general_ci,COERCIBLE) for operation '=' drop table t1; +select hex(char(0x41 using ucs2)); +hex(char(0x41 using ucs2)) +0041 End of 5.0 tests diff --git a/mysql-test/r/ctype_utf8.result b/mysql-test/r/ctype_utf8.result index 710cac388a5..a86dfbc190d 100644 --- a/mysql-test/r/ctype_utf8.result +++ b/mysql-test/r/ctype_utf8.result @@ -1538,12 +1538,12 @@ char(53647 using utf8) я select char(0xff,0x8f using utf8); char(0xff,0x8f using utf8) - + Warnings: Warning 1300 Invalid utf8 character string: 'FF8F' select convert(char(0xff,0x8f) using utf8); convert(char(0xff,0x8f) using utf8) - + Warnings: Warning 1300 Invalid utf8 character string: 'FF8F' set sql_mode=traditional; @@ -1730,3 +1730,65 @@ i 1 н1234567890 DROP TABLE t1, t2; +set sql_mode=traditional; +select hex(char(0xFF using utf8)); +hex(char(0xFF using utf8)) +NULL +Warnings: +Error 1300 Invalid utf8 character string: 'FF' +select hex(convert(0xFF using utf8)); +hex(convert(0xFF using utf8)) +NULL +Warnings: +Error 1300 Invalid utf8 character string: 'FF' +select hex(_utf8 0x616263FF); +hex(_utf8 0x616263FF) +NULL +Warnings: +Error 1300 Invalid utf8 character string: 'FF' +select hex(_utf8 X'616263FF'); +hex(_utf8 X'616263FF') +NULL +Warnings: +Error 1300 Invalid utf8 character string: 'FF' +select hex(_utf8 B'001111111111'); +hex(_utf8 B'001111111111') +NULL +Warnings: +Error 1300 Invalid utf8 character string: 'FF' +select (_utf8 X'616263FF'); +(_utf8 X'616263FF') +NULL +Warnings: +Error 1300 Invalid utf8 character string: 'FF' +set sql_mode=default; +select hex(char(0xFF using utf8)); +hex(char(0xFF using utf8)) + +Warnings: +Warning 1300 Invalid utf8 character string: 'FF' +select hex(convert(0xFF using utf8)); +hex(convert(0xFF using utf8)) + +Warnings: +Warning 1300 Invalid utf8 character string: 'FF' +select hex(_utf8 0x616263FF); +hex(_utf8 0x616263FF) +616263 +Warnings: +Warning 1300 Invalid utf8 character string: 'FF' +select hex(_utf8 X'616263FF'); +hex(_utf8 X'616263FF') +616263 +Warnings: +Warning 1300 Invalid utf8 character string: 'FF' +select hex(_utf8 B'001111111111'); +hex(_utf8 B'001111111111') +03 +Warnings: +Warning 1300 Invalid utf8 character string: 'FF' +select (_utf8 X'616263FF'); +(_utf8 X'616263FF') +abc +Warnings: +Warning 1300 Invalid utf8 character string: 'FF' |