diff options
author | Alexander Barkov <bar@mariadb.com> | 2020-05-20 11:53:09 +0400 |
---|---|---|
committer | Alexander Barkov <bar@mariadb.com> | 2020-05-20 11:53:09 +0400 |
commit | d4f97e2086848cedfdd35a6c1cf286f8dad26c5c (patch) | |
tree | 0395f96dd3a403f94285ccab1515913802211f7a /mysql-test/main/ctype_utf8.result | |
parent | 294ac1fbab306e97dad3588a00e3527f2056e7e4 (diff) | |
download | mariadb-git-d4f97e2086848cedfdd35a6c1cf286f8dad26c5c.tar.gz |
MDEV-22391 Assertion `0' failed in Item_type_holder::val_str on utf16 charset table query
Problem:
When handling a query like this:
VALUES ('') UNION SELECT _utf16 0x0020 COLLATE utf16_bin;
Type_handler_string_result::Item_hybrid_func_fix_attributes()
tried to apply character set conversion Item_type_holder,
which causes a crash on DBUG_ASSERT(0) inside Item_type_holder::val_str().
Fix:
Overriding Item_type_holder's methods to avoid this, as follows:
bool const_item() const { return false; }
bool is_expensive() { return true; }
Diffstat (limited to 'mysql-test/main/ctype_utf8.result')
-rw-r--r-- | mysql-test/main/ctype_utf8.result | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/mysql-test/main/ctype_utf8.result b/mysql-test/main/ctype_utf8.result index f6fa2697241..10996329f24 100644 --- a/mysql-test/main/ctype_utf8.result +++ b/mysql-test/main/ctype_utf8.result @@ -11321,5 +11321,17 @@ SELECT x AS 5天内最近一次登录时间 FROM t1; 1 DROP TABLE t1; # +# MDEV-22391 Assertion `0' failed in Item_type_holder::val_str on utf16 charset table query +# +SET NAMES utf8; +VALUES (_latin1 0xDF) UNION SELECT _utf8'a' COLLATE utf8_bin; +_latin1 0xDF +ß +a +VALUES (_latin1 0xDF) UNION VALUES(_utf8'a' COLLATE utf8_bin); +_latin1 0xDF +ß +a +# # End of 10.3 tests # |