From 4063fd2c726a71ed0c9fd7052650f6f0feaaaac7 Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 22 Sep 2004 16:29:15 +0400 Subject: Fix for BUG#4785: * myisampack leaves key_file_length value from original table * myisamchk uses this value when calculating key file pointer length --- myisam/myisampack.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'myisam/myisampack.c') diff --git a/myisam/myisampack.c b/myisam/myisampack.c index 872fcb49faf..4b784641266 100644 --- a/myisam/myisampack.c +++ b/myisam/myisampack.c @@ -2041,7 +2041,11 @@ static int save_state(MI_INFO *isam_file,PACK_MRG_INFO *mrg,my_off_t new_length, share->state.split=(ha_rows) mrg->records; share->state.version=(ulong) time((time_t*) 0); share->state.key_map=0; - share->state.state.key_file_length=share->base.keystart; + /* + Don't save key_file_length here, keep key_file_length of original file + so "myisamchk -rq" can use this value (this is necessary because index + size cannot be easily calculated for fulltext keys) + */ for (key=0 ; key < share->base.keys ; key++) share->state.key_root[key]= HA_OFFSET_ERROR; for (key=0 ; key < share->state.header.max_block_size ; key++) -- cgit v1.2.1