summaryrefslogtreecommitdiff
path: root/myisam
diff options
context:
space:
mode:
Diffstat (limited to 'myisam')
-rw-r--r--myisam/mi_packrec.c20
1 files changed, 14 insertions, 6 deletions
diff --git a/myisam/mi_packrec.c b/myisam/mi_packrec.c
index bd2d162d100..0edb3ac1d5d 100644
--- a/myisam/mi_packrec.c
+++ b/myisam/mi_packrec.c
@@ -16,7 +16,7 @@
/* Functions to compressed records */
-#include "myisamdef.h"
+#include "fulltext.h"
#define IS_CHAR ((uint) 32768) /* Bit if char (not offset) in tree */
@@ -228,11 +228,19 @@ my_bool _mi_read_pack_info(MI_INFO *info, pbool fix_keys)
{
for (i=0 ; i < share->base.keys ; i++)
{
- share->keyinfo[i].keylength+=(uint16) diff_length;
- share->keyinfo[i].minlength+=(uint16) diff_length;
- share->keyinfo[i].maxlength+=(uint16) diff_length;
- share->keyinfo[i].seg[share->keyinfo[i].keysegs].length=
- (uint16) rec_reflength;
+ MI_KEYDEF *keyinfo= &share->keyinfo[i];
+ keyinfo->keylength+= (uint16) diff_length;
+ keyinfo->minlength+= (uint16) diff_length;
+ keyinfo->maxlength+= (uint16) diff_length;
+ keyinfo->seg[keyinfo->flag & HA_FULLTEXT ?
+ FT_SEGS : keyinfo->keysegs].length= (uint16) rec_reflength;
+ }
+ if (share->ft2_keyinfo.seg)
+ {
+ MI_KEYDEF *ft2_keyinfo= &share->ft2_keyinfo;
+ ft2_keyinfo->keylength+= (uint16) diff_length;
+ ft2_keyinfo->minlength+= (uint16) diff_length;
+ ft2_keyinfo->maxlength+= (uint16) diff_length;
}
}