1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-29 05:21:33 +03:00

A fix (bug #6878: Crash with engine=memory).

heap/hp_open.c:
  A fix (bug #6878: Crash with engine=memory).
  Record length should be >= sizeof(byte*).
This commit is contained in:
unknown
2004-12-02 14:34:53 +04:00
parent 352ad8156c
commit a845e882fd
3 changed files with 27 additions and 0 deletions

View File

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

View File

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

View File

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