|
|
|
@ -465,6 +465,31 @@ Create_file event for file_id: %u\n",ae->file_id); |
|
|
|
Load_log_processor load_processor; |
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
Replace windows-style backslashes by forward slashes so it can be |
|
|
|
consumed by the mysql client, which requires Unix path. |
|
|
|
|
|
|
|
@todo This is only useful under windows, so may be ifdef'ed out on |
|
|
|
other systems. /Sven |
|
|
|
|
|
|
|
@todo If a Create_file_log_event contains a filename with a |
|
|
|
backslash (valid under unix), then we have problems under windows. |
|
|
|
/Sven |
|
|
|
|
|
|
|
@param[in,out] fname Filename to modify. The filename is modified |
|
|
|
in-place. |
|
|
|
*/ |
|
|
|
static void convert_path_to_forward_slashes(char *fname) |
|
|
|
{ |
|
|
|
while (*fname) |
|
|
|
{ |
|
|
|
if (*fname == '\\') |
|
|
|
*fname= '/'; |
|
|
|
fname++; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
static bool check_database(const char *log_dbname) |
|
|
|
{ |
|
|
|
return one_database && |
|
|
|
@ -582,6 +607,11 @@ int process_event(PRINT_EVENT_INFO *print_event_info, Log_event *ev, |
|
|
|
*/ |
|
|
|
if (ce) |
|
|
|
{ |
|
|
|
/*
|
|
|
|
We must not convert earlier, since the file is used by |
|
|
|
my_open() in Load_log_processor::append(). |
|
|
|
*/ |
|
|
|
convert_path_to_forward_slashes((char*) ce->fname); |
|
|
|
ce->print(result_file, print_event_info, TRUE); |
|
|
|
my_free((char*)ce->fname,MYF(MY_WME)); |
|
|
|
delete ce; |
|
|
|
@ -622,13 +652,7 @@ Create_file event for file_id: %u\n",exv->file_id); |
|
|
|
|
|
|
|
if (fname) |
|
|
|
{ |
|
|
|
/*
|
|
|
|
Fix the path so it can be consumed by mysql client (requires Unix path). |
|
|
|
*/ |
|
|
|
int stop= strlen(fname); |
|
|
|
for (int i= 0; i < stop; i++) |
|
|
|
if (fname[i] == '\\') |
|
|
|
fname[i]= '/'; |
|
|
|
convert_path_to_forward_slashes(fname); |
|
|
|
exlq->print(result_file, print_event_info, fname); |
|
|
|
my_free(fname, MYF(MY_WME)); |
|
|
|
} |
|
|
|
|