summaryrefslogtreecommitdiff
path: root/contrib
diff options
context:
space:
mode:
authorBruce Momjian2015-11-14 16:47:11 +0000
committerBruce Momjian2015-11-14 16:47:11 +0000
commit87cdfeb18ae0fe298b6f405718cbe97eaed190d3 (patch)
tree52dd582acfe0dc3b4a6d3f2cef0799245dbc83e6 /contrib
parent40879a92b90cdd46f74588a2edb024a3c869d932 (diff)
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 'contrib')
-rw-r--r--contrib/pg_upgrade/file.c6
-rw-r--r--contrib/pg_upgrade/pg_upgrade.h2
2 files changed, 5 insertions, 3 deletions
diff --git a/contrib/pg_upgrade/file.c b/contrib/pg_upgrade/file.c
index ab9d1edcb6d..4d2c407084c 100644
--- a/contrib/pg_upgrade/file.c
+++ b/contrib/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/contrib/pg_upgrade/pg_upgrade.h b/contrib/pg_upgrade/pg_upgrade.h
index 1c6f8f0aa1c..5568c2ebbab 100644
--- a/contrib/pg_upgrade/pg_upgrade.h
+++ b/contrib/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 '/'
@@ -80,7 +79,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 '\\'