diff options
Diffstat (limited to 'sql/log_event.cc')
-rw-r--r-- | sql/log_event.cc | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/sql/log_event.cc b/sql/log_event.cc index bffaa9ee554..ee1b865597d 100644 --- a/sql/log_event.cc +++ b/sql/log_event.cc @@ -1351,9 +1351,9 @@ int Log_event::read_log_event(IO_CACHE* file, String* packet, if (packet->append(file, data_len)) { /* - Fatal error occured when appending rest of the event + Fatal error occurred when appending rest of the event to packet, possible failures: - 1. EOF occured when reading from file, it's really an error + 1. EOF occurred when reading from file, it's really an error as data_len is >=0 there's supposed to be more bytes available. file->error will have been set to number of bytes left to read 2. Read was interrupted, file->error would normally be set to -1 @@ -11491,7 +11491,10 @@ Rows_log_event::write_row(rpl_group_info *rgi, /* unpack row into table->record[0] */ if ((error= unpack_current_row(rgi))) + { + table->file->print_error(error, MYF(0)); DBUG_RETURN(error); + } if (m_curr_row == m_rows_buf && !invoke_triggers) { @@ -12602,8 +12605,8 @@ Update_rows_log_event::do_exec_row(rpl_group_info *rgi) We need to read the second image in the event of error to be able to skip to the next pair of updates */ - m_curr_row= m_curr_row_end; - unpack_current_row(rgi); + if ((m_curr_row= m_curr_row_end)) + unpack_current_row(rgi); return error; } |