Commit c2d849f8 authored by unknown's avatar unknown

Fix for BUG#2452 "Empty LOAD DATA INFILE failes with the master in 3.23.x":

do not write the Execute_load_log_event if there was no Create_file_log_event
(empty file).

parent 36d82d18
...@@ -2840,6 +2840,14 @@ static int process_io_create_file(MASTER_INFO* mi, Create_file_log_event* cev) ...@@ -2840,6 +2840,14 @@ static int process_io_create_file(MASTER_INFO* mi, Create_file_log_event* cev)
if (unlikely(!num_bytes)) /* eof */ if (unlikely(!num_bytes)) /* eof */
{ {
send_ok(net); /* 3.23 master wants it */ send_ok(net); /* 3.23 master wants it */
/*
If we wrote Create_file_log_event, then we need to write
Execute_load_log_event. If we did not write Create_file_log_event,
then this is an empty file and we can just do as if the LOAD DATA
INFILE had not existed, i.e. write nothing.
*/
if (unlikely(cev_not_written))
break;
Execute_load_log_event xev(thd,0,0); Execute_load_log_event xev(thd,0,0);
xev.log_pos = mi->master_log_pos; xev.log_pos = mi->master_log_pos;
if (unlikely(mi->rli.relay_log.append(&xev))) if (unlikely(mi->rli.relay_log.append(&xev)))
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment