summaryrefslogtreecommitdiff
path: root/myisam
diff options
context:
space:
mode:
authorunknown <serg@infomag.ape.relarn.ru>2000-08-17 19:43:38 +0400
committerunknown <serg@infomag.ape.relarn.ru>2000-08-17 19:43:38 +0400
commit340794dd2991246daf964e95067309c3183aa86a (patch)
tree61fefc80eb0d424581f37b4ef5afc273ddae58af /myisam
parentf02d7772d9a18c312fba536784511f6858f0706f (diff)
parentf70441c7c37b323dab2d93cfaaa43c9b0be39ef3 (diff)
downloadmariadb-git-340794dd2991246daf964e95067309c3183aa86a.tar.gz
Merge
sql/handler.h: Auto merged BitKeeper/etc/logging_ok: Auto merged
Diffstat (limited to 'myisam')
-rw-r--r--myisam/mi_check.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/myisam/mi_check.c b/myisam/mi_check.c
index 82524334886..50225cd71cb 100644
--- a/myisam/mi_check.c
+++ b/myisam/mi_check.c
@@ -339,7 +339,14 @@ int chk_key(MI_CHECK *param, register MI_INFO *info)
{
param->key_crc[key]=0;
if (!(((ulonglong) 1 << key) & share->state.key_map))
+ {
+ /* Remember old statistics for key */
+ memcpy((char*) rec_per_key_part,
+ (char*) share->state.rec_per_key_part+
+ (uint) (rec_per_key_part - param->rec_per_key_part),
+ keyinfo->keysegs*sizeof(*rec_per_key_part));
continue;
+ }
found_keys++;
param->record_checksum=init_checksum;
@@ -1730,7 +1737,14 @@ int mi_repair_by_sort(MI_CHECK *param, register MI_INFO *info,
{
sort_info->keyinfo=share->keyinfo+sort_info->key;
if (!(((ulonglong) 1 << sort_info->key) & key_map))
+ {
+ /* Remember old statistics for key */
+ memcpy((char*) rec_per_key_part,
+ (char*) share->state.rec_per_key_part+
+ (uint) (rec_per_key_part - param->rec_per_key_part),
+ sort_info->keyinfo->keysegs*sizeof(*rec_per_key_part));
continue;
+ }
if ((!(param->testflag & T_SILENT)))
printf ("- Fixing index %d\n",sort_info->key+1);