Commit c121a735 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 da3e63e1 a50761a5
...@@ -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 @@ public: ...@@ -607,7 +607,7 @@ public:
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