Loading heap/hp_open.c +7 −0 Original line number Diff line number Diff line Loading @@ -41,6 +41,13 @@ HP_INFO *heap_open(const char *name, int mode, uint keys, HP_KEYDEF *keydef, { DBUG_PRINT("info",("Initializing new table")); implicit_emptied= 1; /* We have to store sometimes byte* del_link in records, so the record length should be at least sizeof(byte*) */ set_if_bigger(reclength, sizeof (byte*)); for (i=key_segs=max_length=0 ; i < keys ; i++) { key_segs+= keydef[i].keysegs; Loading mysql-test/r/heap.result +9 −0 Original line number Diff line number Diff line Loading @@ -227,3 +227,12 @@ SELECT MAX(job_title_id) FROM job_titles; MAX(job_title_id) NULL DROP TABLE job_titles; create table t1(a char(2)) type=heap; insert into t1 values (NULL), (NULL); delete from t1 where a is null; insert into t1 values ('2'), ('3'); select * from t1; a 3 2 drop table t1; mysql-test/t/heap.test +11 −0 Original line number Diff line number Diff line Loading @@ -161,3 +161,14 @@ CREATE TABLE `job_titles` ( SELECT MAX(job_title_id) FROM job_titles; DROP TABLE job_titles; # # Bug #6878: a problem with small length records # create table t1(a char(2)) type=heap; insert into t1 values (NULL), (NULL); delete from t1 where a is null; insert into t1 values ('2'), ('3'); select * from t1; drop table t1; Loading
heap/hp_open.c +7 −0 Original line number Diff line number Diff line Loading @@ -41,6 +41,13 @@ HP_INFO *heap_open(const char *name, int mode, uint keys, HP_KEYDEF *keydef, { DBUG_PRINT("info",("Initializing new table")); implicit_emptied= 1; /* We have to store sometimes byte* del_link in records, so the record length should be at least sizeof(byte*) */ set_if_bigger(reclength, sizeof (byte*)); for (i=key_segs=max_length=0 ; i < keys ; i++) { key_segs+= keydef[i].keysegs; Loading
mysql-test/r/heap.result +9 −0 Original line number Diff line number Diff line Loading @@ -227,3 +227,12 @@ SELECT MAX(job_title_id) FROM job_titles; MAX(job_title_id) NULL DROP TABLE job_titles; create table t1(a char(2)) type=heap; insert into t1 values (NULL), (NULL); delete from t1 where a is null; insert into t1 values ('2'), ('3'); select * from t1; a 3 2 drop table t1;
mysql-test/t/heap.test +11 −0 Original line number Diff line number Diff line Loading @@ -161,3 +161,14 @@ CREATE TABLE `job_titles` ( SELECT MAX(job_title_id) FROM job_titles; DROP TABLE job_titles; # # Bug #6878: a problem with small length records # create table t1(a char(2)) type=heap; insert into t1 values (NULL), (NULL); delete from t1 where a is null; insert into t1 values ('2'), ('3'); select * from t1; drop table t1;