Commit 19fe33e1 authored by svoj@mysql.com's avatar svoj@mysql.com

BUG#11684 fix.

Repair crashes mysql when table has fulltext index.
parent 4098c40d
...@@ -532,13 +532,15 @@ int thr_write_keys(MI_SORT_PARAM *sort_param) ...@@ -532,13 +532,15 @@ int thr_write_keys(MI_SORT_PARAM *sort_param)
while (!got_error && while (!got_error &&
!my_b_read(&sinfo->tempfile_for_exceptions,(byte*)&key_length, !my_b_read(&sinfo->tempfile_for_exceptions,(byte*)&key_length,
sizeof(key_length)) && sizeof(key_length)))
!my_b_read(&sinfo->tempfile_for_exceptions,(byte*)mergebuf,
(uint) key_length))
{ {
if (_mi_ck_write(info,sinfo->key,(uchar*) mergebuf, byte ft_buf[HA_FT_MAXLEN + HA_FT_WLEN + 10];
key_length - info->s->rec_reflength)) if (key_length > sizeof(ft_buf) ||
got_error=1; my_b_read(&sinfo->tempfile_for_exceptions, (byte*)ft_buf,
(uint)key_length) ||
_mi_ck_write(info, sinfo->key, (uchar*)ft_buf,
key_length - info->s->rec_reflength))
got_error=1;
} }
} }
} }
......
...@@ -321,3 +321,11 @@ SELECT MATCH(a) AGAINST ('nosuchword') FROM t1; ...@@ -321,3 +321,11 @@ SELECT MATCH(a) AGAINST ('nosuchword') FROM t1;
MATCH(a) AGAINST ('nosuchword') MATCH(a) AGAINST ('nosuchword')
0 0
DROP TABLE t1; DROP TABLE t1;
CREATE TABLE t1 (a VARCHAR(30), FULLTEXT(a));
INSERT INTO t1 VALUES('bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb');
SET myisam_repair_threads=2;
REPAIR TABLE t1;
Table Op Msg_type Msg_text
test.t1 repair status OK
SET myisam_repair_threads=@@global.myisam_repair_threads;
DROP TABLE t1;
...@@ -260,3 +260,14 @@ CREATE TABLE t1 ( a TEXT, FULLTEXT (a) ); ...@@ -260,3 +260,14 @@ CREATE TABLE t1 ( a TEXT, FULLTEXT (a) );
INSERT INTO t1 VALUES ('testing ft_nlq_find_relevance'); INSERT INTO t1 VALUES ('testing ft_nlq_find_relevance');
SELECT MATCH(a) AGAINST ('nosuchword') FROM t1; SELECT MATCH(a) AGAINST ('nosuchword') FROM t1;
DROP TABLE t1; DROP TABLE t1;
#
# BUG#11684 - repair crashes mysql when table has fulltext index
#
CREATE TABLE t1 (a VARCHAR(30), FULLTEXT(a));
INSERT INTO t1 VALUES('bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb');
SET myisam_repair_threads=2;
REPAIR TABLE t1;
SET myisam_repair_threads=@@global.myisam_repair_threads;
DROP TABLE t1;
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment