mirror of
https://github.com/MariaDB/server.git
synced 2025-07-27 18:02:13 +03:00
MDEV-18898 SELECT using wrong index when using operator IN with mixed types
These patches: # commit74891ed257
# # MDEV-11514, MDEV-11497, MDEV-11554, MDEV-11555 - IN and CASE type aggregation problems # commit53499cd1ea
# # MDEV-31303 Key not used when IN clause has both signed and usigned values earlier fixed MDEV-18898. Adding only an MTR case. modified: mysql-test/main/func_in.result modified: mysql-test/main/func_in.test
This commit is contained in:
@ -777,6 +777,45 @@ EXPLAIN SELECT id FROM t1 WHERE id IN (9223372036854775807, 9223372036854775808)
|
||||
DROP TABLE t1;
|
||||
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-18898 SELECT using wrong index when using operator IN with mixed types
|
||||
--echo #
|
||||
|
||||
CREATE TEMPORARY TABLE t1 (
|
||||
id int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||
name varchar(100) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `name` (`name`)
|
||||
);
|
||||
DELIMITER $$;
|
||||
FOR i IN 1..255
|
||||
DO
|
||||
INSERT INTO t1 VALUES (i, MD5(i));
|
||||
END FOR
|
||||
$$
|
||||
DELIMITER ;$$
|
||||
--echo #
|
||||
--echo # Constants alone
|
||||
--echo #
|
||||
ANALYZE SELECT id, name FROM t1 WHERE id = 1;
|
||||
ANALYZE SELECT id, name FROM t1 WHERE id = '2';
|
||||
--echo #
|
||||
--echo # Two constants using IN
|
||||
--echo #
|
||||
ANALYZE SELECT id, name FROM t1 WHERE id IN (1, 2);
|
||||
ANALYZE SELECT id, name FROM t1 WHERE id IN ('1', 2) /* Used a wrong index */;
|
||||
ANALYZE SELECT id, name FROM t1 WHERE id IN (1, '2') /* Used a wrong index */;
|
||||
ANALYZE SELECT id, name FROM t1 WHERE id IN ('1', '2');
|
||||
--echo #
|
||||
--echo # Two constants using OR
|
||||
--echo #
|
||||
ANALYZE SELECT id, name FROM t1 WHERE id = 1 OR id = 2;
|
||||
ANALYZE SELECT id, name FROM t1 WHERE id = '1' OR id = '2';
|
||||
ANALYZE SELECT id, name FROM t1 WHERE id = 1 OR id = '2';
|
||||
ANALYZE SELECT id, name FROM t1 WHERE id = '1' OR id = 2;
|
||||
DROP TABLE t1;
|
||||
|
||||
|
||||
--echo #
|
||||
--echo # End of 10.5 tests
|
||||
--echo #
|
||||
|
Reference in New Issue
Block a user