Commit 4ebb96c6 authored by unknown's avatar unknown

better fix for OPTIMIZE bug

parent 3a58dc5a
...@@ -617,16 +617,12 @@ int ha_myisam::repair(THD *thd, MI_CHECK &param, bool optimize) ...@@ -617,16 +617,12 @@ int ha_myisam::repair(THD *thd, MI_CHECK &param, bool optimize)
STATE_CRASHED_ON_REPAIR); STATE_CRASHED_ON_REPAIR);
file->update|=HA_STATE_CHANGED | HA_STATE_ROW_CHANGED; file->update|=HA_STATE_CHANGED | HA_STATE_ROW_CHANGED;
} }
/* Here we need to make file->save_state and file->s->state.state /*
equal. Unfortunately, sometime table comes locked here (so the following 'if', thought conceptually wrong,
file->save_state represents actual table state), and sometime is a useful optimization nevertheless.
unlocked (and actual is file->s->state.state instead). This all
is very confusing, and should be streamlined (TODO).
*/ */
if (file->state == & file->save_state) if (file->state != &file->s->state.state);
file->s->state.state=file->save_state; file->s->state.state = *file->state;
else
file->save_state=file->s->state.state;
if (file->s->base.auto_key) if (file->s->base.auto_key)
update_auto_increment_key(&param, file, 1); update_auto_increment_key(&param, file, 1);
if (optimize_done) if (optimize_done)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment