From 2b61b3e5074d7f55df82c199b87671334741b4e1 Mon Sep 17 00:00:00 2001
From: Magnus Hagander <magnus@hagander.net>
Date: Thu, 13 May 2010 15:58:15 +0000
Subject: [PATCH] Assorted fixes to make pg_upgrade build on MSVC.

* There is no chmod() on Windows.
* Must always use the 3-parameter version of open()
* There is no dynloader.h - but it also appears unnecessary on all platforms
* Don't include shlobj.h because it causes compile errors, and from what I can
  see it's not actually used. This may need to be added back for mingw
  and/or cygwin in the worst case.
---
 contrib/pg_upgrade/check.c      | 2 ++
 contrib/pg_upgrade/exec.c       | 2 +-
 contrib/pg_upgrade/page.c       | 1 -
 contrib/pg_upgrade/pg_upgrade.h | 3 ---
 4 files changed, 3 insertions(+), 5 deletions(-)

diff --git a/contrib/pg_upgrade/check.c b/contrib/pg_upgrade/check.c
index 9b2a3980825..b3094534c96 100644
--- a/contrib/pg_upgrade/check.c
+++ b/contrib/pg_upgrade/check.c
@@ -427,9 +427,11 @@ create_script_for_old_cluster_deletion(migratorContext *ctx,
 
 	fclose(script);
 
+#ifndef WIN32
 	if (chmod(*deletion_script_file_name, S_IRWXU) != 0)
 		pg_log(ctx, PG_FATAL, "Could not add execute permission to file:  %s\n",
 				*deletion_script_file_name);
+#endif
 
 	check_ok(ctx);
 }
diff --git a/contrib/pg_upgrade/exec.c b/contrib/pg_upgrade/exec.c
index 8765d7e41bc..d8661a2d381 100644
--- a/contrib/pg_upgrade/exec.c
+++ b/contrib/pg_upgrade/exec.c
@@ -122,7 +122,7 @@ is_server_running(migratorContext *ctx, const char *datadir)
 
 	snprintf(path, sizeof(path), "%s/postmaster.pid", datadir);
 
-	if ((fd = open(path, O_RDONLY)) < 0)
+	if ((fd = open(path, O_RDONLY, 0)) < 0)
 	{
 		if (errno != ENOENT)
 			pg_log(ctx, PG_FATAL, "\ncould not open file \"%s\" for reading\n",
diff --git a/contrib/pg_upgrade/page.c b/contrib/pg_upgrade/page.c
index 105198758bc..18b0472eb20 100644
--- a/contrib/pg_upgrade/page.c
+++ b/contrib/pg_upgrade/page.c
@@ -6,7 +6,6 @@
 
 #include "pg_upgrade.h"
 
-#include "dynloader.h"
 #include "storage/bufpage.h"
 
 
diff --git a/contrib/pg_upgrade/pg_upgrade.h b/contrib/pg_upgrade/pg_upgrade.h
index 0fd12ef5b9d..0fa96542b9e 100644
--- a/contrib/pg_upgrade/pg_upgrade.h
+++ b/contrib/pg_upgrade/pg_upgrade.h
@@ -12,9 +12,6 @@
 #include <sys/stat.h>
 #include <sys/time.h>
 #include <sys/types.h>
-#ifdef WIN32
-#include <shlobj.h>
-#endif
 
 #include "libpq-fe.h"
 
-- 
GitLab