Details
-
Type:
Bug
-
Status: Closed
-
Priority:
Major
-
Resolution: Fixed
-
Affects Version/s: 5.3.12, 5.5.38, 10.0.13
-
Fix Version/s: 10.0.14
-
Component/s: None
-
Labels:None
Description
This script:
drop table if exists t1;
create table t1 (a varchar(10) character set utf8);
insert into t1 values ('aaa');
select concat(a, 0xFF), charset(concat(a, 0xFF)) from t1;
returns a badly formed result:
+-----------------+--------------------------+ | concat(a, 0xFF) | charset(concat(a, 0xFF)) | +-----------------+--------------------------+ | aaa� | utf8 | +-----------------+--------------------------+
Notice, character set of the result is utf8, but the returned string
is not a valid utf8 string.
The correct behaviour would be to return an error, as 0xFF is a bad utf8 string.
A similar problem happens with UNION:
drop table if exists t1;
create table t1 (a varchar(10) character set utf8);
insert into t1 values ('aaa');
select a from t1 union select 0xFF;
show warnings;
returns:
+------+ | a | +------+ | aaa | | | +------+ 2 rows in set, 1 warning (0.00 sec) +---------+------+--------------------------------------------------------+ | Level | Code | Message | +---------+------+--------------------------------------------------------+ | Warning | 1366 | Incorrect string value: '\xFF' for column 'a' at row 2 | +---------+------+--------------------------------------------------------+ 1 row in set (0.00 sec)
The correct behaviour would be to return an error.
Gliffy Diagrams
Attachments
Activity
- All
- Comments
- Work Log
- History
- Activity
- Transitions