Merge rurik.mysql.com:/home/igor/mysql-5.0
into rurik.mysql.com:/home/igor/dev/mysql-5.0-1
This commit is contained in:
commit
e282c8cc6f
@ -76,13 +76,13 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||||||
1 SIMPLE t0 ALL i1,i2 NULL NULL NULL 1024 Using where
|
1 SIMPLE t0 ALL i1,i2 NULL NULL NULL 1024 Using where
|
||||||
explain select * from t0 where key2 = 45 or key1 is null;
|
explain select * from t0 where key2 = 45 or key1 is null;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t0 ALL i1,i2 NULL NULL NULL 1024 Using where
|
1 SIMPLE t0 range i1,i2 i2 4 NULL 1 Using where
|
||||||
explain select * from t0 where key2=10 or key3=3 or key4 <=> null;
|
explain select * from t0 where key2=10 or key3=3 or key4 <=> null;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t0 index_merge i2,i3,i4 i2,i3 4,4 NULL 2 Using where
|
1 SIMPLE t0 index_merge i2,i3,i4 i2,i3 4,4 NULL 2 Using where
|
||||||
explain select * from t0 where key2=10 or key3=3 or key4 is null;
|
explain select * from t0 where key2=10 or key3=3 or key4 is null;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t0 ALL i2,i3,i4 NULL NULL NULL 1024 Using where
|
1 SIMPLE t0 index_merge i2,i3,i4 i2,i3 4,4 NULL 2 Using where
|
||||||
explain select key1 from t0 where (key1 <=> null) or (key2 < 5) or
|
explain select key1 from t0 where (key1 <=> null) or (key2 < 5) or
|
||||||
(key3=10) or (key4 <=> null);
|
(key3=10) or (key4 <=> null);
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
@ -91,7 +91,7 @@ grp a c id a c d
|
|||||||
NULL NULL NULL NULL NULL NULL
|
NULL NULL NULL NULL NULL NULL
|
||||||
explain select t1.*,t2.* from t1,t2 where t1.a=t2.a and isnull(t2.a)=1;
|
explain select t1.*,t2.* from t1,t2 where t1.a=t2.a and isnull(t2.a)=1;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE
|
||||||
explain select t1.*,t2.* from t1 left join t2 on t1.a=t2.a where isnull(t2.a)=1;
|
explain select t1.*,t2.* from t1 left join t2 on t1.a=t2.a where isnull(t2.a)=1;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 7
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 7
|
||||||
|
@ -142,3 +142,14 @@ a b c d
|
|||||||
0 0000-00-00 00:00:00 0
|
0 0000-00-00 00:00:00 0
|
||||||
0 0000-00-00 00:00:00 0
|
0 0000-00-00 00:00:00 0
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
create table t1 (a int not null, b int not null, index idx(a));
|
||||||
|
insert into t1 values
|
||||||
|
(1,1), (2,2), (3,3), (4,4), (5,5), (6,6),
|
||||||
|
(7,7), (8,8), (9,9), (10,10), (11,11), (12,12);
|
||||||
|
explain select * from t1 where a between 2 and 3;
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t1 range idx idx 4 NULL 2 Using where
|
||||||
|
explain select * from t1 where a between 2 and 3 or b is null;
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t1 range idx idx 4 NULL 2 Using where
|
||||||
|
drop table t1;
|
||||||
|
@ -86,3 +86,14 @@ INSERT INTO t1 (d) values (null),(null);
|
|||||||
select * from t1;
|
select * from t1;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
|
#
|
||||||
|
# Test to check elimination of IS NULL predicate for a non-nullable attribute
|
||||||
|
# (bug #1990)
|
||||||
|
#
|
||||||
|
create table t1 (a int not null, b int not null, index idx(a));
|
||||||
|
insert into t1 values
|
||||||
|
(1,1), (2,2), (3,3), (4,4), (5,5), (6,6),
|
||||||
|
(7,7), (8,8), (9,9), (10,10), (11,11), (12,12);
|
||||||
|
explain select * from t1 where a between 2 and 3;
|
||||||
|
explain select * from t1 where a between 2 and 3 or b is null;
|
||||||
|
drop table t1;
|
||||||
|
@ -746,6 +746,7 @@ public:
|
|||||||
if (!args[0]->maybe_null)
|
if (!args[0]->maybe_null)
|
||||||
{
|
{
|
||||||
used_tables_cache= 0; /* is always false */
|
used_tables_cache= 0; /* is always false */
|
||||||
|
const_item_cache= 1;
|
||||||
cached_value= (longlong) 0;
|
cached_value= (longlong) 0;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
Loading…
x
Reference in New Issue
Block a user