diff options
Diffstat (limited to 'mysql-test/t/type_set.test')
-rw-r--r-- | mysql-test/t/type_set.test | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/mysql-test/t/type_set.test b/mysql-test/t/type_set.test index 8b9da6962d5..16e4f42301d 100644 --- a/mysql-test/t/type_set.test +++ b/mysql-test/t/type_set.test @@ -185,3 +185,35 @@ DROP TABLE t1; --echo # --echo # End of 10.0 tests --echo # + + +--echo # +--echo # Start of 10.1 tests +--echo # + +--echo # +--echo # MDEV-8729 Wrong result for SELECT..WHERE HEX(enum_column)='61' AND enum_column='a ' +--echo # +CREATE TABLE t1 (a SET('a','A') CHARACTER SET latin1 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 '; +--echo # Can't propagate the equality into HEX(a), because binary collations still ignore trailing spaces +EXPLAIN EXTENDED SELECT * FROM t1 WHERE HEX(a)='61' AND a='a '; +DROP TABLE t1; + +CREATE TABLE t1 (a SET('a','a ') CHARACTER SET BINARY); +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'; +SELECT * FROM t1 WHERE HEX(a)='61' AND a='a '; +--echo # Ok to propagate the equality into HEX(a), because "CHARACTER SET BINARY" does not ignore trailing spaces +EXPLAIN EXTENDED SELECT * FROM t1 WHERE HEX(a)='61' AND a='a'; +EXPLAIN EXTENDED SELECT * FROM t1 WHERE HEX(a)='61' AND a='a '; +DROP TABLE t1; + +--echo # +--echo # End of 10.1 tests +--echo # |