Commit b19cf78c authored by unknown's avatar unknown

Merge gbichot@bk-internal.mysql.com:/home/bk/mysql-4.0

into mysql.com:/home/mysql_src/mysql-4.0
parents 203c4674 f1446eac
...@@ -843,7 +843,7 @@ void MYSQL_LOG::new_file(bool need_lock) ...@@ -843,7 +843,7 @@ void MYSQL_LOG::new_file(bool need_lock)
We log the whole file name for log file as the user may decide We log the whole file name for log file as the user may decide
to change base names at some point. to change base names at some point.
*/ */
THD* thd = current_thd; THD* thd = current_thd; /* may be 0 if we are reacting to SIGHUP */
Rotate_log_event r(thd,new_name+dirname_length(new_name)); Rotate_log_event r(thd,new_name+dirname_length(new_name));
r.set_log_pos(this); r.set_log_pos(this);
...@@ -852,7 +852,7 @@ void MYSQL_LOG::new_file(bool need_lock) ...@@ -852,7 +852,7 @@ void MYSQL_LOG::new_file(bool need_lock)
the slave running with log-bin, we set the flag on rotate the slave running with log-bin, we set the flag on rotate
event to prevent infinite log rotation loop event to prevent infinite log rotation loop
*/ */
if (thd->slave_thread) if (thd && thd->slave_thread)
r.flags|= LOG_EVENT_FORCED_ROTATE_F; r.flags|= LOG_EVENT_FORCED_ROTATE_F;
r.write(&log_file); r.write(&log_file);
bytes_written += r.get_event_len(); bytes_written += r.get_event_len();
......
...@@ -128,7 +128,12 @@ Log_event::Log_event(THD* thd_arg, uint16 flags_arg, bool using_trans) ...@@ -128,7 +128,12 @@ Log_event::Log_event(THD* thd_arg, uint16 flags_arg, bool using_trans)
(thd->options & (OPTION_NOT_AUTOCOMMIT | OPTION_BEGIN))); (thd->options & (OPTION_NOT_AUTOCOMMIT | OPTION_BEGIN)));
} }
/*
This minimal constructor is for when you are not even sure that there is a
valid THD. For example in the server when we are shutting down or flushing
logs after receiving a SIGHUP (then we must write a Rotate to the binlog but
we have no THD, so we need this minimal constructor).
*/
Log_event::Log_event() Log_event::Log_event()
:temp_buf(0), exec_time(0), cached_event_len(0), flags(0), cache_stmt(0), :temp_buf(0), exec_time(0), cached_event_len(0), flags(0), cache_stmt(0),
thd(0) thd(0)
......
...@@ -607,7 +607,7 @@ class Rotate_log_event: public Log_event ...@@ -607,7 +607,7 @@ class Rotate_log_event: public Log_event
Rotate_log_event(THD* thd_arg, const char* new_log_ident_arg, Rotate_log_event(THD* thd_arg, const char* new_log_ident_arg,
uint ident_len_arg = 0, uint ident_len_arg = 0,
ulonglong pos_arg = LOG_EVENT_OFFSET) ulonglong pos_arg = LOG_EVENT_OFFSET)
:Log_event(thd_arg,0,0), new_log_ident(new_log_ident_arg), :Log_event(), new_log_ident(new_log_ident_arg),
pos(pos_arg),ident_len(ident_len_arg ? ident_len_arg : pos(pos_arg),ident_len(ident_len_arg ? ident_len_arg :
(uint) strlen(new_log_ident_arg)), alloced(0) (uint) strlen(new_log_ident_arg)), alloced(0)
{} {}
......
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