summaryrefslogtreecommitdiff
path: root/myisam/myisampack.c
diff options
context:
space:
mode:
authorunknown <sergefp@mysql.com>2004-09-22 16:29:15 +0400
committerunknown <sergefp@mysql.com>2004-09-22 16:29:15 +0400
commit4063fd2c726a71ed0c9fd7052650f6f0feaaaac7 (patch)
treee64aeb7d8d84ed6afb7086e9cc18ee52ee1a75fe /myisam/myisampack.c
parent8bf8c8596873b534ad4a13eb73152c617c50c21b (diff)
downloadmariadb-git-4063fd2c726a71ed0c9fd7052650f6f0feaaaac7.tar.gz
Fix for BUG#4785:
* myisampack leaves key_file_length value from original table * myisamchk uses this value when calculating key file pointer length
Diffstat (limited to 'myisam/myisampack.c')
-rw-r--r--myisam/myisampack.c6
1 files changed, 5 insertions, 1 deletions
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++)