sql_delete.cc:

Fix bug: if a DELETE failed in a FOREIGN KEY error and it had already deleted some rows, then MySQL did not roll back the failed SQL statement, and also wrote it to the binlog
This commit is contained in:
heikki@hundin.mysql.fi 2003-07-07 16:39:53 +03:00
parent e386d0e126
commit ea8ed30f03

View File

@ -145,7 +145,12 @@ int mysql_delete(THD *thd, TABLE_LIST *table_list, COND *conds, ORDER *order,
else
{
table->file->print_error(error,MYF(0));
error=0;
error=1; /* In < 4.0.14 we set the error number to 0 here, but that
was not sensible, because then MySQL would not roll back the
failed DELETE, and also wrote it to the binlog. For MyISAM
tables a DELETE probably never should fail (?), but for
InnoDB it can fail in a FOREIGN KEY error or an
out-of-tablespace error. (Comment by Heikki July 7, 2003) */
break;
}
}