Commit 1409b9d7 authored by unknown's avatar unknown
Browse files

bug#7761 - ndb does not autocommit during alter table


sql/sql_table.cc:
  Turn off transactions before locking (as locking will need to know)
parent 3186b340
Loading
Loading
Loading
Loading
+13 −11
Original line number Diff line number Diff line
@@ -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 */