summaryrefslogtreecommitdiff
path: root/myisam
diff options
context:
space:
mode:
authorunknown <igor@rurik.mysql.com>2005-08-02 12:09:49 -0700
committerunknown <igor@rurik.mysql.com>2005-08-02 12:09:49 -0700
commite039e9ecdab80c8cdbc47ef18acbfe696e60c177 (patch)
treefda6ff51b26035e9a98ce70509ddd925d7e54b59 /myisam
parent0c2b4b28cf850398d89cdba1ea69c952355545c6 (diff)
parent89b8763d5101db7388152c2067413241b537c95d (diff)
downloadmariadb-git-e039e9ecdab80c8cdbc47ef18acbfe696e60c177.tar.gz
Manual merge
myisam/sort.c: Auto merged mysql-test/r/fulltext.result: Auto merged mysql-test/t/fulltext.test: Auto merged sql/sql_select.cc: Auto merged strings/ctype-big5.c: Auto merged
Diffstat (limited to 'myisam')
-rw-r--r--myisam/sort.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/myisam/sort.c b/myisam/sort.c
index f2f8c8ef7ec..fabd713ef45 100644
--- a/myisam/sort.c
+++ b/myisam/sort.c
@@ -587,13 +587,15 @@ int thr_write_keys(MI_SORT_PARAM *sort_param)
while (!got_error &&
!my_b_read(&sinfo->tempfile_for_exceptions,(byte*)&key_length,
- sizeof(key_length)) &&
- !my_b_read(&sinfo->tempfile_for_exceptions,(byte*)mergebuf,
- (uint) key_length))
+ sizeof(key_length)))
{
- if (_mi_ck_write(info,sinfo->key,(uchar*) mergebuf,
- key_length - info->s->rec_reflength))
- got_error=1;
+ byte ft_buf[HA_FT_MAXBYTELEN + HA_FT_WLEN + 10];
+ if (key_length > sizeof(ft_buf) ||
+ my_b_read(&sinfo->tempfile_for_exceptions, (byte*)ft_buf,
+ (uint)key_length) ||
+ _mi_ck_write(info, sinfo->key, (uchar*)ft_buf,
+ key_length - info->s->rec_reflength))
+ got_error=1;
}
}
}