Commit a52a30e3 authored by anozdrin/alik@quad's avatar anozdrin/alik@quad

Patch to eliminate some valgrind warnings in debug printout code.

(originally from Mats)
parent b09af4be
...@@ -33,7 +33,10 @@ Relay_log_info::Relay_log_info() ...@@ -33,7 +33,10 @@ Relay_log_info::Relay_log_info()
:Slave_reporting_capability("SQL"), :Slave_reporting_capability("SQL"),
no_storage(FALSE), replicate_same_server_id(::replicate_same_server_id), no_storage(FALSE), replicate_same_server_id(::replicate_same_server_id),
info_fd(-1), cur_log_fd(-1), save_temporary_tables(0), info_fd(-1), cur_log_fd(-1), save_temporary_tables(0),
group_relay_log_pos(0), group_relay_log_pos(0), event_relay_log_pos(0),
#if HAVE_purify
is_fake(FALSE),
#endif
cur_log_old_open_count(0), group_master_log_pos(0), log_space_total(0), cur_log_old_open_count(0), group_master_log_pos(0), log_space_total(0),
ignore_log_space_limit(0), last_master_timestamp(0), slave_skip_counter(0), ignore_log_space_limit(0), last_master_timestamp(0), slave_skip_counter(0),
abort_pos_wait(0), slave_run_id(0), sql_thd(0), abort_pos_wait(0), slave_run_id(0), sql_thd(0),
......
...@@ -154,6 +154,10 @@ public: ...@@ -154,6 +154,10 @@ public:
ulonglong event_relay_log_pos; ulonglong event_relay_log_pos;
ulonglong future_event_relay_log_pos; ulonglong future_event_relay_log_pos;
#ifdef HAVE_purify
bool is_fake; /* Mark that this is a fake relay log info structure */
#endif
/* /*
Original log name and position of the group we're currently executing Original log name and position of the group we're currently executing
(whose coordinates are group_relay_log_name/pos in the relay log) (whose coordinates are group_relay_log_name/pos in the relay log)
......
...@@ -1892,14 +1892,19 @@ int apply_event_and_update_pos(Log_event* ev, THD* thd, Relay_log_info* rli, ...@@ -1892,14 +1892,19 @@ int apply_event_and_update_pos(Log_event* ev, THD* thd, Relay_log_info* rli,
if (exec_res == 0) if (exec_res == 0)
{ {
int error= ev->update_pos(rli); int error= ev->update_pos(rli);
char buf[22]; #ifdef HAVE_purify
DBUG_PRINT("info", ("update_pos error = %d", error)); if (!rli->is_fake)
DBUG_PRINT("info", ("group %s %s", #endif
llstr(rli->group_relay_log_pos, buf), {
rli->group_relay_log_name)); char buf[22];
DBUG_PRINT("info", ("event %s %s", DBUG_PRINT("info", ("update_pos error = %d", error));
llstr(rli->event_relay_log_pos, buf), DBUG_PRINT("info", ("group %s %s",
rli->event_relay_log_name)); llstr(rli->group_relay_log_pos, buf),
rli->group_relay_log_name));
DBUG_PRINT("info", ("event %s %s",
llstr(rli->event_relay_log_pos, buf),
rli->event_relay_log_name));
}
/* /*
The update should not fail, so print an error message and The update should not fail, so print an error message and
return an error code. return an error code.
...@@ -1909,6 +1914,7 @@ int apply_event_and_update_pos(Log_event* ev, THD* thd, Relay_log_info* rli, ...@@ -1909,6 +1914,7 @@ int apply_event_and_update_pos(Log_event* ev, THD* thd, Relay_log_info* rli,
*/ */
if (error) if (error)
{ {
char buf[22];
rli->report(ERROR_LEVEL, ER_UNKNOWN_ERROR, rli->report(ERROR_LEVEL, ER_UNKNOWN_ERROR,
"It was not possible to update the positions" "It was not possible to update the positions"
" of the relay log information: the slave may" " of the relay log information: the slave may"
......
...@@ -56,6 +56,9 @@ void mysql_client_binlog_statement(THD* thd) ...@@ -56,6 +56,9 @@ void mysql_client_binlog_statement(THD* thd)
if (!thd->rli_fake) if (!thd->rli_fake)
{ {
thd->rli_fake= new Relay_log_info; thd->rli_fake= new Relay_log_info;
#ifdef HAVE_purify
thd->rli_fake->is_fake= TRUE;
#endif
have_fd_event= FALSE; have_fd_event= FALSE;
} }
if (thd->rli_fake && !thd->rli_fake->relay_log.description_event_for_exec) if (thd->rli_fake && !thd->rli_fake->relay_log.description_event_for_exec)
......
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