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