summaryrefslogtreecommitdiff
path: root/myisam
diff options
context:
space:
mode:
authorunknown <serg@serg.mylan>2003-08-27 00:58:42 +0200
committerunknown <serg@serg.mylan>2003-08-27 00:58:42 +0200
commitd1be872edf3978ae2ca143392e3a9d9725117f2b (patch)
treef1f9c2789edb213193ddf1204f0bd848f3aa3d10 /myisam
parentb52da698f13d30182048c30faeeaae6775ec501f (diff)
downloadmariadb-git-d1be872edf3978ae2ca143392e3a9d9725117f2b.tar.gz
do not try to "analyze" or "sort index" in the table that has no indexes or no records if --check-only-changed option is used.
It's because such a table is never marked as "analyzed" or "sorted", so --check-only-changed doesn't work
Diffstat (limited to 'myisam')
-rw-r--r--myisam/myisamchk.c21
1 files changed, 12 insertions, 9 deletions
diff --git a/myisam/myisamchk.c b/myisam/myisamchk.c
index a41292aeb04..83edadf153f 100644
--- a/myisam/myisamchk.c
+++ b/myisam/myisamchk.c
@@ -794,15 +794,18 @@ static int myisamchk(MI_CHECK *param, my_string filename)
!(param->testflag & T_CHECK_ONLY_CHANGED))))
need_to_check=1;
- if ((param->testflag & T_STATISTICS) &&
- (share->state.changed & STATE_NOT_ANALYZED))
- need_to_check=1;
- if ((param->testflag & T_SORT_INDEX) &&
- (share->state.changed & STATE_NOT_SORTED_PAGES))
- need_to_check=1;
- if ((param->testflag & T_REP_BY_SORT) &&
- (share->state.changed & STATE_NOT_OPTIMIZED_KEYS))
- need_to_check=1;
+ if (info->s->base.keys && info->state->records)
+ {
+ if ((param->testflag & T_STATISTICS) &&
+ (share->state.changed & STATE_NOT_ANALYZED))
+ need_to_check=1;
+ if ((param->testflag & T_SORT_INDEX) &&
+ (share->state.changed & STATE_NOT_SORTED_PAGES))
+ need_to_check=1;
+ if ((param->testflag & T_REP_BY_SORT) &&
+ (share->state.changed & STATE_NOT_OPTIMIZED_KEYS))
+ need_to_check=1;
+ }
if ((param->testflag & T_CHECK_ONLY_CHANGED) &&
(share->state.changed & (STATE_CHANGED | STATE_CRASHED |
STATE_CRASHED_ON_REPAIR)))