diff options
author | unknown <hf@deer.(none)> | 2004-03-22 21:34:36 +0400 |
---|---|---|
committer | unknown <hf@deer.(none)> | 2004-03-22 21:34:36 +0400 |
commit | a0d0da6f26050d3b710ee06e539e5d2d9a201841 (patch) | |
tree | 30cfa5bc59ea5a6d511bc24ba8b8d4349d9c5d4a /myisam/mi_check.c | |
parent | afbf1bbaa40614b965752c9c8dd2ca28c4428cb0 (diff) | |
download | mariadb-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.c | 7 |
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; |