summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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)));
}