diff options
author | Sergey Petrunya <psergey@askmonty.org> | 2014-03-07 13:00:20 +0100 |
---|---|---|
committer | Sergey Petrunya <psergey@askmonty.org> | 2014-03-07 13:00:20 +0100 |
commit | f20cab1a8397c3ec4baeadb33c29e466ac977b59 (patch) | |
tree | 998fe6c790e9a48afd3f9bda46948d84aad0d5f1 /mysql-test/r/range_mrr_icp.result | |
parent | 7af71b74a9579584bd32719a5d79352387a381b7 (diff) | |
download | mariadb-git-f20cab1a8397c3ec4baeadb33c29e466ac977b59.tar.gz |
BUG#13803810: TOO FEW ROWS RETURNED FOR RANGE ACCESS IN VARCHAR INDEX USING DATETIME VALUE
- Backport the testcase from mysql-5.6
Diffstat (limited to 'mysql-test/r/range_mrr_icp.result')
-rw-r--r-- | mysql-test/r/range_mrr_icp.result | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/mysql-test/r/range_mrr_icp.result b/mysql-test/r/range_mrr_icp.result index 924682827f9..dc6bed5fd98 100644 --- a/mysql-test/r/range_mrr_icp.result +++ b/mysql-test/r/range_mrr_icp.result @@ -2060,6 +2060,60 @@ pk 5 DROP TABLE t1; # +# BUG#13803810: TOO FEW ROWS RETURNED FOR RANGE ACCESS IN +# VARCHAR INDEX USING DATETIME VALUE + +CREATE TABLE t1 (a DATETIME); +INSERT INTO t1 VALUES ('2001-01-01 00:00:00'); +INSERT INTO t1 VALUES ('2001-01-01 11:22:33'); +CREATE TABLE t2 (b VARCHAR(64), KEY (b)); +INSERT INTO t2 VALUES ('2001-01-01'); +INSERT INTO t2 VALUES ('2001.01.01'); +INSERT INTO t2 VALUES ('2001#01#01'); +INSERT INTO t2 VALUES ('2001-01-01 00:00:00'); +INSERT INTO t2 VALUES ('2001-01-01 11:22:33'); + +# range/ref access cannot be used for this query + +EXPLAIN SELECT * FROM t2 WHERE b=CAST('2001-01-01' AS DATE); +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t2 index b b 67 NULL 5 Using where; Using index +SELECT * FROM t2 WHERE b=CAST('2001-01-01' AS DATE); +b +2001#01#01 +2001-01-01 +2001-01-01 00:00:00 +2001.01.01 + +# range/ref access cannot be used for any of the queries below. +# See BUG#13814468 about 'Range checked for each record' + +EXPLAIN SELECT * FROM t1, t2 WHERE a=b ORDER BY BINARY a, BINARY b; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using temporary; Using filesort +1 SIMPLE t2 ALL b NULL NULL NULL 5 Range checked for each record (index map: 0x1) +SELECT * FROM t1, t2 WHERE a=b ORDER BY BINARY a, BINARY b; +a b +2001-01-01 00:00:00 2001#01#01 +2001-01-01 00:00:00 2001-01-01 +2001-01-01 00:00:00 2001-01-01 00:00:00 +2001-01-01 00:00:00 2001.01.01 +2001-01-01 11:22:33 2001-01-01 11:22:33 + +EXPLAIN SELECT * FROM t1, t2 WHERE b=a ORDER BY BINARY a, BINARY b; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using temporary; Using filesort +1 SIMPLE t2 ALL b NULL NULL NULL 5 Range checked for each record (index map: 0x1) +SELECT * FROM t1, t2 WHERE b=a ORDER BY BINARY a, BINARY b; +a b +2001-01-01 00:00:00 2001#01#01 +2001-01-01 00:00:00 2001-01-01 +2001-01-01 00:00:00 2001-01-01 00:00:00 +2001-01-01 00:00:00 2001.01.01 +2001-01-01 11:22:33 2001-01-01 11:22:33 + +DROP TABLE t1,t2; +# # MDEV-5606: range optimizer: "x < y" is sargable, while "y > x" is not # create table t1(a int); |