Commit 5ab7b94b authored by unknown's avatar unknown

row0mysql.c:

  Allow CREATE TABLE and DROP TABLE even if innodb_force_recovery is used, the user can drop a problematic table


innobase/row/row0mysql.c:
  Allow CREATE TABLE and DROP TABLE even if innodb_force_recovery is used, the user can drop a problematic table
parent 686a758f
......@@ -1186,7 +1186,12 @@ row_create_table_for_mysql(
ut_ad(trx->mysql_thread_id == os_thread_get_curr_id());
ut_ad(mutex_own(&(dict_sys->mutex)));
if (srv_created_new_raw || srv_force_recovery) {
/* We create table also if innodb_force_recovery is used. This
enables the user to stop a runaway rollback or a crash caused by
a temporary table #sql... He can use the trick explained in the
manual to rename the temporary table, and the drop it. */
if (srv_created_new_raw) {
fprintf(stderr,
"InnoDB: A new raw disk partition was initialized or\n"
"InnoDB: innodb_force_recovery is on: we do not allow\n"
......@@ -1705,7 +1710,13 @@ row_drop_table_for_mysql(
ut_ad(trx->mysql_thread_id == os_thread_get_curr_id());
ut_a(name != NULL);
if (srv_created_new_raw || srv_force_recovery) {
/* Note that we allow dropping of a table even if innodb_force_recovery
is used. If a rollback or purge would crash because of a corrupt
table, the user can try dropping it to avoid the crash. This is also
a nice way to stop a runaway rollback caused by a failing big
table import in a single transaction. */
if (srv_created_new_raw) {
fprintf(stderr,
"InnoDB: A new raw disk partition was initialized or\n"
"InnoDB: innodb_force_recovery is on: we do not allow\n"
......
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