]> 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:44 +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 3e3b4335a21641219163a918e1d805235d2ded67..6a7a6415f6e3902c5e63883e71a735c65bd15ca0 100644 (file)
@@ -1416,17 +1416,17 @@ dumpCreateDB(PGconn *conn)
                                                                  dbconnlimit);
 
                        appendPQExpBufferStr(buf, ";\n");
+               }
 
-                       if (binary_upgrade)
-                       {
-                               appendPQExpBufferStr(buf, "-- For binary upgrade, set datfrozenxid and datminmxid.\n");
-                               appendPQExpBuffer(buf, "UPDATE pg_catalog.pg_database "
-                                                               "SET datfrozenxid = '%u', datminmxid = '%u' "
-                                                                 "WHERE datname = ",
-                                                                 dbfrozenxid, dbminmxid);
-                               appendStringLiteralConn(buf, dbname, conn);
-                               appendPQExpBufferStr(buf, ";\n");
-                       }
+               if (binary_upgrade)
+               {
+                       appendPQExpBufferStr(buf, "-- For binary upgrade, set datfrozenxid and datminmxid.\n");
+                       appendPQExpBuffer(buf, "UPDATE pg_catalog.pg_database "
+                                                       "SET datfrozenxid = '%u', datminmxid = '%u' "
+                                                         "WHERE datname = ",
+                                                         dbfrozenxid, dbminmxid);
+                       appendStringLiteralConn(buf, dbname, conn);
+                       appendPQExpBufferStr(buf, ";\n");
                }
 
                if (!skip_acls &&