1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-30 16:24:05 +03:00

Fix for bug #136. We must write the

INSERT into u SELECT * from t
to the binlog
BEFORE unlocking t (which was read-locked at least in MyISAM),
and not the contrary.
This commit is contained in:
guilhem@mysql.com
2003-03-12 01:05:04 +01:00
parent 2be2914a82
commit 1434bc5db1

View File

@ -4469,9 +4469,16 @@ do_select(JOIN *join,List<Item> *fields,TABLE *table,Procedure *procedure)
error=0;
if (!table) // If sending data to client
{
join_free(join); // Unlock all cursors
//note that the call below may trigger binlog writing for some commands...
if (join->result->send_eof())
error= 1; // Don't send error
/*
...which must be done before unlocking the read tables (otherwise
another thread may, quickly between unlock and binlog-write,
update the read table and write to the binlog, which will
result in badly ordered binlog events (and replication breaks).
*/
join_free(join); // Unlock all cursors
}
DBUG_PRINT("info",("%ld records output",join->send_records));
}