aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBruce Momjian <bruce@momjian.us>2015-11-14 11:47:11 -0500
committerBruce Momjian <bruce@momjian.us>2015-11-14 11:47:11 -0500
commitfae58d5bede8b5bf3dd17381e7f6b73c1772577f (patch)
tree70ce81052e8d5d64f901085fd331bf0f111eaf24 /src
parentd324c7226104266bf9fd57380a0703e40ba24fd4 (diff)
downloadpostgresql-fae58d5bede8b5bf3dd17381e7f6b73c1772577f.tar.gz
postgresql-fae58d5bede8b5bf3dd17381e7f6b73c1772577f.zip
pg_upgrade: properly detect file copy failure on Windows
Previously, file copy failures were ignored on Windows due to an incorrect return value check. Report by Manu Joye Backpatch through 9.1
Diffstat (limited to 'src')
-rw-r--r--src/bin/pg_upgrade/file.c6
-rw-r--r--src/bin/pg_upgrade/pg_upgrade.h2
2 files changed, 5 insertions, 3 deletions
diff --git a/src/bin/pg_upgrade/file.c b/src/bin/pg_upgrade/file.c
index 79d9390216e..37eb832c93a 100644
--- a/src/bin/pg_upgrade/file.c
+++ b/src/bin/pg_upgrade/file.c
@@ -34,7 +34,11 @@ copyAndUpdateFile(pageCnvCtx *pageConverter,
{
if (pageConverter == NULL)
{
- if (pg_copy_file(src, dst, force) == -1)
+#ifndef WIN32
+ if (copy_file(src, dst, force) == -1)
+#else
+ if (CopyFile(src, dst, force) == 0)
+#endif
return getErrorText(errno);
else
return NULL;
diff --git a/src/bin/pg_upgrade/pg_upgrade.h b/src/bin/pg_upgrade/pg_upgrade.h
index 13aa891d59d..fa4661b7d6a 100644
--- a/src/bin/pg_upgrade/pg_upgrade.h
+++ b/src/bin/pg_upgrade/pg_upgrade.h
@@ -70,7 +70,6 @@ extern char *output_files[];
#ifndef WIN32
-#define pg_copy_file copy_file
#define pg_mv_file rename
#define pg_link_file link
#define PATH_SEPARATOR '/'
@@ -82,7 +81,6 @@ extern char *output_files[];
#define ECHO_QUOTE "'"
#define ECHO_BLANK ""
#else
-#define pg_copy_file CopyFile
#define pg_mv_file pgrename
#define pg_link_file win32_pghardlink
#define PATH_SEPARATOR '\\'