summaryrefslogtreecommitdiff
path: root/myisam
diff options
context:
space:
mode:
authorunknown <serg@sergbook.mysql.com>2002-08-07 23:11:26 +0200
committerunknown <serg@sergbook.mysql.com>2002-08-07 23:11:26 +0200
commitebdda910284fe4e6fa8d06a63dd651f5a0e298c2 (patch)
tree7225cdda5203637cb7a6352dbad50f51877fa1af /myisam
parent4af8be3bf95a0c915b1342c36a14fb9d253bcaa7 (diff)
downloadmariadb-git-ebdda910284fe4e6fa8d06a63dd651f5a0e298c2.tar.gz
one more "suboptimal memory usage during REPAIR for FULLTEXT keys" bug fixed
Diffstat (limited to 'myisam')
-rw-r--r--myisam/mi_check.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/myisam/mi_check.c b/myisam/mi_check.c
index d21bcfd1f4d..b3fc0d4a296 100644
--- a/myisam/mi_check.c
+++ b/myisam/mi_check.c
@@ -3671,12 +3671,15 @@ ha_checksum mi_byte_checksum(const byte *buf, uint length)
static my_bool mi_too_big_key_for_sort(MI_KEYDEF *key, ha_rows rows)
{
+ uint key_maxlength=key->maxlength;
+ if (key->flag & HA_FULLTEXT)
+ key_maxlength+=ft_max_word_len_for_sort-HA_FT_MAXLEN;
return (key->flag & (HA_BINARY_PACK_KEY | HA_VAR_LENGTH_KEY | HA_FULLTEXT) &&
- ((ulonglong) rows * key->maxlength >
+ ((ulonglong) rows * key_maxlength >
(ulonglong) myisam_max_temp_length ||
- (ulonglong) rows * (key->maxlength - key->minlength) / 2 >
+ (ulonglong) rows * (key_maxlength - key->minlength) / 2 >
myisam_max_extra_temp_length ||
- (rows == 0 && (key->maxlength / key->minlength) > 2)));
+ (rows == 0 && (key_maxlength / key->minlength) > 2)));
}