]> granicus.if.org Git - postgresql/commitdiff
pg_upgrade: preserve freeze info for postgres/template1 dbs
authorBruce Momjian <bruce@momjian.us>
Thu, 12 Feb 2015 02:02:07 +0000 (21:02 -0500)
committerBruce Momjian <bruce@momjian.us>
Thu, 12 Feb 2015 02:02:12 +0000 (21:02 -0500)
pg_database.datfrozenxid and pg_database.datminmxid were not preserved
for the 'postgres' and 'template1' databases.  This could cause missing
clog file errors on access to user tables and indexes after upgrades in
these databases.

Backpatch through 9.0

src/bin/pg_dump/pg_dumpall.c

index 9d5e323552cb0c8b14a2fadb5d4084f0e47f9e0c..5cb7f442d9077c94e9e8e3cde05f92a9b6e9189c 100644 (file)
@@ -1356,17 +1356,17 @@ dumpCreateDB(PGconn *conn)
                                appendStringLiteralConn(buf, dbname, conn);
                                appendPQExpBuffer(buf, ";\n");
                        }
+               }
 
-                       if (binary_upgrade)
-                       {
-                               appendPQExpBuffer(buf, "-- For binary upgrade, set datfrozenxid.\n");
-                               appendPQExpBuffer(buf, "UPDATE pg_catalog.pg_database "
-                                                                 "SET datfrozenxid = '%u' "
-                                                                 "WHERE datname = ",
-                                                                 dbfrozenxid);
-                               appendStringLiteralConn(buf, dbname, conn);
-                               appendPQExpBuffer(buf, ";\n");
-                       }
+               if (binary_upgrade)
+               {
+                       appendPQExpBuffer(buf, "-- For binary upgrade, set datfrozenxid.\n");
+                       appendPQExpBuffer(buf, "UPDATE pg_catalog.pg_database "
+                                                         "SET datfrozenxid = '%u' "
+                                                         "WHERE datname = ",
+                                                         dbfrozenxid);
+                       appendStringLiteralConn(buf, dbname, conn);
+                       appendPQExpBuffer(buf, ";\n");
                }
 
                if (!skip_acls &&