summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Docs/manual.texi2
-rw-r--r--myisam/mi_check.c3
-rw-r--r--myisam/myisamchk.c7
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)));