From d66b10833fc4ea62a84ec715e5a38f3b2bb549d3 Mon Sep 17 00:00:00 2001
From: Tom Lane <tgl@sss.pgh.pa.us>
Date: Tue, 15 Jan 2002 22:33:20 +0000
Subject: [PATCH] If we fail to rename pg_internal.init into place, delete the
 useless temporary file.  This seems to be a known failure mode under Cygwin,
 so we might as well expend the extra line of code to be tidy.

---
 src/backend/utils/cache/relcache.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/src/backend/utils/cache/relcache.c b/src/backend/utils/cache/relcache.c
index 7eab8d73332..30542202407 100644
--- a/src/backend/utils/cache/relcache.c
+++ b/src/backend/utils/cache/relcache.c
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/utils/cache/relcache.c,v 1.149 2001/11/05 17:46:30 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/utils/cache/relcache.c,v 1.150 2002/01/15 22:33:20 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -2978,5 +2978,12 @@ write_irels(void)
 	 * previously-existing init file.
 	 */
 	if (rename(tempfilename, finalfilename) < 0)
+	{
 		elog(NOTICE, "Cannot rename init file %s to %s: %m\n\tContinuing anyway, but there's something wrong.", tempfilename, finalfilename);
+		/*
+		 * If we fail, try to clean up the useless temp file; don't bother
+		 * to complain if this fails too.
+		 */
+		unlink(tempfilename);
+	}
 }
-- 
GitLab