diff options
author | unknown <serg@serg.mylan> | 2003-08-27 00:58:42 +0200 |
---|---|---|
committer | unknown <serg@serg.mylan> | 2003-08-27 00:58:42 +0200 |
commit | d1be872edf3978ae2ca143392e3a9d9725117f2b (patch) | |
tree | f1f9c2789edb213193ddf1204f0bd848f3aa3d10 /myisam | |
parent | b52da698f13d30182048c30faeeaae6775ec501f (diff) | |
download | mariadb-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.c | 21 |
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))) |