Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-6666

Malformed result for CONCAT(utf8_column, binary_string)

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed (View Workflow)
    • 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.

        Attachments

          Activity

            People

            Assignee:
            bar Alexander Barkov
            Reporter:
            bar Alexander Barkov
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved: