Commit eca29d5f authored by Andrei Elkin's avatar Andrei Elkin

merge from 5.1 repo.

parents 5be435de 13f7f002
...@@ -784,8 +784,11 @@ Exit_status process_event(PRINT_EVENT_INFO *print_event_info, Log_event *ev, ...@@ -784,8 +784,11 @@ Exit_status process_event(PRINT_EVENT_INFO *print_event_info, Log_event *ev,
goto end; goto end;
} }
else else
{
ce->print(result_file, print_event_info, TRUE); ce->print(result_file, print_event_info, TRUE);
if (head->error == -1)
goto err;
}
// If this binlog is not 3.23 ; why this test?? // If this binlog is not 3.23 ; why this test??
if (glob_description_event->binlog_version >= 3) if (glob_description_event->binlog_version >= 3)
{ {
...@@ -836,6 +839,8 @@ Exit_status process_event(PRINT_EVENT_INFO *print_event_info, Log_event *ev, ...@@ -836,6 +839,8 @@ Exit_status process_event(PRINT_EVENT_INFO *print_event_info, Log_event *ev,
ce->print(result_file, print_event_info, TRUE); ce->print(result_file, print_event_info, TRUE);
my_free((char*)ce->fname,MYF(MY_WME)); my_free((char*)ce->fname,MYF(MY_WME));
delete ce; delete ce;
if (head->error == -1)
goto err;
} }
else else
warning("Ignoring Execute_load_log_event as there is no " warning("Ignoring Execute_load_log_event as there is no "
...@@ -890,6 +895,12 @@ Exit_status process_event(PRINT_EVENT_INFO *print_event_info, Log_event *ev, ...@@ -890,6 +895,12 @@ Exit_status process_event(PRINT_EVENT_INFO *print_event_info, Log_event *ev,
{ {
convert_path_to_forward_slashes(fname); convert_path_to_forward_slashes(fname);
exlq->print(result_file, print_event_info, fname); exlq->print(result_file, print_event_info, fname);
if (head->error == -1)
{
if (fname)
my_free(fname, MYF(MY_WME));
goto err;
}
} }
else else
warning("Ignoring Execute_load_query since there is no " warning("Ignoring Execute_load_query since there is no "
......
...@@ -430,7 +430,11 @@ process_flags: ...@@ -430,7 +430,11 @@ process_flags:
memset(buffz, '0', minimum_width - length2); memset(buffz, '0', minimum_width - length2);
else else
memset(buffz, ' ', minimum_width - length2); memset(buffz, ' ', minimum_width - length2);
my_b_write(info, buffz, minimum_width - length2); if (my_b_write(info, buffz, minimum_width - length2))
{
my_afree(buffz);
goto err;
}
my_afree(buffz); my_afree(buffz);
} }
......
...@@ -2388,7 +2388,10 @@ bool MYSQL_QUERY_LOG::write(THD *thd, time_t current_time, ...@@ -2388,7 +2388,10 @@ bool MYSQL_QUERY_LOG::write(THD *thd, time_t current_time,
{ {
end= strxmov(buff, "# administrator command: ", NullS); end= strxmov(buff, "# administrator command: ", NullS);
buff_len= (ulong) (end - buff); buff_len= (ulong) (end - buff);
my_b_write(&log_file, (uchar*) buff, buff_len); DBUG_EXECUTE_IF("simulate_slow_log_write_error",
{DBUG_SET("+d,simulate_file_write_error");});
if(my_b_write(&log_file, (uchar*) buff, buff_len))
tmp_errno= errno;
} }
if (my_b_write(&log_file, (uchar*) sql_text, sql_text_len) || if (my_b_write(&log_file, (uchar*) sql_text, sql_text_len) ||
my_b_write(&log_file, (uchar*) ";\n",2) || my_b_write(&log_file, (uchar*) ";\n",2) ||
......
...@@ -6320,6 +6320,13 @@ void Create_file_log_event::print(FILE* file, PRINT_EVENT_INFO* print_event_info ...@@ -6320,6 +6320,13 @@ void Create_file_log_event::print(FILE* file, PRINT_EVENT_INFO* print_event_info
{ {
Load_log_event::print(file, print_event_info, Load_log_event::print(file, print_event_info,
!check_fname_outside_temp_buf()); !check_fname_outside_temp_buf());
/**
reduce the size of io cache so that the write function is called
for every call to my_b_printf().
*/
DBUG_EXECUTE_IF ("simulate_create_event_write_error",
{(&cache)->write_pos= (&cache)->write_end;
DBUG_SET("+d,simulate_file_write_error");});
/* /*
That one is for "file_id: etc" below: in mysqlbinlog we want the #, in That one is for "file_id: etc" below: in mysqlbinlog we want the #, in
SHOW BINLOG EVENTS we don't. SHOW BINLOG EVENTS we don't.
...@@ -7000,6 +7007,13 @@ void Execute_load_query_log_event::print(FILE* file, ...@@ -7000,6 +7007,13 @@ void Execute_load_query_log_event::print(FILE* file,
Write_on_release_cache cache(&print_event_info->head_cache, file); Write_on_release_cache cache(&print_event_info->head_cache, file);
print_query_header(&cache, print_event_info); print_query_header(&cache, print_event_info);
/**
reduce the size of io cache so that the write function is called
for every call to my_b_printf().
*/
DBUG_EXECUTE_IF ("simulate_execute_event_write_error",
{(&cache)->write_pos= (&cache)->write_end;
DBUG_SET("+d,simulate_file_write_error");});
if (local_fname) if (local_fname)
{ {
......
...@@ -300,7 +300,7 @@ private: ...@@ -300,7 +300,7 @@ private:
public: public:
Deferred_log_events(Relay_log_info *rli); Deferred_log_events(Relay_log_info *rli);
~Deferred_log_events(); ~Deferred_log_events();
/* queue for exection at Query-log-event time prior the Query */; /* queue for exection at Query-log-event time prior the Query */
int add(Log_event *ev); int add(Log_event *ev);
bool is_empty(); bool is_empty();
bool execute(Relay_log_info *rli); bool execute(Relay_log_info *rli);
......
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