1
0
mirror of https://github.com/MariaDB/server.git synced 2026-01-06 05:22:24 +03:00

Fix for bug #30885: MEMORY returns incorrect data if BTREE index is used for NULL lookup

Problem: creating an rb-tree key we store length (2 bytes) before the actual data for 
varchar key parts. The fact was missed for NULL key parts, when we set NULL byte and 
skip the rest.

Fix: take into account the length of the varchar key parts for NULLs.


heap/hp_hash.c:
  Fix for bug #30885: MEMORY returns incorrect data if BTREE index is used for NULL lookup
    - skip varchar key parts length (2 byte) for null key parts.
mysql-test/r/heap_btree.result:
  Fix for bug #30885: MEMORY returns incorrect data if BTREE index is used for NULL lookup
    -test result.
mysql-test/t/heap_btree.test:
  Fix for bug #30885: MEMORY returns incorrect data if BTREE index is used for NULL lookup
    - test case.
This commit is contained in:
unknown
2007-10-05 16:33:15 +05:00
parent 78348d4ed1
commit 01b3b7785b
3 changed files with 23 additions and 0 deletions

View File

@@ -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