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

fixed repair_by_sort FULLTEXT bug

parent 0274088f
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -2529,7 +2529,7 @@ static int sort_ft_key_read(MI_SORT_PARAM *sort_param, void *key)

  if (!sort_param->wordlist)
  {
    do
    for (;;)
    {
      my_free((char*) wptr, MYF(MY_ALLOW_ZERO_PTR));
      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)
      if (!(wptr=_mi_ft_parserecord(info,sort_param->key,
                                     key,sort_param->record)))
        DBUG_RETURN(1);
      if (wptr->pos)
        break;
      error=sort_write_record(sort_param);
    }
    while (!wptr->pos);
    sort_param->wordptr=sort_param->wordlist=wptr;
  }
  else
@@ -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));
    sort_param->wordlist=0;
    error=sort_write_record(sort_param);
  }
  else
    sort_param->wordptr=(void*)wptr;
+9 −0
Original line number Diff line number Diff line
@@ -203,3 +203,12 @@ select 8 from t1;
8
8
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;
+12 −0
Original line number Diff line number Diff line
@@ -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;
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;