diff options
Diffstat (limited to 'mysql-test/main/partition_range.test')
-rw-r--r-- | mysql-test/main/partition_range.test | 31 |
1 files changed, 23 insertions, 8 deletions
diff --git a/mysql-test/main/partition_range.test b/mysql-test/main/partition_range.test index 740cbcd7d7b..8e91c7a6bbf 100644 --- a/mysql-test/main/partition_range.test +++ b/mysql-test/main/partition_range.test @@ -942,10 +942,17 @@ drop table t1, t2; --echo # Bug#50939: Loose Index Scan unduly relies on engine to remember range --echo # endpoints --echo # + CREATE TABLE t1 ( a INT, b INT, KEY ( a, b ) +); + +CREATE TABLE t1_part ( + a INT, + b INT, + KEY ( a, b ) ) PARTITION BY HASH (a) PARTITIONS 1; CREATE TABLE t2 ( @@ -960,24 +967,32 @@ INSERT INTO t1 SELECT a + 5, b + 5 FROM t1; INSERT INTO t1 SELECT a + 10, b + 10 FROM t1; INSERT INTO t1 SELECT a + 20, b + 20 FROM t1; INSERT INTO t1 SELECT a + 40, b + 40 FROM t1; +INSERT INTO t1 values(10,0),(10,1),(10,2),(100,0),(100,1); +select count(*) from t1; +select count(*) from t1 where a=10; +select count(*) from t1 where a=100; +INSERT INTO t1_part SELECT * FROM t1; INSERT INTO t2 SELECT * FROM t1; -ANALYZE TABLE t1,t2; +ANALYZE TABLE t1_part,t2; --echo # plans should be identical -EXPLAIN SELECT a, MAX(b) FROM t1 WHERE a IN (10,100) GROUP BY a; +EXPLAIN SELECT a, MAX(b) FROM t1_part WHERE a IN (10,100) GROUP BY a; EXPLAIN SELECT a, MAX(b) FROM t2 WHERE a IN (10,100) GROUP BY a; FLUSH status; -SELECT a, MAX(b) FROM t1 WHERE a IN (10, 100) GROUP BY a; ---echo # Should be no more than 4 reads. -SHOW status LIKE 'handler_read_key'; +SELECT a, MAX(b) FROM t1_part WHERE a IN (10, 100) GROUP BY a; +SHOW status LIKE 'handler_read%'; FLUSH status; SELECT a, MAX(b) FROM t2 WHERE a IN (10, 100) GROUP BY a; ---echo # Should be no more than 4 reads. -SHOW status LIKE 'handler_read_key'; +SHOW status LIKE 'handler_read%'; + +insert into t2 select 100,seq from seq_1_to_100; +EXPLAIN SELECT a, MAX(b) FROM t2 WHERE a IN (10,100) GROUP BY a; + +DROP TABLE t1,t2; --echo # --echo # MDEV-18501 Partition pruning doesn't work for historical queries @@ -1006,7 +1021,7 @@ insert into t1 values select * from t1 partition (p0); select * from t1 partition (p1); -DROP TABLE t1, t2; +DROP TABLE t1; --echo # --echo # MDEV-21195 INSERT chooses wrong partition for RANGE partitioning by DECIMAL column |