Skip to content

Commit

Permalink
MDEV-8680 Wrong result for SELECT..WHERE a IN ('a' COLLATE latin1_bin…
Browse files Browse the repository at this point in the history
…,'b') AND a='a'

The fix for MDEV-8688 fixed MDEV-8680 as well. Just adding a test case.
  • Loading branch information
Alexander Barkov committed Aug 29, 2015
1 parent f071a12 commit 787adc6
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 0 deletions.
18 changes: 18 additions & 0 deletions mysql-test/r/ctype_latin1.result
Original file line number Diff line number Diff line change
Expand Up @@ -8001,5 +8001,23 @@ Warnings:
Note 1003 select `test`.`t1`.`a` AS `a` from `test`.`t1` where (`test`.`t1`.`a` = '10')
DROP TABLE t1;
#
# MDEV-8680 Wrong result for SELECT..WHERE a IN ('a' COLLATE latin1_bin,'b') AND a='a'
#
SET NAMES latin1;
CREATE TABLE t1 (a VARCHAR(10));
INSERT INTO t1 VALUES ('a'),('A');
SELECT * FROM t1 WHERE a IN ('a' COLLATE latin1_bin,'b');
a
a
SELECT * FROM t1 WHERE a IN ('a' COLLATE latin1_bin,'b') AND a='a';
a
a
EXPLAIN EXTENDED SELECT * FROM t1 WHERE a IN ('a' COLLATE latin1_bin,'b') AND a='a';
id select_type table type possible_keys key key_len ref rows filtered Extra
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 100.00 Using where
Warnings:
Note 1003 select `test`.`t1`.`a` AS `a` from `test`.`t1` where ((`test`.`t1`.`a` = 'a') and (`test`.`t1`.`a` in (<cache>(('a' collate latin1_bin)),'b')))
DROP TABLE t1;
#
# End of 10.1 tests
#
11 changes: 11 additions & 0 deletions mysql-test/t/ctype_latin1.test
Original file line number Diff line number Diff line change
Expand Up @@ -276,6 +276,17 @@ EXPLAIN EXTENDED SELECT * FROM t1 WHERE a='10' AND IF(a='10',1,0)=1;
EXPLAIN EXTENDED SELECT * FROM t1 WHERE a='10' AND CASE WHEN a='10' THEN 1 ELSE 0 END;
DROP TABLE t1;

--echo #
--echo # MDEV-8680 Wrong result for SELECT..WHERE a IN ('a' COLLATE latin1_bin,'b') AND a='a'
--echo #
SET NAMES latin1;
CREATE TABLE t1 (a VARCHAR(10));
INSERT INTO t1 VALUES ('a'),('A');
SELECT * FROM t1 WHERE a IN ('a' COLLATE latin1_bin,'b');
SELECT * FROM t1 WHERE a IN ('a' COLLATE latin1_bin,'b') AND a='a';
EXPLAIN EXTENDED SELECT * FROM t1 WHERE a IN ('a' COLLATE latin1_bin,'b') AND a='a';
DROP TABLE t1;

--echo #
--echo # End of 10.1 tests
--echo #

0 comments on commit 787adc6

Please sign in to comment.