# 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 $
#
#----------------------------------------------------------------------
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: $!";
}
# 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 $
#
#----------------------------------------------------------------------
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');