diff options
Diffstat (limited to 'mysql-test/r/null_key.result')
-rw-r--r-- | mysql-test/r/null_key.result | 71 |
1 files changed, 70 insertions, 1 deletions
diff --git a/mysql-test/r/null_key.result b/mysql-test/r/null_key.result index ead1dc29326..a28830a696d 100644 --- a/mysql-test/r/null_key.result +++ b/mysql-test/r/null_key.result @@ -1,101 +1,164 @@ +drop table if exists t1; +create table t1 (a int, b int not null,unique key (a,b),index(b)) type=myisam; +insert ignore into t1 values (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(null,7),(9,9),(8,8),(7,7),(null,9),(null,9),(6,6); +explain select * from t1 where a is null; table type possible_keys key key_len ref rows Extra t1 ref a a 5 const 3 where used; Using index +explain select * from t1 where a is null and b = 2; table type possible_keys key key_len ref rows Extra t1 ref a,b a 9 const,const 1 where used; Using index +explain select * from t1 where a is null and b = 7; table type possible_keys key key_len ref rows Extra t1 ref a,b a 9 const,const 1 where used; Using index +explain select * from t1 where a=2 and b = 2; table type possible_keys key key_len ref rows Extra t1 const a,b a 9 const,const 1 +explain select * from t1 where a<=>b limit 2; table type possible_keys key key_len ref rows Extra t1 index NULL a 9 NULL 12 where used; Using index +explain select * from t1 where (a is null or a > 0 and a < 3) and b < 5 limit 3; table type possible_keys key key_len ref rows Extra t1 range a,b a 9 NULL 3 where used; Using index +explain select * from t1 where (a is null or a = 7) and b=7; table type possible_keys key key_len ref rows Extra t1 ref a,b b 4 const 2 where used +explain select * from t1 where (a is null and b>a) or a is null and b=7 limit 2; table type possible_keys key key_len ref rows Extra t1 ref a,b a 5 const 3 where used; Using index +explain select * from t1 where a is null and b=9 or a is null and b=7 limit 3; table type possible_keys key key_len ref rows Extra t1 range a,b a 9 NULL 2 where used; Using index +explain select * from t1 where a > 1 and a < 3 limit 1; table type possible_keys key key_len ref rows Extra t1 range a a 5 NULL 1 where used; Using index +explain select * from t1 where a > 8 and a < 9; table type possible_keys key key_len ref rows Extra t1 range a a 5 NULL 1 where used; Using index +select * from t1 where a is null; a b NULL 7 NULL 9 NULL 9 +select * from t1 where a is null and b = 7; a b NULL 7 +select * from t1 where a<=>b limit 2; a b 1 1 2 2 +select * from t1 where (a is null or a > 0 and a < 3) and b < 5 limit 3; a b 1 1 2 2 +select * from t1 where (a is null or a > 0 and a < 3) and b > 7 limit 3; a b NULL 9 NULL 9 +select * from t1 where (a is null or a = 7) and b=7; a b NULL 7 7 7 +select * from t1 where a is null and b=9 or a is null and b=7 limit 3; a b NULL 7 NULL 9 NULL 9 +alter table t1 modify b blob not null, add c int not null, drop key a, add unique key (a,b(20),c), drop key b, add key (b(10)); +explain select * from t1 where a is null and b = 2; table type possible_keys key key_len ref rows Extra t1 ref a,b a 5 const 3 where used +explain select * from t1 where a is null and b = 2 and c=0; table type possible_keys key key_len ref rows Extra t1 ref a,b a 5 const 3 where used +explain select * from t1 where a is null and b = 7 and c=0; table type possible_keys key key_len ref rows Extra t1 ref a,b a 5 const 3 where used +explain select * from t1 where a=2 and b = 2; table type possible_keys key key_len ref rows Extra t1 ref a,b a 5 const 1 where used +explain select * from t1 where a<=>b limit 2; table type possible_keys key key_len ref rows Extra t1 ALL NULL NULL NULL NULL 12 where used +explain select * from t1 where (a is null or a > 0 and a < 3) and b < 5 and c=0 limit 3; table type possible_keys key key_len ref rows Extra -t1 range a,b a 5 NULL 12 where used +t1 range a,b a 5 NULL 5 where used +explain select * from t1 where (a is null or a = 7) and b=7 and c=0; table type possible_keys key key_len ref rows Extra t1 range a,b a 5 NULL 4 where used +explain select * from t1 where (a is null and b>a) or a is null and b=7 limit 2; table type possible_keys key key_len ref rows Extra t1 ref a,b a 5 const 3 where used +explain select * from t1 where a is null and b=9 or a is null and b=7 limit 3; table type possible_keys key key_len ref rows Extra t1 ref a,b a 5 const 3 where used +explain select * from t1 where a > 1 and a < 3 limit 1; table type possible_keys key key_len ref rows Extra t1 range a a 5 NULL 1 where used +explain select * from t1 where a is null and b=7 or a > 1 and a < 3 limit 1; table type possible_keys key key_len ref rows Extra t1 range a,b a 5 NULL 4 where used +explain select * from t1 where a > 8 and a < 9; table type possible_keys key key_len ref rows Extra t1 range a a 5 NULL 1 where used +explain select * from t1 where b like "6%"; table type possible_keys key key_len ref rows Extra t1 range b b 12 NULL 1 where used +select * from t1 where a is null; a b c NULL 7 0 NULL 9 0 NULL 9 0 +select * from t1 where a is null and b = 7 and c=0; a b c NULL 7 0 +select * from t1 where a<=>b limit 2; a b c 1 1 0 2 2 0 +select * from t1 where (a is null or a > 0 and a < 3) and b < 5 limit 3; a b c 1 1 0 2 2 0 +select * from t1 where (a is null or a > 0 and a < 3) and b > 7 limit 3; a b c NULL 9 0 NULL 9 0 +select * from t1 where (a is null or a = 7) and b=7 and c=0; a b c NULL 7 0 7 7 0 +select * from t1 where a is null and b=9 or a is null and b=7 limit 3; a b c NULL 7 0 NULL 9 0 NULL 9 0 +select * from t1 where b like "6%"; a b c 6 6 0 +drop table t1; +DROP TABLE IF EXISTS t1,t2; +CREATE TABLE t1 ( +id int(10) unsigned NOT NULL auto_increment, +uniq_id int(10) unsigned default NULL, +PRIMARY KEY (id), +UNIQUE KEY idx1 (uniq_id) +) TYPE=MyISAM; +CREATE TABLE t2 ( +id int(10) unsigned NOT NULL auto_increment, +uniq_id int(10) unsigned default NULL, +PRIMARY KEY (id) +) TYPE=MyISAM; +INSERT INTO t1 VALUES (1,NULL),(2,NULL),(3,1),(4,2),(5,NULL),(6,NULL),(7,3),(8,4),(9,NULL),(10,NULL); +INSERT INTO t2 VALUES (1,NULL),(2,NULL),(3,1),(4,2),(5,NULL),(6,NULL),(7,3),(8,4),(9,NULL),(10,NULL); +explain select id from t1 where uniq_id is null; table type possible_keys key key_len ref rows Extra t1 ref idx1 idx1 5 const 1 where used +explain select id from t1 where uniq_id =1; table type possible_keys key key_len ref rows Extra t1 const idx1 idx1 5 const 1 +UPDATE t1 SET id=id+100 where uniq_id is null; +UPDATE t2 SET id=id+100 where uniq_id is null; +select id from t1 where uniq_id is null; id 101 102 @@ -103,6 +166,7 @@ id 106 109 110 +select id from t2 where uniq_id is null; id 101 102 @@ -110,13 +174,18 @@ id 106 109 110 +DELETE FROM t1 WHERE uniq_id IS NULL; +DELETE FROM t2 WHERE uniq_id IS NULL; +SELECT * FROM t1 ORDER BY uniq_id, id; id uniq_id 3 1 4 2 7 3 8 4 +SELECT * FROM t2 ORDER BY uniq_id, id; id uniq_id 3 1 4 2 7 3 8 4 +DROP table t1,t2; |