mirror of
https://github.com/MariaDB/server.git
synced 2025-05-05 16:59:35 +03:00
Bug #6660 mysqldump creates bad pathnames on Windows
This really should not happen on Windows and part of the problem not fixed here is why show create table includes data directory when being run on Windows. However, this patch fixes the bug in mysqldump.c mysqldump.c: Added fixPaths function to convert \ to / in data directory and index directory entries only on Windows client/mysqldump.c: Added fixPaths function to convert \ to / in data directory and index directory entries only on Windows BitKeeper/etc/logging_ok: Logging to logging@openlogging.org accepted
This commit is contained in:
parent
90697f2467
commit
2722a28691
@ -190,6 +190,7 @@ ramil@mysql.com
|
|||||||
ranger@regul.home.lan
|
ranger@regul.home.lan
|
||||||
rburnett@build.mysql.com
|
rburnett@build.mysql.com
|
||||||
reggie@bob.(none)
|
reggie@bob.(none)
|
||||||
|
reggie@mdk10.(none)
|
||||||
root@home.(none)
|
root@home.(none)
|
||||||
root@mc04.(none)
|
root@mc04.(none)
|
||||||
root@x3.internalnet
|
root@x3.internalnet
|
||||||
|
@ -1080,6 +1080,27 @@ static void print_xml_row(FILE *xml_file, const char *row_name,
|
|||||||
check_io(xml_file);
|
check_io(xml_file);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* fixPaths -- on Windows only, this function will iterate through the output
|
||||||
|
of show create table and change any \ characters that appear in the data directory
|
||||||
|
or index directory elements to be /
|
||||||
|
|
||||||
|
RETURN
|
||||||
|
void
|
||||||
|
*/
|
||||||
|
static void fixPaths(char *buf, int buflen)
|
||||||
|
{
|
||||||
|
#ifdef __WIN__
|
||||||
|
int i = 0;
|
||||||
|
for (i=0; i < buflen; i++)
|
||||||
|
{
|
||||||
|
if (buf[i] != '\\') continue;
|
||||||
|
if (i != 0 && buf[i-1] == '\\') continue;
|
||||||
|
if (i != (buflen-1) && buf[i+1] == '\\') continue;
|
||||||
|
buf[i] = '/';}
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
getStructure -- retrievs database structure, prints out corresponding
|
getStructure -- retrievs database structure, prints out corresponding
|
||||||
CREATE statement and fills out insert_pat.
|
CREATE statement and fills out insert_pat.
|
||||||
@ -1159,6 +1180,7 @@ static uint getTableStructure(char *table, char* db)
|
|||||||
|
|
||||||
tableRes=mysql_store_result(sock);
|
tableRes=mysql_store_result(sock);
|
||||||
row=mysql_fetch_row(tableRes);
|
row=mysql_fetch_row(tableRes);
|
||||||
|
fixPaths(row[1], strlen(row[1])); // this really only does something on Windows
|
||||||
fprintf(sql_file, "%s;\n", row[1]);
|
fprintf(sql_file, "%s;\n", row[1]);
|
||||||
check_io(sql_file);
|
check_io(sql_file);
|
||||||
mysql_free_result(tableRes);
|
mysql_free_result(tableRes);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user