Commit d2251a8f authored by ramil/ram@ramil.myoffice.izhnet.ru's avatar ramil/ram@ramil.myoffice.izhnet.ru
Browse files

Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-5.0-maint

into  mysql.com:/home/ram/work/b30885/b30885.5.0
parents 4d44d8b3 b4b7cf2a
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -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;
      }
    }
+8 −0
Original line number Diff line number Diff line
@@ -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
+9 −0
Original line number Diff line number Diff line
@@ -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