1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-30 16:24:05 +03:00

Manual merge from mysql-trunk-merge.

Conflicts:
  - sql/sql_partition.cc
This commit is contained in:
Alexander Nozdrin
2010-01-27 22:55:51 +03:00
7 changed files with 795 additions and 179 deletions

View File

@ -8,6 +8,166 @@
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
--enable_warnings
--echo #
--echo # Bug#49742: Partition Pruning not working correctly for RANGE
--echo #
CREATE TABLE t1 (a INT PRIMARY KEY)
PARTITION BY RANGE (a) (
PARTITION p0 VALUES LESS THAN (1),
PARTITION p1 VALUES LESS THAN (2),
PARTITION p2 VALUES LESS THAN (3),
PARTITION p3 VALUES LESS THAN (4),
PARTITION p4 VALUES LESS THAN (5),
PARTITION p5 VALUES LESS THAN (6),
PARTITION max VALUES LESS THAN MAXVALUE);
INSERT INTO t1 VALUES (-1),(0),(1),(2),(3),(4),(5),(6),(7),(8);
SELECT * FROM t1 WHERE a < 1;
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a < 1;
SELECT * FROM t1 WHERE a < 2;
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a < 2;
SELECT * FROM t1 WHERE a < 3;
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a < 3;
SELECT * FROM t1 WHERE a < 4;
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a < 4;
SELECT * FROM t1 WHERE a < 5;
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a < 5;
SELECT * FROM t1 WHERE a < 6;
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a < 6;
SELECT * FROM t1 WHERE a < 7;
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a < 7;
SELECT * FROM t1 WHERE a <= 1;
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a <= 1;
SELECT * FROM t1 WHERE a <= 2;
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a <= 2;
SELECT * FROM t1 WHERE a <= 3;
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a <= 3;
SELECT * FROM t1 WHERE a <= 4;
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a <= 4;
SELECT * FROM t1 WHERE a <= 5;
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a <= 5;
SELECT * FROM t1 WHERE a <= 6;
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a <= 6;
SELECT * FROM t1 WHERE a <= 7;
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a <= 7;
SELECT * FROM t1 WHERE a = 1;
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a = 1;
SELECT * FROM t1 WHERE a = 2;
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a = 2;
SELECT * FROM t1 WHERE a = 3;
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a = 3;
SELECT * FROM t1 WHERE a = 4;
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a = 4;
SELECT * FROM t1 WHERE a = 5;
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a = 5;
SELECT * FROM t1 WHERE a = 6;
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a = 6;
SELECT * FROM t1 WHERE a = 7;
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a = 7;
SELECT * FROM t1 WHERE a >= 1;
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a >= 1;
SELECT * FROM t1 WHERE a >= 2;
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a >= 2;
SELECT * FROM t1 WHERE a >= 3;
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a >= 3;
SELECT * FROM t1 WHERE a >= 4;
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a >= 4;
SELECT * FROM t1 WHERE a >= 5;
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a >= 5;
SELECT * FROM t1 WHERE a >= 6;
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a >= 6;
SELECT * FROM t1 WHERE a >= 7;
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a >= 7;
SELECT * FROM t1 WHERE a > 1;
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a > 1;
SELECT * FROM t1 WHERE a > 2;
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a > 2;
SELECT * FROM t1 WHERE a > 3;
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a > 3;
SELECT * FROM t1 WHERE a > 4;
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a > 4;
SELECT * FROM t1 WHERE a > 5;
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a > 5;
SELECT * FROM t1 WHERE a > 6;
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a > 6;
SELECT * FROM t1 WHERE a > 7;
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a > 7;
DROP TABLE t1;
CREATE TABLE t1 (a INT PRIMARY KEY)
PARTITION BY RANGE (a) (
PARTITION p0 VALUES LESS THAN (1),
PARTITION p1 VALUES LESS THAN (2),
PARTITION p2 VALUES LESS THAN (3),
PARTITION p3 VALUES LESS THAN (4),
PARTITION p4 VALUES LESS THAN (5),
PARTITION max VALUES LESS THAN MAXVALUE);
INSERT INTO t1 VALUES (-1),(0),(1),(2),(3),(4),(5),(6),(7);
SELECT * FROM t1 WHERE a < 1;
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a < 1;
SELECT * FROM t1 WHERE a < 2;
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a < 2;
SELECT * FROM t1 WHERE a < 3;
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a < 3;
SELECT * FROM t1 WHERE a < 4;
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a < 4;
SELECT * FROM t1 WHERE a < 5;
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a < 5;
SELECT * FROM t1 WHERE a < 6;
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a < 6;
SELECT * FROM t1 WHERE a <= 1;
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a <= 1;
SELECT * FROM t1 WHERE a <= 2;
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a <= 2;
SELECT * FROM t1 WHERE a <= 3;
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a <= 3;
SELECT * FROM t1 WHERE a <= 4;
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a <= 4;
SELECT * FROM t1 WHERE a <= 5;
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a <= 5;
SELECT * FROM t1 WHERE a <= 6;
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a <= 6;
SELECT * FROM t1 WHERE a = 1;
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a = 1;
SELECT * FROM t1 WHERE a = 2;
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a = 2;
SELECT * FROM t1 WHERE a = 3;
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a = 3;
SELECT * FROM t1 WHERE a = 4;
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a = 4;
SELECT * FROM t1 WHERE a = 5;
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a = 5;
SELECT * FROM t1 WHERE a = 6;
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a = 6;
SELECT * FROM t1 WHERE a >= 1;
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a >= 1;
SELECT * FROM t1 WHERE a >= 2;
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a >= 2;
SELECT * FROM t1 WHERE a >= 3;
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a >= 3;
SELECT * FROM t1 WHERE a >= 4;
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a >= 4;
SELECT * FROM t1 WHERE a >= 5;
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a >= 5;
SELECT * FROM t1 WHERE a >= 6;
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a >= 6;
SELECT * FROM t1 WHERE a > 1;
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a > 1;
SELECT * FROM t1 WHERE a > 2;
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a > 2;
SELECT * FROM t1 WHERE a > 3;
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a > 3;
SELECT * FROM t1 WHERE a > 4;
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a > 4;
SELECT * FROM t1 WHERE a > 5;
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a > 5;
SELECT * FROM t1 WHERE a > 6;
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a > 6;
DROP TABLE t1;
#
# Bug#20577: Partitions: use of to_days() function leads to selection failures
#