summaryrefslogtreecommitdiff
path: root/myisam/myisampack.c
diff options
context:
space:
mode:
authorsergefp@mysql.com <>2004-09-22 16:29:15 +0400
committersergefp@mysql.com <>2004-09-22 16:29:15 +0400
commit6e0ba8e615a7d58277dd4b78def08c7af02c3a10 (patch)
treee64aeb7d8d84ed6afb7086e9cc18ee52ee1a75fe /myisam/myisampack.c
parent78fa3aeff4ee40212ccc28d87aa8031fb1773bdf (diff)
downloadmariadb-git-6e0ba8e615a7d58277dd4b78def08c7af02c3a10.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++)