Commit c9f7f0ff authored by joreland@mysql.com's avatar joreland@mysql.com

bug#7761 - ndb does not autocommit during alter table

parent 50c3a883
...@@ -3447,6 +3447,19 @@ copy_data_between_tables(TABLE *from,TABLE *to, ...@@ -3447,6 +3447,19 @@ copy_data_between_tables(TABLE *from,TABLE *to,
if (!(copy= new Copy_field[to->fields])) if (!(copy= new Copy_field[to->fields]))
DBUG_RETURN(-1); /* purecov: inspected */ DBUG_RETURN(-1); /* purecov: inspected */
/*
Turn off recovery logging since rollback of an alter table is to
delete the new table so there is no need to log the changes to it.
This needs to be done before external_lock
*/
error= ha_enable_transaction(thd,FALSE);
if (error)
{
DBUG_RETURN(-1);
}
if (to->file->external_lock(thd, F_WRLCK)) if (to->file->external_lock(thd, F_WRLCK))
DBUG_RETURN(-1); DBUG_RETURN(-1);
from->file->info(HA_STATUS_VARIABLE); from->file->info(HA_STATUS_VARIABLE);
...@@ -3502,17 +3515,6 @@ copy_data_between_tables(TABLE *from,TABLE *to, ...@@ -3502,17 +3515,6 @@ copy_data_between_tables(TABLE *from,TABLE *to,
goto err; goto err;
}; };
/*
Turn off recovery logging since rollback of an alter table is to
delete the new table so there is no need to log the changes to it.
*/
error= ha_enable_transaction(thd,FALSE);
if (error)
{
error= 1;
goto err;
}
/* Handler must be told explicitly to retrieve all columns, because /* Handler must be told explicitly to retrieve all columns, because
this function does not set field->query_id in the columns to the this function does not set field->query_id in the columns to the
current query id */ current query id */
......
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