summaryrefslogtreecommitdiff
path: root/myisam/mi_check.c
diff options
context:
space:
mode:
authorunknown <hf@deer.(none)>2004-03-22 21:34:36 +0400
committerunknown <hf@deer.(none)>2004-03-22 21:34:36 +0400
commita0d0da6f26050d3b710ee06e539e5d2d9a201841 (patch)
tree30cfa5bc59ea5a6d511bc24ba8b8d4349d9c5d4a /myisam/mi_check.c
parentafbf1bbaa40614b965752c9c8dd2ca28c4428cb0 (diff)
downloadmariadb-git-a0d0da6f26050d3b710ee06e539e5d2d9a201841.tar.gz
Fix for #3067 (REPAIR TABLE reenables disabled keys)
myisam/mi_check.c: we only restore key_map if it's required mysql-test/r/repair_part1.result: appropriate test result mysql-test/t/repair_part1.test: test case
Diffstat (limited to 'myisam/mi_check.c')
-rw-r--r--myisam/mi_check.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/myisam/mi_check.c b/myisam/mi_check.c
index cdaed59cd01..79167a885cd 100644
--- a/myisam/mi_check.c
+++ b/myisam/mi_check.c
@@ -1274,11 +1274,12 @@ int mi_repair(MI_CHECK *param, register MI_INFO *info,
I think mi_repair and mi_repair_by_sort should do the same
(according, e.g. to ha_myisam::repair), but as mi_repair doesn't
touch key_map it cannot be used to T_CREATE_MISSING_KEYS.
- That is what the next line is for... (serg)
+ That is what the next line is for
*/
- share->state.key_map= ((((ulonglong) 1L << share->base.keys)-1) &
- param->keys_in_use);
+ if (param->testflag & T_CREATE_MISSING_KEYS)
+ share->state.key_map= ((((ulonglong) 1L << share->base.keys)-1) &
+ param->keys_in_use);
info->state->key_file_length=share->base.keystart;