diff options
author | unknown <serg@serg.mylan> | 2004-08-01 13:26:01 +0200 |
---|---|---|
committer | unknown <serg@serg.mylan> | 2004-08-01 13:26:01 +0200 |
commit | d14a27fdadeec3cd7c29b04b7051f32e66320087 (patch) | |
tree | 6d221952b67a636cef97629f4983774c40f53206 | |
parent | 9ca47d047e5164515eac6fcae05ae9450cb94213 (diff) | |
download | mariadb-git-d14a27fdadeec3cd7c29b04b7051f32e66320087.tar.gz |
bug#4816. index search for NULL in blob
-rw-r--r-- | myisam/mi_key.c | 2 | ||||
-rw-r--r-- | mysql-test/r/myisam.result | 9 | ||||
-rw-r--r-- | mysql-test/t/myisam.test | 10 |
3 files changed, 21 insertions, 0 deletions
diff --git a/myisam/mi_key.c b/myisam/mi_key.c index 766ecf334b6..1688ab74823 100644 --- a/myisam/mi_key.c +++ b/myisam/mi_key.c @@ -177,6 +177,8 @@ uint _mi_pack_key(register MI_INFO *info, uint keynr, uchar *key, uchar *old, if (!(*key++= (char) 1-*old++)) /* Copy null marker */ { k_length-=length; + if (keyseg->flag & (HA_VAR_LENGTH | HA_BLOB_PART)) + k_length-=2; /* Skip length */ continue; /* Found NULL */ } } diff --git a/mysql-test/r/myisam.result b/mysql-test/r/myisam.result index 1fd64377f12..c55bacdd371 100644 --- a/mysql-test/r/myisam.result +++ b/mysql-test/r/myisam.result @@ -453,3 +453,12 @@ table type possible_keys key key_len ref rows Extra t1 system NULL NULL NULL NULL 1 Using temporary t2 index NULL PRIMARY 4 NULL 2 Using index; Distinct drop table t1,t2; +create table t1 ( a tinytext, b char(1), index idx (a(1),b) ); +insert into t1 values (null,''), (null,''); +explain select count(*) from t1 where a is null; +table type possible_keys key key_len ref rows Extra +t1 ref idx idx 4 const 1 Using where +select count(*) from t1 where a is null; +count(*) +2 +drop table t1; diff --git a/mysql-test/t/myisam.test b/mysql-test/t/myisam.test index 59b86309d77..57b64e30bac 100644 --- a/mysql-test/t/myisam.test +++ b/mysql-test/t/myisam.test @@ -436,3 +436,13 @@ select sql_big_result distinct t1.a from t1,t2; explain select sql_big_result distinct t1.a from t1,t2 order by t2.a; explain select distinct t1.a from t1,t2 order by t2.a; drop table t1,t2; + +# +# index search for NULL in blob. Bug #4816 +# +create table t1 ( a tinytext, b char(1), index idx (a(1),b) ); +insert into t1 values (null,''), (null,''); +explain select count(*) from t1 where a is null; +select count(*) from t1 where a is null; +drop table t1; + |