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

Wrong result for SELECT..WHERE HEX(enum_column)='61' AND enum_column='a '

    Details

      Description

      DROP TABLE IF EXISTS t1;
      CREATE TABLE t1 (a ENUM('a','A') COLLATE latin1_bin);
      INSERT INTO t1 VALUES ('a'),('A');
      SELECT * FROM t1 WHERE a='a ';
      SELECT * FROM t1 WHERE HEX(a)='61';
      SELECT * FROM t1 WHERE HEX(a)='61' AND a='a ';
      

      The first and the second query correctly return one row.
      The third query erroneously returns empty set.
      Notice, trailing space in the constant 'a '.

      The same problem is repeatable with SET:

      DROP TABLE IF EXISTS t1;
      CREATE TABLE t1 (a SET('a','A') COLLATE latin1_bin);
      INSERT INTO t1 VALUES ('a'),('A');
      SELECT * FROM t1 WHERE a='a ';
      SELECT * FROM t1 WHERE HEX(a)='61';
      SELECT * FROM t1 WHERE HEX(a)='61' AND a='a ';
      

        Gliffy Diagrams

          Attachments

            Issue Links

              Activity

              There are no comments yet on this issue.

                People

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

                  Dates

                  • Created:
                    Updated:
                    Resolved: