Commit 32dff16a authored by serg@serg.mysql.com's avatar serg@serg.mysql.com

fixed repair_by_sort FULLTEXT bug

parent 0274088f
...@@ -2529,7 +2529,7 @@ static int sort_ft_key_read(MI_SORT_PARAM *sort_param, void *key) ...@@ -2529,7 +2529,7 @@ static int sort_ft_key_read(MI_SORT_PARAM *sort_param, void *key)
if (!sort_param->wordlist) if (!sort_param->wordlist)
{ {
do for (;;)
{ {
my_free((char*) wptr, MYF(MY_ALLOW_ZERO_PTR)); my_free((char*) wptr, MYF(MY_ALLOW_ZERO_PTR));
if ((error=sort_get_next_record(sort_param))) if ((error=sort_get_next_record(sort_param)))
...@@ -2537,9 +2537,10 @@ static int sort_ft_key_read(MI_SORT_PARAM *sort_param, void *key) ...@@ -2537,9 +2537,10 @@ static int sort_ft_key_read(MI_SORT_PARAM *sort_param, void *key)
if (!(wptr=_mi_ft_parserecord(info,sort_param->key, if (!(wptr=_mi_ft_parserecord(info,sort_param->key,
key,sort_param->record))) key,sort_param->record)))
DBUG_RETURN(1); DBUG_RETURN(1);
if (wptr->pos)
break;
error=sort_write_record(sort_param); error=sort_write_record(sort_param);
} }
while (!wptr->pos);
sort_param->wordptr=sort_param->wordlist=wptr; sort_param->wordptr=sort_param->wordlist=wptr;
} }
else else
...@@ -2560,6 +2561,7 @@ static int sort_ft_key_read(MI_SORT_PARAM *sort_param, void *key) ...@@ -2560,6 +2561,7 @@ static int sort_ft_key_read(MI_SORT_PARAM *sort_param, void *key)
{ {
my_free((char*) sort_param->wordlist, MYF(0)); my_free((char*) sort_param->wordlist, MYF(0));
sort_param->wordlist=0; sort_param->wordlist=0;
error=sort_write_record(sort_param);
} }
else else
sort_param->wordptr=(void*)wptr; sort_param->wordptr=(void*)wptr;
......
...@@ -203,3 +203,12 @@ select 8 from t1; ...@@ -203,3 +203,12 @@ select 8 from t1;
8 8
8 8
drop table t1; drop table t1;
drop table if exists t1;
create table t1 (a text, fulltext key (a));
insert into t1 values ('aaaa');
repair table t1;
Table Op Msg_type Msg_text
test.t1 repair status OK
select * from t1 where match (a) against ('aaaa');
a
drop table t1;
...@@ -160,3 +160,15 @@ INSERT INTO t1 VALUES (1,'my small mouse'),(2,'la-la-la'),(3,'It is so funny'),( ...@@ -160,3 +160,15 @@ INSERT INTO t1 VALUES (1,'my small mouse'),(2,'la-la-la'),(3,'It is so funny'),(
select 8 from t1; select 8 from t1;
drop table t1; drop table t1;
#
# Check bug reported by Julian Ladisch
# ERROR 1030: Got error 127 from table handler
#
drop table if exists t1;
create table t1 (a text, fulltext key (a));
insert into t1 values ('aaaa');
repair table t1;
select * from t1 where match (a) against ('aaaa');
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