summaryrefslogtreecommitdiff
path: root/mysql-test/r/range_mrr_icp.result
diff options
context:
space:
mode:
authorSergey Petrunya <psergey@askmonty.org>2014-03-07 13:00:20 +0100
committerSergey Petrunya <psergey@askmonty.org>2014-03-07 13:00:20 +0100
commitf20cab1a8397c3ec4baeadb33c29e466ac977b59 (patch)
tree998fe6c790e9a48afd3f9bda46948d84aad0d5f1 /mysql-test/r/range_mrr_icp.result
parent7af71b74a9579584bd32719a5d79352387a381b7 (diff)
downloadmariadb-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.result54
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);