summaryrefslogtreecommitdiff
path: root/sql
diff options
context:
space:
mode:
authorunknown <anozdrin/alik@quad.>2008-02-11 14:04:30 +0300
committerunknown <anozdrin/alik@quad.>2008-02-11 14:04:30 +0300
commit6f6fabb7f97db7e9b8a5efaa2cd337b34fdf9161 (patch)
tree245386a409758cdb35cd88571871356935b68bd3 /sql
parentf1f2bd8c0dcade435e117bf922d4882b7ad23188 (diff)
downloadmariadb-git-6f6fabb7f97db7e9b8a5efaa2cd337b34fdf9161.tar.gz
Patch to eliminate some valgrind warnings in debug printout code.
(originally from Mats) sql/rpl_rli.cc: Adding variable to mark an instance of Relay_log_info as fake. sql/rpl_rli.h: Adding variable to mark an instance of Relay_log_info as fake. sql/slave.cc: Not printing debug information if we are working with a fake instance of Relay_log_info. This because the result of calling update is nonsense, and trying to print it generates valgrind warnings. sql/sql_binlog.cc: Marking newly created instance of Relay_log_info as a fake instance.
Diffstat (limited to 'sql')
-rw-r--r--sql/rpl_rli.cc5
-rw-r--r--sql/rpl_rli.h4
-rw-r--r--sql/slave.cc22
-rw-r--r--sql/sql_binlog.cc3
4 files changed, 25 insertions, 9 deletions
diff --git a/sql/rpl_rli.cc b/sql/rpl_rli.cc
index 3e9a484126a..03f790b934f 100644
--- a/sql/rpl_rli.cc
+++ b/sql/rpl_rli.cc
@@ -33,7 +33,10 @@ Relay_log_info::Relay_log_info()
:Slave_reporting_capability("SQL"),
no_storage(FALSE), replicate_same_server_id(::replicate_same_server_id),
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),
ignore_log_space_limit(0), last_master_timestamp(0), slave_skip_counter(0),
abort_pos_wait(0), slave_run_id(0), sql_thd(0),
diff --git a/sql/rpl_rli.h b/sql/rpl_rli.h
index a3a57ad4ce9..36daffae1af 100644
--- a/sql/rpl_rli.h
+++ b/sql/rpl_rli.h
@@ -154,6 +154,10 @@ public:
ulonglong 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
(whose coordinates are group_relay_log_name/pos in the relay log)
diff --git a/sql/slave.cc b/sql/slave.cc
index 4ffc2023e85..c76e7c75a56 100644
--- a/sql/slave.cc
+++ b/sql/slave.cc
@@ -1892,14 +1892,19 @@ int apply_event_and_update_pos(Log_event* ev, THD* thd, Relay_log_info* rli,
if (exec_res == 0)
{
int error= ev->update_pos(rli);
- char buf[22];
- DBUG_PRINT("info", ("update_pos error = %d", error));
- DBUG_PRINT("info", ("group %s %s",
- 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));
+#ifdef HAVE_purify
+ if (!rli->is_fake)
+#endif
+ {
+ char buf[22];
+ DBUG_PRINT("info", ("update_pos error = %d", error));
+ DBUG_PRINT("info", ("group %s %s",
+ 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
return an error code.
@@ -1909,6 +1914,7 @@ int apply_event_and_update_pos(Log_event* ev, THD* thd, Relay_log_info* rli,
*/
if (error)
{
+ char buf[22];
rli->report(ERROR_LEVEL, ER_UNKNOWN_ERROR,
"It was not possible to update the positions"
" of the relay log information: the slave may"
diff --git a/sql/sql_binlog.cc b/sql/sql_binlog.cc
index 04f408453ea..f1fbe6eb4b7 100644
--- a/sql/sql_binlog.cc
+++ b/sql/sql_binlog.cc
@@ -56,6 +56,9 @@ void mysql_client_binlog_statement(THD* thd)
if (!thd->rli_fake)
{
thd->rli_fake= new Relay_log_info;
+#ifdef HAVE_purify
+ thd->rli_fake->is_fake= TRUE;
+#endif
have_fd_event= FALSE;
}
if (thd->rli_fake && !thd->rli_fake->relay_log.description_event_for_exec)