1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-01 03:47:19 +03:00

BUG#17233 : LOAD DATA INFILE: failure causes mysqld dbug_assert, binlog not flushed

This patch corrects a bug involving a LOAD DATA INFILE operation on a 
transactional table. It corrects a problem in the error handler moving
the transactional table check and autocommit_or_rollback operation to the 
end of the error handler. An additional test case was added to detect this
condition.
This commit is contained in:
cbell/Chuck@mysql_cab.
2007-05-07 20:43:19 -04:00
parent f4c4de6a56
commit 41b8ddc873
3 changed files with 19 additions and 3 deletions

View File

@ -414,9 +414,6 @@ bool mysql_load(THD *thd,sql_exchange *ex,TABLE_LIST *table_list,
if (error)
{
if (transactional_table)
ha_autocommit_or_rollback(thd,error);
if (read_file_from_client)
while (!read_info.next_line())
;
@ -460,6 +457,9 @@ bool mysql_load(THD *thd,sql_exchange *ex,TABLE_LIST *table_list,
}
}
#endif /*!EMBEDDED_LIBRARY*/
if (transactional_table)
ha_autocommit_or_rollback(thd,error);
error= -1; // Error on read
goto err;
}