From 7ccf82c0dca7240048bdbca2f25a92869ae1b444 Mon Sep 17 00:00:00 2001 From: unknown Date: Sun, 23 May 2004 14:01:52 +0200 Subject: bug in repair_by_sort of fulltext indexes that contained identical (as of mi_compare_text) words with different lengths. bug #3835 --- myisam/mi_check.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'myisam/mi_check.c') diff --git a/myisam/mi_check.c b/myisam/mi_check.c index d25ffeedff0..5f20046d1cf 100644 --- a/myisam/mi_check.c +++ b/myisam/mi_check.c @@ -3311,8 +3311,7 @@ static int sort_ft_key_write(MI_SORT_PARAM *sort_param, const void *a) } get_key_full_length_rdonly(val_off, ft_buf->lastkey); - if (val_off == a_len && - mi_compare_text(sort_param->seg->charset, + if (mi_compare_text(sort_param->seg->charset, ((uchar *)a)+1,a_len-1, ft_buf->lastkey+1,val_off-1, 0, 0)==0) { @@ -3320,11 +3319,11 @@ static int sort_ft_key_write(MI_SORT_PARAM *sort_param, const void *a) { ft_buf->count++; return sort_insert_key(sort_param,key_block, - ((uchar *)a)+val_off, HA_OFFSET_ERROR); + ((uchar *)a)+a_len, HA_OFFSET_ERROR); } /* storing the key in the buffer. */ - memcpy (ft_buf->buf, (char *)a+val_off, val_len); + memcpy (ft_buf->buf, (char *)a+a_len, val_len); ft_buf->buf+=val_len; if (ft_buf->buf < ft_buf->end) return 0; -- cgit v1.2.1