summaryrefslogtreecommitdiff
path: root/myisam/mi_check.c
diff options
context:
space:
mode:
authorserg@serg.mysql.com <>2002-10-09 18:57:13 +0000
committerserg@serg.mysql.com <>2002-10-09 18:57:13 +0000
commit32dff16a7294a06b557bfcde4c1c267bc6d434d5 (patch)
treef591efba5b54649f79593c0ab2fbbd3bd28179b1 /myisam/mi_check.c
parent0274088f02a6ba71a2b28b9c91ab9211f28bd5e9 (diff)
downloadmariadb-git-32dff16a7294a06b557bfcde4c1c267bc6d434d5.tar.gz
fixed repair_by_sort FULLTEXT bug
Diffstat (limited to 'myisam/mi_check.c')
-rw-r--r--myisam/mi_check.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/myisam/mi_check.c b/myisam/mi_check.c
index 4669566fc8f..9e591325c1c 100644
--- a/myisam/mi_check.c
+++ b/myisam/mi_check.c
@@ -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;