|
|
|
@ -1,4 +1,625 @@
|
|
|
|
|
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
|
|
|
|
# Test with DATETIME column NOT NULL
|
|
|
|
|
CREATE TABLE t1 (
|
|
|
|
|
a int(10) unsigned NOT NULL,
|
|
|
|
|
b DATETIME NOT NULL,
|
|
|
|
|
PRIMARY KEY (a, b)
|
|
|
|
|
) PARTITION BY RANGE (TO_DAYS(b))
|
|
|
|
|
(PARTITION p20090401 VALUES LESS THAN (TO_DAYS('2009-04-02')),
|
|
|
|
|
PARTITION p20090402 VALUES LESS THAN (TO_DAYS('2009-04-03')),
|
|
|
|
|
PARTITION p20090403 VALUES LESS THAN (TO_DAYS('2009-04-04')),
|
|
|
|
|
PARTITION p20090404 VALUES LESS THAN (TO_DAYS('2009-04-05')),
|
|
|
|
|
PARTITION p20090405 VALUES LESS THAN MAXVALUE);
|
|
|
|
|
INSERT INTO t1 VALUES (1, '2009-01-01'), (1, '2009-04-01'), (2, '2009-04-01'),
|
|
|
|
|
(1, '2009-04-02'), (2, '2009-04-02'), (1, '2009-04-02 23:59:59'),
|
|
|
|
|
(1, '2009-04-03'), (2, '2009-04-03'), (1, '2009-04-04'), (2, '2009-04-04'),
|
|
|
|
|
(1, '2009-04-05'), (1, '2009-04-06'), (1, '2009-04-07');
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b < CAST('2009-04-03' AS DATETIME);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090401,p20090402 index NULL PRIMARY 12 NULL 6 Using where; Using index
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b <= CAST('2009-04-03' AS DATETIME);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090401,p20090402,p20090403 index NULL PRIMARY 12 NULL 8 Using where; Using index
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b = CAST('2009-04-03' AS DATETIME);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090403 index NULL PRIMARY 12 NULL 8 Using where; Using index
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b >= CAST('2009-04-03' AS DATETIME);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090403,p20090404,p20090405 index NULL PRIMARY 12 NULL 13 Using where; Using index
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b > CAST('2009-04-03' AS DATETIME);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090403,p20090404,p20090405 index NULL PRIMARY 12 NULL 13 Using where; Using index
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1
|
|
|
|
|
WHERE b < CAST('2009-04-02 23:59:59' AS DATETIME);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090401,p20090402 index NULL PRIMARY 12 NULL 13 Using where; Using index
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1
|
|
|
|
|
WHERE b <= CAST('2009-04-02 23:59:59' AS DATETIME);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090401,p20090402 index NULL PRIMARY 12 NULL 13 Using where; Using index
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1
|
|
|
|
|
WHERE b = CAST('2009-04-02 23:59:59' AS DATETIME);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090402 index NULL PRIMARY 12 NULL 13 Using where; Using index
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1
|
|
|
|
|
WHERE b >= CAST('2009-04-02 23:59:59' AS DATETIME);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090402,p20090403,p20090404,p20090405 index NULL PRIMARY 12 NULL 13 Using where; Using index
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1
|
|
|
|
|
WHERE b > CAST('2009-04-02 23:59:59' AS DATETIME);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090403,p20090404,p20090405 index NULL PRIMARY 12 NULL 13 Using where; Using index
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b < CAST('2009-04-03' AS DATE);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090401,p20090402 index NULL PRIMARY 12 NULL 13 Using where; Using index
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b <= CAST('2009-04-03' AS DATE);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090401,p20090402,p20090403 index NULL PRIMARY 12 NULL 13 Using where; Using index
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b = CAST('2009-04-03' AS DATE);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090403 index NULL PRIMARY 12 NULL 13 Using where; Using index
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b >= CAST('2009-04-03' AS DATE);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090403,p20090404,p20090405 index NULL PRIMARY 12 NULL 13 Using where; Using index
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b > CAST('2009-04-03' AS DATE);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090403,p20090404,p20090405 index NULL PRIMARY 12 NULL 13 Using where; Using index
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b < '2009-04-03 00:00:00';
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090401,p20090402 index NULL PRIMARY 12 NULL 13 Using where; Using index
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b <= '2009-04-03 00:00:00';
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090401,p20090402,p20090403 index NULL PRIMARY 12 NULL 13 Using where; Using index
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b = '2009-04-03 00:00:00';
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090403 index NULL PRIMARY 12 NULL 13 Using where; Using index
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b >= '2009-04-03 00:00:00';
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090403,p20090404,p20090405 index NULL PRIMARY 12 NULL 13 Using where; Using index
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b > '2009-04-03 00:00:00';
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090403,p20090404,p20090405 index NULL PRIMARY 12 NULL 13 Using where; Using index
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b < '2009-04-02 23:59:59';
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090401,p20090402 index NULL PRIMARY 12 NULL 13 Using where; Using index
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b <= '2009-04-02 23:59:59';
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090401,p20090402 index NULL PRIMARY 12 NULL 13 Using where; Using index
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b = '2009-04-02 23:59:59';
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090402 index NULL PRIMARY 12 NULL 13 Using where; Using index
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b >= '2009-04-02 23:59:59';
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090402,p20090403,p20090404,p20090405 index NULL PRIMARY 12 NULL 13 Using where; Using index
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b > '2009-04-02 23:59:59';
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090403,p20090404,p20090405 index NULL PRIMARY 12 NULL 13 Using where; Using index
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b < '2009-04-03';
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090401,p20090402 index NULL PRIMARY 12 NULL 13 Using where; Using index
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b <= '2009-04-03';
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090401,p20090402,p20090403 index NULL PRIMARY 12 NULL 13 Using where; Using index
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b = '2009-04-03';
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090403 index NULL PRIMARY 12 NULL 13 Using where; Using index
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b >= '2009-04-03';
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090403,p20090404,p20090405 index NULL PRIMARY 12 NULL 13 Using where; Using index
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b > '2009-04-03';
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090403,p20090404,p20090405 index NULL PRIMARY 12 NULL 13 Using where; Using index
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1
|
|
|
|
|
WHERE b < CAST('2009-04-03 00:00:01' AS DATETIME);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090401,p20090402,p20090403 index NULL PRIMARY 12 NULL 13 Using where; Using index
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1
|
|
|
|
|
WHERE b <= CAST('2009-04-03 00:00:01' AS DATETIME);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090401,p20090402,p20090403 index NULL PRIMARY 12 NULL 13 Using where; Using index
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1
|
|
|
|
|
WHERE b = CAST('2009-04-03 00:00:01' AS DATETIME);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090403 index NULL PRIMARY 12 NULL 13 Using where; Using index
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1
|
|
|
|
|
WHERE b >= CAST('2009-04-03 00:00:01' AS DATETIME);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090403,p20090404,p20090405 index NULL PRIMARY 12 NULL 13 Using where; Using index
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1
|
|
|
|
|
WHERE b > CAST('2009-04-03 00:00:01' AS DATETIME);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090403,p20090404,p20090405 index NULL PRIMARY 12 NULL 13 Using where; Using index
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1
|
|
|
|
|
WHERE b < CAST('2009-04-02 23:59:58' AS DATETIME);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090401,p20090402 index NULL PRIMARY 12 NULL 13 Using where; Using index
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1
|
|
|
|
|
WHERE b <= CAST('2009-04-02 23:59:58' AS DATETIME);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090401,p20090402 index NULL PRIMARY 12 NULL 13 Using where; Using index
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1
|
|
|
|
|
WHERE b = CAST('2009-04-02 23:59:58' AS DATETIME);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090402 index NULL PRIMARY 12 NULL 13 Using where; Using index
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1
|
|
|
|
|
WHERE b >= CAST('2009-04-02 23:59:58' AS DATETIME);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090402,p20090403,p20090404,p20090405 index NULL PRIMARY 12 NULL 13 Using where; Using index
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1
|
|
|
|
|
WHERE b > CAST('2009-04-02 23:59:58' AS DATETIME);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090402,p20090403,p20090404,p20090405 index NULL PRIMARY 12 NULL 13 Using where; Using index
|
|
|
|
|
DROP TABLE t1;
|
|
|
|
|
# Test with DATE column NOT NULL
|
|
|
|
|
CREATE TABLE t1 (
|
|
|
|
|
a int(10) unsigned NOT NULL,
|
|
|
|
|
b DATE NOT NULL,
|
|
|
|
|
PRIMARY KEY (a, b)
|
|
|
|
|
) PARTITION BY RANGE (TO_DAYS(b))
|
|
|
|
|
(PARTITION p20090401 VALUES LESS THAN (TO_DAYS('2009-04-02')),
|
|
|
|
|
PARTITION p20090402 VALUES LESS THAN (TO_DAYS('2009-04-03')),
|
|
|
|
|
PARTITION p20090403 VALUES LESS THAN (TO_DAYS('2009-04-04')),
|
|
|
|
|
PARTITION p20090404 VALUES LESS THAN (TO_DAYS('2009-04-05')),
|
|
|
|
|
PARTITION p20090405 VALUES LESS THAN MAXVALUE);
|
|
|
|
|
INSERT INTO t1 VALUES (1, '2009-01-01'), (1, '2009-04-01'), (2, '2009-04-01'),
|
|
|
|
|
(1, '2009-04-02'), (2, '2009-04-02'), (1, '2009-04-03'), (2, '2009-04-03'),
|
|
|
|
|
(1, '2009-04-04'), (2, '2009-04-04'), (1, '2009-04-05'), (1, '2009-04-06'),
|
|
|
|
|
(1, '2009-04-07');
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b < CAST('2009-04-03' AS DATETIME);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090401,p20090402 index NULL PRIMARY 7 NULL 5 Using where; Using index
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b <= CAST('2009-04-03' AS DATETIME);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090401,p20090402,p20090403 index NULL PRIMARY 7 NULL 7 Using where; Using index
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b = CAST('2009-04-03' AS DATETIME);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090403 index NULL PRIMARY 7 NULL 7 Using where; Using index
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b >= CAST('2009-04-03' AS DATETIME);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090403,p20090404,p20090405 index NULL PRIMARY 7 NULL 12 Using where; Using index
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b > CAST('2009-04-03' AS DATETIME);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090404,p20090405 index NULL PRIMARY 7 NULL 12 Using where; Using index
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1
|
|
|
|
|
WHERE b < CAST('2009-04-02 23:59:59' AS DATETIME);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090401,p20090402 index NULL PRIMARY 7 NULL 12 Using where; Using index
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1
|
|
|
|
|
WHERE b <= CAST('2009-04-02 23:59:59' AS DATETIME);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090401,p20090402 index NULL PRIMARY 7 NULL 12 Using where; Using index
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1
|
|
|
|
|
WHERE b = CAST('2009-04-02 23:59:59' AS DATETIME);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1
|
|
|
|
|
WHERE b >= CAST('2009-04-02 23:59:59' AS DATETIME);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090403,p20090404,p20090405 index NULL PRIMARY 7 NULL 12 Using where; Using index
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1
|
|
|
|
|
WHERE b > CAST('2009-04-02 23:59:59' AS DATETIME);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090403,p20090404,p20090405 index NULL PRIMARY 7 NULL 12 Using where; Using index
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b < CAST('2009-04-03' AS DATE);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090401,p20090402 index NULL PRIMARY 7 NULL 12 Using where; Using index
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b <= CAST('2009-04-03' AS DATE);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090401,p20090402,p20090403 index NULL PRIMARY 7 NULL 12 Using where; Using index
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b = CAST('2009-04-03' AS DATE);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090403 index NULL PRIMARY 7 NULL 12 Using where; Using index
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b >= CAST('2009-04-03' AS DATE);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090403,p20090404,p20090405 index NULL PRIMARY 7 NULL 12 Using where; Using index
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b > CAST('2009-04-03' AS DATE);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090404,p20090405 index NULL PRIMARY 7 NULL 12 Using where; Using index
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b < '2009-04-03 00:00:00';
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090401,p20090402 index NULL PRIMARY 7 NULL 12 Using where; Using index
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b <= '2009-04-03 00:00:00';
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090401,p20090402,p20090403 index NULL PRIMARY 7 NULL 12 Using where; Using index
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b = '2009-04-03 00:00:00';
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090403 index NULL PRIMARY 7 NULL 12 Using where; Using index
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b >= '2009-04-03 00:00:00';
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090403,p20090404,p20090405 index NULL PRIMARY 7 NULL 12 Using where; Using index
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b > '2009-04-03 00:00:00';
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090404,p20090405 index NULL PRIMARY 7 NULL 12 Using where; Using index
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b < '2009-04-02 23:59:59';
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090401,p20090402 index NULL PRIMARY 7 NULL 12 Using where; Using index
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b <= '2009-04-02 23:59:59';
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090401,p20090402 index NULL PRIMARY 7 NULL 12 Using where; Using index
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b = '2009-04-02 23:59:59';
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b >= '2009-04-02 23:59:59';
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090403,p20090404,p20090405 index NULL PRIMARY 7 NULL 12 Using where; Using index
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b > '2009-04-02 23:59:59';
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090403,p20090404,p20090405 index NULL PRIMARY 7 NULL 12 Using where; Using index
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b < '2009-04-03';
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090401,p20090402 index NULL PRIMARY 7 NULL 12 Using where; Using index
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b <= '2009-04-03';
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090401,p20090402,p20090403 index NULL PRIMARY 7 NULL 12 Using where; Using index
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b = '2009-04-03';
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090403 index NULL PRIMARY 7 NULL 12 Using where; Using index
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b >= '2009-04-03';
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090403,p20090404,p20090405 index NULL PRIMARY 7 NULL 12 Using where; Using index
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b > '2009-04-03';
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090404,p20090405 index NULL PRIMARY 7 NULL 12 Using where; Using index
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1
|
|
|
|
|
WHERE b < CAST('2009-04-03 00:00:01' AS DATETIME);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090401,p20090402,p20090403 index NULL PRIMARY 7 NULL 12 Using where; Using index
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1
|
|
|
|
|
WHERE b <= CAST('2009-04-03 00:00:01' AS DATETIME);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090401,p20090402,p20090403 index NULL PRIMARY 7 NULL 12 Using where; Using index
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1
|
|
|
|
|
WHERE b = CAST('2009-04-03 00:00:01' AS DATETIME);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1
|
|
|
|
|
WHERE b >= CAST('2009-04-03 00:00:01' AS DATETIME);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090404,p20090405 index NULL PRIMARY 7 NULL 12 Using where; Using index
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1
|
|
|
|
|
WHERE b > CAST('2009-04-03 00:00:01' AS DATETIME);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090404,p20090405 index NULL PRIMARY 7 NULL 12 Using where; Using index
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1
|
|
|
|
|
WHERE b < CAST('2009-04-02 23:59:58' AS DATETIME);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090401,p20090402 index NULL PRIMARY 7 NULL 12 Using where; Using index
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1
|
|
|
|
|
WHERE b <= CAST('2009-04-02 23:59:58' AS DATETIME);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090401,p20090402 index NULL PRIMARY 7 NULL 12 Using where; Using index
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1
|
|
|
|
|
WHERE b = CAST('2009-04-02 23:59:58' AS DATETIME);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1
|
|
|
|
|
WHERE b >= CAST('2009-04-02 23:59:58' AS DATETIME);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090403,p20090404,p20090405 index NULL PRIMARY 7 NULL 12 Using where; Using index
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1
|
|
|
|
|
WHERE b > CAST('2009-04-02 23:59:58' AS DATETIME);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090403,p20090404,p20090405 index NULL PRIMARY 7 NULL 12 Using where; Using index
|
|
|
|
|
DROP TABLE t1;
|
|
|
|
|
# Test with DATETIME column NULL
|
|
|
|
|
CREATE TABLE t1 (
|
|
|
|
|
a int(10) unsigned NOT NULL,
|
|
|
|
|
b DATETIME NULL
|
|
|
|
|
) PARTITION BY RANGE (TO_DAYS(b))
|
|
|
|
|
(PARTITION p20090401 VALUES LESS THAN (TO_DAYS('2009-04-02')),
|
|
|
|
|
PARTITION p20090402 VALUES LESS THAN (TO_DAYS('2009-04-03')),
|
|
|
|
|
PARTITION p20090403 VALUES LESS THAN (TO_DAYS('2009-04-04')),
|
|
|
|
|
PARTITION p20090404 VALUES LESS THAN (TO_DAYS('2009-04-05')),
|
|
|
|
|
PARTITION p20090405 VALUES LESS THAN MAXVALUE);
|
|
|
|
|
INSERT INTO t1 VALUES (1, '2009-01-01'), (1, '2009-04-01'), (2, '2009-04-01'),
|
|
|
|
|
(1, '2009-04-02'), (2, '2009-04-02'), (1, '2009-04-02 23:59:59'),
|
|
|
|
|
(1, '2009-04-03'), (2, '2009-04-03'), (1, '2009-04-04'), (2, '2009-04-04'),
|
|
|
|
|
(1, '2009-04-05'), (1, '2009-04-06'), (1, '2009-04-07');
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b < CAST('2009-04-03' AS DATETIME);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090401,p20090402 ALL NULL NULL NULL NULL 6 Using where
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b <= CAST('2009-04-03' AS DATETIME);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090401,p20090402,p20090403 ALL NULL NULL NULL NULL 8 Using where
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b = CAST('2009-04-03' AS DATETIME);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090403 ALL NULL NULL NULL NULL 8 Using where
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b >= CAST('2009-04-03' AS DATETIME);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090403,p20090404,p20090405 ALL NULL NULL NULL NULL 13 Using where
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b > CAST('2009-04-03' AS DATETIME);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090403,p20090404,p20090405 ALL NULL NULL NULL NULL 13 Using where
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1
|
|
|
|
|
WHERE b < CAST('2009-04-02 23:59:59' AS DATETIME);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090401,p20090402 ALL NULL NULL NULL NULL 13 Using where
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1
|
|
|
|
|
WHERE b <= CAST('2009-04-02 23:59:59' AS DATETIME);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090401,p20090402 ALL NULL NULL NULL NULL 13 Using where
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1
|
|
|
|
|
WHERE b = CAST('2009-04-02 23:59:59' AS DATETIME);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090402 ALL NULL NULL NULL NULL 13 Using where
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1
|
|
|
|
|
WHERE b >= CAST('2009-04-02 23:59:59' AS DATETIME);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090402,p20090403,p20090404,p20090405 ALL NULL NULL NULL NULL 13 Using where
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1
|
|
|
|
|
WHERE b > CAST('2009-04-02 23:59:59' AS DATETIME);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090403,p20090404,p20090405 ALL NULL NULL NULL NULL 13 Using where
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b < CAST('2009-04-03' AS DATE);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090401,p20090402 ALL NULL NULL NULL NULL 13 Using where
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b <= CAST('2009-04-03' AS DATE);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090401,p20090402,p20090403 ALL NULL NULL NULL NULL 13 Using where
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b = CAST('2009-04-03' AS DATE);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090403 ALL NULL NULL NULL NULL 13 Using where
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b >= CAST('2009-04-03' AS DATE);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090403,p20090404,p20090405 ALL NULL NULL NULL NULL 13 Using where
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b > CAST('2009-04-03' AS DATE);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090403,p20090404,p20090405 ALL NULL NULL NULL NULL 13 Using where
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b < '2009-04-03 00:00:00';
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090401,p20090402 ALL NULL NULL NULL NULL 13 Using where
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b <= '2009-04-03 00:00:00';
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090401,p20090402,p20090403 ALL NULL NULL NULL NULL 13 Using where
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b = '2009-04-03 00:00:00';
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090403 ALL NULL NULL NULL NULL 13 Using where
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b >= '2009-04-03 00:00:00';
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090403,p20090404,p20090405 ALL NULL NULL NULL NULL 13 Using where
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b > '2009-04-03 00:00:00';
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090403,p20090404,p20090405 ALL NULL NULL NULL NULL 13 Using where
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b < '2009-04-02 23:59:59';
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090401,p20090402 ALL NULL NULL NULL NULL 13 Using where
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b <= '2009-04-02 23:59:59';
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090401,p20090402 ALL NULL NULL NULL NULL 13 Using where
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b = '2009-04-02 23:59:59';
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090402 ALL NULL NULL NULL NULL 13 Using where
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b >= '2009-04-02 23:59:59';
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090402,p20090403,p20090404,p20090405 ALL NULL NULL NULL NULL 13 Using where
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b > '2009-04-02 23:59:59';
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090403,p20090404,p20090405 ALL NULL NULL NULL NULL 13 Using where
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b < '2009-04-03';
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090401,p20090402 ALL NULL NULL NULL NULL 13 Using where
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b <= '2009-04-03';
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090401,p20090402,p20090403 ALL NULL NULL NULL NULL 13 Using where
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b = '2009-04-03';
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090403 ALL NULL NULL NULL NULL 13 Using where
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b >= '2009-04-03';
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090403,p20090404,p20090405 ALL NULL NULL NULL NULL 13 Using where
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b > '2009-04-03';
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090403,p20090404,p20090405 ALL NULL NULL NULL NULL 13 Using where
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1
|
|
|
|
|
WHERE b < CAST('2009-04-03 00:00:01' AS DATETIME);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090401,p20090402,p20090403 ALL NULL NULL NULL NULL 13 Using where
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1
|
|
|
|
|
WHERE b <= CAST('2009-04-03 00:00:01' AS DATETIME);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090401,p20090402,p20090403 ALL NULL NULL NULL NULL 13 Using where
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1
|
|
|
|
|
WHERE b = CAST('2009-04-03 00:00:01' AS DATETIME);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090403 ALL NULL NULL NULL NULL 13 Using where
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1
|
|
|
|
|
WHERE b >= CAST('2009-04-03 00:00:01' AS DATETIME);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090403,p20090404,p20090405 ALL NULL NULL NULL NULL 13 Using where
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1
|
|
|
|
|
WHERE b > CAST('2009-04-03 00:00:01' AS DATETIME);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090403,p20090404,p20090405 ALL NULL NULL NULL NULL 13 Using where
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1
|
|
|
|
|
WHERE b < CAST('2009-04-02 23:59:58' AS DATETIME);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090401,p20090402 ALL NULL NULL NULL NULL 13 Using where
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1
|
|
|
|
|
WHERE b <= CAST('2009-04-02 23:59:58' AS DATETIME);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090401,p20090402 ALL NULL NULL NULL NULL 13 Using where
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1
|
|
|
|
|
WHERE b = CAST('2009-04-02 23:59:58' AS DATETIME);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090402 ALL NULL NULL NULL NULL 13 Using where
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1
|
|
|
|
|
WHERE b >= CAST('2009-04-02 23:59:58' AS DATETIME);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090402,p20090403,p20090404,p20090405 ALL NULL NULL NULL NULL 13 Using where
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1
|
|
|
|
|
WHERE b > CAST('2009-04-02 23:59:58' AS DATETIME);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090402,p20090403,p20090404,p20090405 ALL NULL NULL NULL NULL 13 Using where
|
|
|
|
|
DROP TABLE t1;
|
|
|
|
|
# Test with DATE column NULL
|
|
|
|
|
CREATE TABLE t1 (
|
|
|
|
|
a int(10) unsigned NOT NULL,
|
|
|
|
|
b DATE NULL
|
|
|
|
|
) PARTITION BY RANGE (TO_DAYS(b))
|
|
|
|
|
(PARTITION p20090401 VALUES LESS THAN (TO_DAYS('2009-04-02')),
|
|
|
|
|
PARTITION p20090402 VALUES LESS THAN (TO_DAYS('2009-04-03')),
|
|
|
|
|
PARTITION p20090403 VALUES LESS THAN (TO_DAYS('2009-04-04')),
|
|
|
|
|
PARTITION p20090404 VALUES LESS THAN (TO_DAYS('2009-04-05')),
|
|
|
|
|
PARTITION p20090405 VALUES LESS THAN MAXVALUE);
|
|
|
|
|
INSERT INTO t1 VALUES (1, '2009-01-01'), (1, '2009-04-01'), (2, '2009-04-01'),
|
|
|
|
|
(1, '2009-04-02'), (2, '2009-04-02'), (1, '2009-04-03'), (2, '2009-04-03'),
|
|
|
|
|
(1, '2009-04-04'), (2, '2009-04-04'), (1, '2009-04-05'), (1, '2009-04-06'),
|
|
|
|
|
(1, '2009-04-07');
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b < CAST('2009-04-03' AS DATETIME);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090401,p20090402 ALL NULL NULL NULL NULL 5 Using where
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b <= CAST('2009-04-03' AS DATETIME);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090401,p20090402,p20090403 ALL NULL NULL NULL NULL 7 Using where
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b = CAST('2009-04-03' AS DATETIME);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090403 ALL NULL NULL NULL NULL 7 Using where
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b >= CAST('2009-04-03' AS DATETIME);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090403,p20090404,p20090405 ALL NULL NULL NULL NULL 12 Using where
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b > CAST('2009-04-03' AS DATETIME);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090404,p20090405 ALL NULL NULL NULL NULL 12 Using where
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1
|
|
|
|
|
WHERE b < CAST('2009-04-02 23:59:59' AS DATETIME);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090401,p20090402 ALL NULL NULL NULL NULL 12 Using where
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1
|
|
|
|
|
WHERE b <= CAST('2009-04-02 23:59:59' AS DATETIME);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090401,p20090402 ALL NULL NULL NULL NULL 12 Using where
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1
|
|
|
|
|
WHERE b = CAST('2009-04-02 23:59:59' AS DATETIME);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1
|
|
|
|
|
WHERE b >= CAST('2009-04-02 23:59:59' AS DATETIME);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090403,p20090404,p20090405 ALL NULL NULL NULL NULL 12 Using where
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1
|
|
|
|
|
WHERE b > CAST('2009-04-02 23:59:59' AS DATETIME);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090403,p20090404,p20090405 ALL NULL NULL NULL NULL 12 Using where
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b < CAST('2009-04-03' AS DATE);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090401,p20090402 ALL NULL NULL NULL NULL 12 Using where
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b <= CAST('2009-04-03' AS DATE);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090401,p20090402,p20090403 ALL NULL NULL NULL NULL 12 Using where
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b = CAST('2009-04-03' AS DATE);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090403 ALL NULL NULL NULL NULL 12 Using where
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b >= CAST('2009-04-03' AS DATE);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090403,p20090404,p20090405 ALL NULL NULL NULL NULL 12 Using where
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b > CAST('2009-04-03' AS DATE);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090404,p20090405 ALL NULL NULL NULL NULL 12 Using where
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b < '2009-04-03 00:00:00';
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090401,p20090402 ALL NULL NULL NULL NULL 12 Using where
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b <= '2009-04-03 00:00:00';
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090401,p20090402,p20090403 ALL NULL NULL NULL NULL 12 Using where
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b = '2009-04-03 00:00:00';
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090403 ALL NULL NULL NULL NULL 12 Using where
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b >= '2009-04-03 00:00:00';
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090403,p20090404,p20090405 ALL NULL NULL NULL NULL 12 Using where
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b > '2009-04-03 00:00:00';
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090404,p20090405 ALL NULL NULL NULL NULL 12 Using where
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b < '2009-04-02 23:59:59';
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090401,p20090402 ALL NULL NULL NULL NULL 12 Using where
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b <= '2009-04-02 23:59:59';
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090401,p20090402 ALL NULL NULL NULL NULL 12 Using where
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b = '2009-04-02 23:59:59';
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b >= '2009-04-02 23:59:59';
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090403,p20090404,p20090405 ALL NULL NULL NULL NULL 12 Using where
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b > '2009-04-02 23:59:59';
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090403,p20090404,p20090405 ALL NULL NULL NULL NULL 12 Using where
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b < '2009-04-03';
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090401,p20090402 ALL NULL NULL NULL NULL 12 Using where
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b <= '2009-04-03';
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090401,p20090402,p20090403 ALL NULL NULL NULL NULL 12 Using where
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b = '2009-04-03';
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090403 ALL NULL NULL NULL NULL 12 Using where
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b >= '2009-04-03';
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090403,p20090404,p20090405 ALL NULL NULL NULL NULL 12 Using where
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b > '2009-04-03';
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090404,p20090405 ALL NULL NULL NULL NULL 12 Using where
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1
|
|
|
|
|
WHERE b < CAST('2009-04-03 00:00:01' AS DATETIME);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090401,p20090402,p20090403 ALL NULL NULL NULL NULL 12 Using where
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1
|
|
|
|
|
WHERE b <= CAST('2009-04-03 00:00:01' AS DATETIME);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090401,p20090402,p20090403 ALL NULL NULL NULL NULL 12 Using where
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1
|
|
|
|
|
WHERE b = CAST('2009-04-03 00:00:01' AS DATETIME);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1
|
|
|
|
|
WHERE b >= CAST('2009-04-03 00:00:01' AS DATETIME);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090404,p20090405 ALL NULL NULL NULL NULL 12 Using where
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1
|
|
|
|
|
WHERE b > CAST('2009-04-03 00:00:01' AS DATETIME);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090404,p20090405 ALL NULL NULL NULL NULL 12 Using where
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1
|
|
|
|
|
WHERE b < CAST('2009-04-02 23:59:58' AS DATETIME);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090401,p20090402 ALL NULL NULL NULL NULL 12 Using where
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1
|
|
|
|
|
WHERE b <= CAST('2009-04-02 23:59:58' AS DATETIME);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090401,p20090402 ALL NULL NULL NULL NULL 12 Using where
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1
|
|
|
|
|
WHERE b = CAST('2009-04-02 23:59:58' AS DATETIME);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1
|
|
|
|
|
WHERE b >= CAST('2009-04-02 23:59:58' AS DATETIME);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090403,p20090404,p20090405 ALL NULL NULL NULL NULL 12 Using where
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1
|
|
|
|
|
WHERE b > CAST('2009-04-02 23:59:58' AS DATETIME);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 p20090403,p20090404,p20090405 ALL NULL NULL NULL NULL 12 Using where
|
|
|
|
|
DROP TABLE t1;
|
|
|
|
|
# For better code coverage of the patch
|
|
|
|
|
CREATE TABLE t1 (
|
|
|
|
|
a int(10) unsigned NOT NULL,
|
|
|
|
|
b DATE
|
|
|
|
|
) PARTITION BY RANGE ( TO_DAYS(b) )
|
|
|
|
|
(PARTITION p20090401 VALUES LESS THAN (TO_DAYS('2009-04-02')),
|
|
|
|
|
PARTITION p20090402 VALUES LESS THAN (TO_DAYS('2009-04-03')),
|
|
|
|
|
PARTITION p20090403 VALUES LESS THAN (TO_DAYS('2009-04-04')),
|
|
|
|
|
PARTITION p20090404 VALUES LESS THAN (TO_DAYS('2009-04-05')),
|
|
|
|
|
PARTITION p20090405 VALUES LESS THAN MAXVALUE);
|
|
|
|
|
INSERT INTO t1 VALUES (1, '2009-01-01'), (2, NULL);
|
|
|
|
|
# test with an invalid date, which lead to item->null_value is set.
|
|
|
|
|
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b < CAST('2009-04-99' AS DATETIME);
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
|
|
|
|
Warnings:
|
|
|
|
|
Warning 1292 Incorrect datetime value: '2009-04-99'
|
|
|
|
|
Warning 1292 Incorrect datetime value: '2009-04-99'
|
|
|
|
|
DROP TABLE t1;
|
|
|
|
|
CREATE TABLE t1
|
|
|
|
|
(a INT NOT NULL AUTO_INCREMENT,
|
|
|
|
|
b DATETIME,
|
|
|
|
|