# Created for verifying bug#20577. # expects TABLE t1 (... , a DATE, ...) --sorted_result SELECT * FROM t1 WHERE a < '1001-01-01'; --sorted_result SELECT * FROM t1 WHERE a <= '1001-01-01'; --sorted_result SELECT * FROM t1 WHERE a >= '1001-01-01'; --sorted_result SELECT * FROM t1 WHERE a > '1001-01-01'; --sorted_result SELECT * FROM t1 WHERE a = '1001-01-01'; --sorted_result SELECT * FROM t1 WHERE a < '1001-00-00'; --sorted_result SELECT * FROM t1 WHERE a <= '1001-00-00'; --sorted_result SELECT * FROM t1 WHERE a >= '1001-00-00'; --sorted_result SELECT * FROM t1 WHERE a > '1001-00-00'; --sorted_result SELECT * FROM t1 WHERE a = '1001-00-00'; SET @previous_sql_mode = @@sql_mode; SET sql_mode = "ALLOW_INVALID_DATES"; --sorted_result SELECT * FROM t1 WHERE a < '1999-02-31'; --sorted_result SELECT * FROM t1 WHERE a <= '1999-02-31'; --sorted_result SELECT * FROM t1 WHERE a >= '1999-02-31'; --sorted_result SELECT * FROM t1 WHERE a > '1999-02-31'; --sorted_result SELECT * FROM t1 WHERE a = '1999-02-31'; --sorted_result SELECT * FROM t1 WHERE a BETWEEN '0000-00-00' AND '1002-00-00'; --sorted_result SELECT * FROM t1 WHERE a BETWEEN '0000-00-00' AND '1001-01-01'; --sorted_result SELECT * FROM t1 WHERE a BETWEEN '0001-01-02' AND '1002-00-00'; --sorted_result SELECT * FROM t1 WHERE a BETWEEN '0001-01-01' AND '1001-01-01'; if ($explain_partitions) { EXPLAIN SELECT * FROM t1 WHERE a < '1001-01-01'; EXPLAIN SELECT * FROM t1 WHERE a <= '1001-01-01'; EXPLAIN SELECT * FROM t1 WHERE a >= '1001-01-01'; EXPLAIN SELECT * FROM t1 WHERE a > '1001-01-01'; EXPLAIN SELECT * FROM t1 WHERE a = '1001-01-01'; EXPLAIN SELECT * FROM t1 WHERE a < '1001-00-00'; EXPLAIN SELECT * FROM t1 WHERE a <= '1001-00-00'; EXPLAIN SELECT * FROM t1 WHERE a >= '1001-00-00'; EXPLAIN SELECT * FROM t1 WHERE a > '1001-00-00'; EXPLAIN SELECT * FROM t1 WHERE a = '1001-00-00'; EXPLAIN SELECT * FROM t1 WHERE a < '1999-02-31'; EXPLAIN SELECT * FROM t1 WHERE a <= '1999-02-31'; EXPLAIN SELECT * FROM t1 WHERE a >= '1999-02-31'; EXPLAIN SELECT * FROM t1 WHERE a > '1999-02-31'; EXPLAIN SELECT * FROM t1 WHERE a = '1999-02-31'; EXPLAIN SELECT * FROM t1 WHERE a BETWEEN '0000-00-00' AND '1002-00-00'; EXPLAIN SELECT * FROM t1 WHERE a BETWEEN '0000-00-00' AND '1001-01-01'; EXPLAIN SELECT * FROM t1 WHERE a BETWEEN '0001-01-02' AND '1002-00-00'; EXPLAIN SELECT * FROM t1 WHERE a BETWEEN '0001-01-01' AND '1001-01-01'; SET sql_mode = @previous_sql_mode; }