From 9d781b55f4ba2481a6217316361ddfd67cc06318 Mon Sep 17 00:00:00 2001
From: Tom Lane <tgl@sss.pgh.pa.us>
Date: Tue, 5 Jan 2010 02:34:03 +0000
Subject: [PATCH] Remove too-smart-for-its-own-good optimization of not
 overwriting the output files when they haven't changed.  This confuses make
 because the build fails to update the file timestamps, and so it keeps on
 doing the action over again.

---
 src/backend/catalog/Catalog.pm | 23 ++---------------------
 src/backend/catalog/genbki.pl  |  4 ++--
 2 files changed, 4 insertions(+), 23 deletions(-)

diff --git a/src/backend/catalog/Catalog.pm b/src/backend/catalog/Catalog.pm
index 3b6a723faa6..6a2c13d7714 100644
--- a/src/backend/catalog/Catalog.pm
+++ b/src/backend/catalog/Catalog.pm
@@ -7,7 +7,7 @@
 # Portions Copyright (c) 1996-2010, PostgreSQL Global Development Group
 # Portions Copyright (c) 1994, Regents of the University of California
 #
-# $PostgreSQL: pgsql/src/backend/catalog/Catalog.pm,v 1.1 2010/01/05 01:06:56 tgl Exp $
+# $PostgreSQL: pgsql/src/backend/catalog/Catalog.pm,v 1.2 2010/01/05 02:34:03 tgl Exp $
 #
 #----------------------------------------------------------------------
 
@@ -169,31 +169,12 @@ sub Catalogs
     return \%catalogs;
 }
 
-# Rename temporary files to final names, if anything has changed.
+# Rename temporary files to final names.
 # Call this function with the final file name --- we append .tmp automatically
 sub RenameTempFile
 {
     my $final_name = shift;
     my $temp_name = $final_name . '.tmp';
-    if (-e $final_name && -s $temp_name == -s $final_name)
-    {
-        open TN, '<', "$temp_name" || die "$temp_name: $!";
-        if (open FN, '<', $final_name)
-        {
-            local $/ = undef;
-            my $tn = <TN>;
-            my $fn = <FN>;
-            close FN;
-            if ($tn eq $fn)
-            {
-                print "$final_name unchanged, not replacing\n";
-                close TN;
-                unlink($temp_name) || die "unlink: $temp_name: $!";
-                return;
-            }
-        }
-        close TN;
-    }
     print "Writing $final_name\n";
     rename($temp_name, $final_name) || die "rename: $temp_name: $!";
 }
diff --git a/src/backend/catalog/genbki.pl b/src/backend/catalog/genbki.pl
index 2020aeeb208..e7660cea61c 100644
--- a/src/backend/catalog/genbki.pl
+++ b/src/backend/catalog/genbki.pl
@@ -10,7 +10,7 @@
 # Portions Copyright (c) 1996-2010, PostgreSQL Global Development Group
 # Portions Copyright (c) 1994, Regents of the University of California
 #
-# $PostgreSQL: pgsql/src/backend/catalog/genbki.pl,v 1.1 2010/01/05 01:06:56 tgl Exp $
+# $PostgreSQL: pgsql/src/backend/catalog/genbki.pl,v 1.2 2010/01/05 02:34:03 tgl Exp $
 #
 #----------------------------------------------------------------------
 
@@ -287,7 +287,7 @@ close DESCR;
 close SHDESCR;
 close SCHEMAPG;
 
-# Rename temp files on top of final files, if they have changed
+# Finally, rename the completed files into place.
 Catalog::RenameTempFile($output_path . 'postgres.bki');
 Catalog::RenameTempFile($output_path . 'postgres.description');
 Catalog::RenameTempFile($output_path . 'postgres.shdescription');
-- 
GitLab