Fixed cleanup_load_tmpdir() which deleted nothing.
sql/log_event.cc: - cleanup_load_tmpdir() did not work at all because it forgot to indicate the directory part of the path when calling my_delete(). - A misplaced R_POS_OFFSET (fortunately this was no bug as this constant is 0). sql/sql_repl.cc: - fix fake_rotate_event() for pos>4G (correction of a change I pushed yesterday).
This commit is contained in:
parent
5c9b87ce08
commit
f403da4bf2
@ -168,12 +168,15 @@ static void cleanup_load_tmpdir()
|
|||||||
uint i;
|
uint i;
|
||||||
if (!(dirp=my_dir(slave_load_tmpdir,MYF(MY_WME))))
|
if (!(dirp=my_dir(slave_load_tmpdir,MYF(MY_WME))))
|
||||||
return;
|
return;
|
||||||
|
char fname[FN_REFLEN];
|
||||||
for (i=0 ; i < (uint)dirp->number_off_files; i++)
|
for (i=0 ; i < (uint)dirp->number_off_files; i++)
|
||||||
{
|
{
|
||||||
file=dirp->dir_entry+i;
|
file=dirp->dir_entry+i;
|
||||||
if (is_prefix(file->name,"SQL_LOAD-"))
|
if (is_prefix(file->name,"SQL_LOAD-"))
|
||||||
my_delete(file->name, MYF(0));
|
{
|
||||||
|
fn_format(fname,file->name,slave_load_tmpdir,"",0);
|
||||||
|
my_delete(fname, MYF(0));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
my_dirend(dirp);
|
my_dirend(dirp);
|
||||||
@ -813,7 +816,7 @@ Rotate_log_event::Rotate_log_event(const char* buf, int event_len,
|
|||||||
int Rotate_log_event::write_data(IO_CACHE* file)
|
int Rotate_log_event::write_data(IO_CACHE* file)
|
||||||
{
|
{
|
||||||
char buf[ROTATE_HEADER_LEN];
|
char buf[ROTATE_HEADER_LEN];
|
||||||
int8store(buf, pos + R_POS_OFFSET);
|
int8store(buf + R_POS_OFFSET, pos);
|
||||||
return (my_b_safe_write(file, (byte*)buf, ROTATE_HEADER_LEN) ||
|
return (my_b_safe_write(file, (byte*)buf, ROTATE_HEADER_LEN) ||
|
||||||
my_b_safe_write(file, (byte*)new_log_ident, (uint) ident_len));
|
my_b_safe_write(file, (byte*)new_log_ident, (uint) ident_len));
|
||||||
}
|
}
|
||||||
|
@ -68,9 +68,12 @@ static int fake_rotate_event(NET* net, String* packet, char* log_file_name,
|
|||||||
int4store(header + LOG_POS_OFFSET, 0);
|
int4store(header + LOG_POS_OFFSET, 0);
|
||||||
|
|
||||||
packet->append(header, sizeof(header));
|
packet->append(header, sizeof(header));
|
||||||
/* We need to split the next statement because of problem with cxx */
|
/*
|
||||||
int4store(buf,position);
|
An old comment said talked about a need for splitting the int8store below
|
||||||
int4store(buf+4,0);
|
into 2 int4store because of a problem with cxx; I can't understand that as
|
||||||
|
we already use int8store in Rotatel_log_event::write_data().
|
||||||
|
*/
|
||||||
|
int8store(buf+R_POS_OFFSET,position);
|
||||||
packet->append(buf, ROTATE_HEADER_LEN);
|
packet->append(buf, ROTATE_HEADER_LEN);
|
||||||
packet->append(p,ident_len);
|
packet->append(p,ident_len);
|
||||||
if (my_net_write(net, (char*)packet->ptr(), packet->length()))
|
if (my_net_write(net, (char*)packet->ptr(), packet->length()))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user