Loading client/mysqlbinlog.cc +31 −7 Original line number Diff line number Diff line Loading @@ -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 && Loading Loading @@ -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; Loading Loading @@ -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)); } Loading Loading
client/mysqlbinlog.cc +31 −7 Original line number Diff line number Diff line Loading @@ -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 && Loading Loading @@ -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; Loading Loading @@ -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)); } Loading