diff options
author | unknown <serg@serg.mylan> | 2004-05-23 14:01:52 +0200 |
---|---|---|
committer | unknown <serg@serg.mylan> | 2004-05-23 14:01:52 +0200 |
commit | 7ccf82c0dca7240048bdbca2f25a92869ae1b444 (patch) | |
tree | 3229e90ec073567e299a4726e7374397ba9c7d8f /myisam/mi_check.c | |
parent | c38885fd3a5184caa8bedb5aa85bdf821fef4d81 (diff) | |
download | mariadb-git-7ccf82c0dca7240048bdbca2f25a92869ae1b444.tar.gz |
bug in repair_by_sort of fulltext indexes that contained identical
(as of mi_compare_text) words with different lengths.
bug #3835
Diffstat (limited to 'myisam/mi_check.c')
-rw-r--r-- | myisam/mi_check.c | 7 |
1 files changed, 3 insertions, 4 deletions
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; |