1drop table if exists t1; 2create table t1 (id int auto_increment primary key not null, mydate date not null); 3insert into t1 values (0,"2002-05-01"),(0,"2002-05-01"),(0,"2002-05-01"); 4flush tables; 5select * from t1 where isnull(to_days(mydate)); 6id mydate 7drop table t1; 8# 9# Bug#53933 crash when using uncacheable subquery in the having clause of outer query 10# 11CREATE TABLE t1 (f1 INT); 12INSERT INTO t1 VALUES (0),(0); 13SELECT ISNULL((SELECT GET_LOCK('Bug#53933', 0) FROM t1 GROUP BY f1)) AS f2 14FROM t1 GROUP BY f1 HAVING f2 = f2; 15f2 160 17SELECT RELEASE_LOCK('Bug#53933'); 18RELEASE_LOCK('Bug#53933') 191 20DROP TABLE t1; 21End of 5.0 tests 22CREATE TABLE t1 (id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, PRIMARY KEY(id)); 23INSERT INTO t1( id ) VALUES ( NULL ); 24SELECT t1.id FROM t1 WHERE (id is not null and id is null ); 25id 26DROP TABLE t1; 27# End of 5.1 tests 28# 29# MDEV-14911: IS NULL for field from mergeable view 30# 31CREATE TABLE t1 (d1 datetime NOT NULL); 32INSERT INTO t1 VALUES 33('0000-00-00 00:00:00'), ('0000-00-00 00:00:00'), ('1979-09-03 20:49:36'); 34SELECT * FROM t1; 35d1 360000-00-00 00:00:00 370000-00-00 00:00:00 381979-09-03 20:49:36 39SELECT * FROM t1 WHERE d1 IS NULL; 40d1 410000-00-00 00:00:00 420000-00-00 00:00:00 43EXPLAIN EXTENDED SELECT * FROM t1 WHERE d1 IS NULL; 44id select_type table type possible_keys key key_len ref rows filtered Extra 451 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00 Using where 46Warnings: 47Note 1003 select `test`.`t1`.`d1` AS `d1` from `test`.`t1` where `test`.`t1`.`d1` = 0 48SELECT count(*) FROM t1 WHERE d1 IS NULL; 49count(*) 502 51CREATE VIEW v1 AS (SELECT * FROM t1); 52SELECT * FROM v1; 53d1 540000-00-00 00:00:00 550000-00-00 00:00:00 561979-09-03 20:49:36 57SELECT * FROM v1 WHERE d1 IS NULL; 58d1 590000-00-00 00:00:00 600000-00-00 00:00:00 61EXPLAIN EXTENDED SELECT * FROM v1 WHERE d1 IS NULL; 62id select_type table type possible_keys key key_len ref rows filtered Extra 631 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00 Using where 64Warnings: 65Note 1003 select `test`.`t1`.`d1` AS `d1` from `test`.`t1` where `test`.`t1`.`d1` = 0 66SELECT count(*) FROM v1 WHERE d1 IS NULL; 67count(*) 682 69SET @save_optimizer_switch=@@optimizer_switch; 70SET SESSION optimizer_switch='derived_merge=off'; 71SELECT count(*) FROM ( SELECT * FROM t1 ) AS a1 WHERE d1 IS NULL; 72count(*) 732 74SET SESSION optimizer_switch='derived_merge=on'; 75SELECT count(*) FROM ( SELECT * FROM t1 ) AS a1 WHERE d1 IS NULL; 76count(*) 772 78SET optimizer_switch=@save_optimizer_switch; 79CREATE TABLE t2 (d1 datetime NOT NULL); 80INSERT INTO t2 VALUES 81('1980-09-03 20:49:36'), ('0000-00-00 00:00:00'), ('1979-09-03 20:49:36'); 82SELECT * FROM t2 LEFT JOIN t1 ON t2.d1=t1.d1 WHERE t1.d1 IS NULL; 83d1 d1 840000-00-00 00:00:00 0000-00-00 00:00:00 850000-00-00 00:00:00 0000-00-00 00:00:00 861980-09-03 20:49:36 NULL 87EXPLAIN EXTENDED 88SELECT * FROM t2 LEFT JOIN t1 ON t2.d1=t1.d1 WHERE t1.d1 IS NULL; 89id select_type table type possible_keys key key_len ref rows filtered Extra 901 SIMPLE t2 ALL NULL NULL NULL NULL 3 100.00 911 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (flat, BNL join) 92Warnings: 93Note 1003 select `test`.`t2`.`d1` AS `d1`,`test`.`t1`.`d1` AS `d1` from `test`.`t2` left join `test`.`t1` on(`test`.`t1`.`d1` = `test`.`t2`.`d1`) where `test`.`t1`.`d1` = 0 or `test`.`t1`.`d1` is null 94SELECT * FROM t2 LEFT JOIN v1 ON t2.d1=v1.d1 WHERE v1.d1 IS NULL; 95d1 d1 960000-00-00 00:00:00 0000-00-00 00:00:00 970000-00-00 00:00:00 0000-00-00 00:00:00 981980-09-03 20:49:36 NULL 99EXPLAIN EXTENDED 100SELECT * FROM t2 LEFT JOIN v1 ON t2.d1=v1.d1 WHERE v1.d1 IS NULL; 101id select_type table type possible_keys key key_len ref rows filtered Extra 1021 SIMPLE t2 ALL NULL NULL NULL NULL 3 100.00 1031 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (flat, BNL join) 104Warnings: 105Note 1003 select `test`.`t2`.`d1` AS `d1`,`test`.`t1`.`d1` AS `d1` from `test`.`t2` left join (`test`.`t1`) on(`test`.`t1`.`d1` = `test`.`t2`.`d1`) where `test`.`t1`.`d1` = 0 or `test`.`t1`.`d1` is null 106DROP VIEW v1; 107DROP TABLE t1,t2; 108# 109# MDEV-15475: Assertion `!table || (!table->read_set || 110# bitmap_is_set(table->read_set, field_index))' 111# failed on EXPLAIN EXTENDED with constant table and view 112# 113CREATE TABLE t1 (pk INT PRIMARY KEY) ENGINE=MyISAM; 114CREATE VIEW v1 AS SELECT * FROM t1; 115INSERT INTO t1 VALUES (1); 116EXPLAIN EXTENDED SELECT ISNULL(pk) FROM v1; 117id select_type table type possible_keys key key_len ref rows filtered Extra 1181 SIMPLE t1 system NULL NULL NULL NULL 1 100.00 119Warnings: 120Note 1003 select /*always not null*/ 1 is null AS `ISNULL(pk)` from dual 121EXPLAIN EXTENDED SELECT IFNULL(pk,0) FROM v1; 122id select_type table type possible_keys key key_len ref rows filtered Extra 1231 SIMPLE t1 system NULL NULL NULL NULL 1 100.00 124Warnings: 125Note 1003 select ifnull(1,0) AS `IFNULL(pk,0)` from dual 126DROP VIEW v1; 127DROP TABLE t1; 128# 129# End of 5.5 tests 130# 131