diff options
-rw-r--r-- | Docs/manual.texi | 2 | ||||
-rw-r--r-- | myisam/mi_check.c | 3 | ||||
-rw-r--r-- | myisam/myisamchk.c | 7 |
3 files changed, 10 insertions, 2 deletions
diff --git a/Docs/manual.texi b/Docs/manual.texi index a6bb92b9ed7..87b6ccf7d02 100644 --- a/Docs/manual.texi +++ b/Docs/manual.texi @@ -40039,6 +40039,8 @@ though, so Version 3.23 is not released as a stable version yet. @appendixsubsec Changes in release 3.23.30 @itemize @bullet @item +Fixed that @code{myisamchk -k#} works again. +@item Fixed a problem with replication when the binary log file went over 2G on 32 bit systems. @item diff --git a/myisam/mi_check.c b/myisam/mi_check.c index cbfc5d3878c..b394fb25e97 100644 --- a/myisam/mi_check.c +++ b/myisam/mi_check.c @@ -1182,7 +1182,8 @@ int mi_repair(MI_CHECK *param, register MI_INFO *info, That is the next line for... (serg) */ - share->state.key_map= ((ulonglong)1L << share->base.keys)-1; + share->state.key_map= (((ulonglong) 1L << share->base.keys)-1 & + param->keys_in_use); info->state->key_file_length=share->base.keystart; diff --git a/myisam/myisamchk.c b/myisam/myisamchk.c index 1201b7b6657..cb463e338bb 100644 --- a/myisam/myisamchk.c +++ b/myisam/myisamchk.c @@ -200,7 +200,7 @@ static struct option long_options[] = static void print_version(void) { - printf("%s Ver 1.38 for %s at %s\n",my_progname,SYSTEM_TYPE, + printf("%s Ver 1.39 for %s at %s\n",my_progname,SYSTEM_TYPE, MACHINE_TYPE); } @@ -651,8 +651,13 @@ static int myisamchk(MI_CHECK *param, my_string filename) if (param->testflag & (T_REP+T_REP_BY_SORT+T_SORT_RECORDS+T_SORT_INDEX)) { if (param->testflag & (T_REP+T_REP_BY_SORT)) + { + ulonglong tmp=share->state.key_map; share->state.key_map= (((ulonglong) 1 << share->base.keys)-1) & param->keys_in_use; + if (tmp != share->state.key_map) + info->update|=HA_STATE_CHANGED; + } VOID(fn_format(fixed_name,filename,"",MI_NAME_IEXT, 4+ (param->opt_follow_links ? 16 : 0))); |