summaryrefslogtreecommitdiff
path: root/sql
diff options
context:
space:
mode:
authorunknown <joreland@mysql.com>2005-01-10 11:20:01 +0100
committerunknown <joreland@mysql.com>2005-01-10 11:20:01 +0100
commitb4871e2973843465c69cd0f6a781a5df0e6553f3 (patch)
treef1254feb11d2d58f94216457961f7998471cb777 /sql
parentf8f7888b5ce63d363907d3ddb66b9900af92cd10 (diff)
parent1409b9d7ae030a80aec13939f008c50653b4a32a (diff)
downloadmariadb-git-b4871e2973843465c69cd0f6a781a5df0e6553f3.tar.gz
Merge joreland@bk-internal.mysql.com:/home/bk/mysql-4.1
into mysql.com:/home/jonas/src/mysql-4.1
Diffstat (limited to 'sql')
-rw-r--r--sql/sql_table.cc24
1 files changed, 13 insertions, 11 deletions
diff --git a/sql/sql_table.cc b/sql/sql_table.cc
index 43f466282b1..52f178946c4 100644
--- a/sql/sql_table.cc
+++ b/sql/sql_table.cc
@@ -3447,6 +3447,19 @@ copy_data_between_tables(TABLE *from,TABLE *to,
if (!(copy= new Copy_field[to->fields]))
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))
DBUG_RETURN(-1);
from->file->info(HA_STATUS_VARIABLE);
@@ -3502,17 +3515,6 @@ copy_data_between_tables(TABLE *from,TABLE *to,
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
this function does not set field->query_id in the columns to the
current query id */