Loading heap/hp_hash.c +6 −0 Original line number Diff line number Diff line Loading @@ -808,6 +808,12 @@ uint hp_rb_pack_key(HP_KEYDEF *keydef, uchar *key, const uchar *old, if (!(*key++= (char) 1 - *old++)) { k_len-= seg->length; /* Take into account length (2 bytes) of varchar key parts stored before the data. */ if (seg->flag & (HA_VAR_LENGTH_PART | HA_BLOB_PART)) k_len-= 2; continue; } } Loading mysql-test/r/heap_btree.result +8 −0 Original line number Diff line number Diff line Loading @@ -321,4 +321,12 @@ DROP TABLE t1; CREATE TABLE t1 (a INT, UNIQUE USING BTREE(a)) ENGINE=MEMORY; INSERT INTO t1 VALUES(NULL),(NULL); DROP TABLE t1; create table t1(a varchar(255), b varchar(255), key using btree (a,b)) engine=memory; insert into t1 values (1, 1), (3, 3), (2, 2), (NULL, 1), (NULL, NULL), (0, 0); select * from t1 where a is null; a b NULL NULL NULL 1 drop table t1; End of 5.0 tests mysql-test/t/heap_btree.test +9 −0 Original line number Diff line number Diff line Loading @@ -235,5 +235,14 @@ CREATE TABLE t1 (a INT, UNIQUE USING BTREE(a)) ENGINE=MEMORY; INSERT INTO t1 VALUES(NULL),(NULL); DROP TABLE t1; # # Bug #30885: MEMORY returns incorrect data if BTREE index is used for NULL lookup # create table t1(a varchar(255), b varchar(255), key using btree (a,b)) engine=memory; insert into t1 values (1, 1), (3, 3), (2, 2), (NULL, 1), (NULL, NULL), (0, 0); select * from t1 where a is null; drop table t1; --echo End of 5.0 tests Loading
heap/hp_hash.c +6 −0 Original line number Diff line number Diff line Loading @@ -808,6 +808,12 @@ uint hp_rb_pack_key(HP_KEYDEF *keydef, uchar *key, const uchar *old, if (!(*key++= (char) 1 - *old++)) { k_len-= seg->length; /* Take into account length (2 bytes) of varchar key parts stored before the data. */ if (seg->flag & (HA_VAR_LENGTH_PART | HA_BLOB_PART)) k_len-= 2; continue; } } Loading
mysql-test/r/heap_btree.result +8 −0 Original line number Diff line number Diff line Loading @@ -321,4 +321,12 @@ DROP TABLE t1; CREATE TABLE t1 (a INT, UNIQUE USING BTREE(a)) ENGINE=MEMORY; INSERT INTO t1 VALUES(NULL),(NULL); DROP TABLE t1; create table t1(a varchar(255), b varchar(255), key using btree (a,b)) engine=memory; insert into t1 values (1, 1), (3, 3), (2, 2), (NULL, 1), (NULL, NULL), (0, 0); select * from t1 where a is null; a b NULL NULL NULL 1 drop table t1; End of 5.0 tests
mysql-test/t/heap_btree.test +9 −0 Original line number Diff line number Diff line Loading @@ -235,5 +235,14 @@ CREATE TABLE t1 (a INT, UNIQUE USING BTREE(a)) ENGINE=MEMORY; INSERT INTO t1 VALUES(NULL),(NULL); DROP TABLE t1; # # Bug #30885: MEMORY returns incorrect data if BTREE index is used for NULL lookup # create table t1(a varchar(255), b varchar(255), key using btree (a,b)) engine=memory; insert into t1 values (1, 1), (3, 3), (2, 2), (NULL, 1), (NULL, NULL), (0, 0); select * from t1 where a is null; drop table t1; --echo End of 5.0 tests