Commit 6221e0de authored by unknown's avatar unknown

WL#1900 "When CHECK TABLE or ANALYZE TABLE of a MyISAM table is killed

by KILL or shutdown, do not mark the table as corrupted".
It is indeed more logical to leave the corruption flag unchanged.
This cannot be extended to REPAIR/OPTIMIZE as they make no backup copy
of the MYI. This patch was tested with KILL and mysqladmin shutdown
while a CHECK TABLE was running. Without the patch, the table becomes
unusable (can't INSERT to it, error 145). With the patch, no.


sql/ha_myisam.cc:
  When CHECK TABLE or ANALYZE TABLE is killed by KILL,
  do not mark the table corrupted; leave its corruption flag
  unchanged.
parent 80e00573
......@@ -336,7 +336,7 @@ int ha_myisam::check(THD* thd, HA_CHECK_OPT* check_opt)
HA_STATUS_CONST);
}
}
else if (!mi_is_crashed(file))
else if (!mi_is_crashed(file) && !thd->killed)
{
mi_mark_crashed(file);
file->update |= HA_STATE_CHANGED | HA_STATE_ROW_CHANGED;
......@@ -378,7 +378,7 @@ int ha_myisam::analyze(THD *thd, HA_CHECK_OPT* check_opt)
error=update_state_info(&param,file,UPDATE_STAT);
pthread_mutex_unlock(&share->intern_lock);
}
else if (!mi_is_crashed(file))
else if (!mi_is_crashed(file) && !thd->killed)
mi_mark_crashed(file);
return error ? HA_ADMIN_CORRUPT : HA_ADMIN_OK;
}
......
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