Fix pg_upgrade to create pg_authid restore functions in the 'postgres'
authorBruce Momjian <[email protected]>
Tue, 1 Feb 2011 01:15:43 +0000 (20:15 -0500)
committerBruce Momjian <[email protected]>
Tue, 1 Feb 2011 01:16:15 +0000 (20:16 -0500)
database, not in the os-user database, per report from Magnus.

contrib/pg_upgrade/pg_upgrade.c

index 294f58beaa6ccf833516a6d336f987265e2a00cd..d3e1fefa40a4172c6fe67c909777df0b635bde8c 100644 (file)
@@ -50,6 +50,9 @@ static void set_frozenxids(void);
 static void setup(char *argv0, bool live_check);
 static void cleanup(void);
 
+/* This is the database used by pg_dumpall to restore global tables */
+#define GLOBAL_DUMP_DB "postgres"
+
 ClusterInfo old_cluster, new_cluster;
 OSInfo     os_info;
 
@@ -226,10 +229,10 @@ prepare_new_databases(void)
    prep_status("Creating databases in the new cluster");
 
    /*
-    *  Install support functions in the database accessed by
-    *  GLOBALS_DUMP_FILE because it can preserve pg_authid.oid.
+    *  Install support functions in the global-restore database
+    *  to preserve pg_authid.oid.
     */
-   install_support_functions_in_new_db(os_info.user);
+   install_support_functions_in_new_db(GLOBAL_DUMP_DB);
 
    /*
     * We have to create the databases first so we can install support
@@ -266,7 +269,7 @@ create_new_objects(void)
        DbInfo     *new_db = &new_cluster.dbarr.dbs[dbnum];
 
        /* skip db we already installed */
-       if (strcmp(new_db->db_name, os_info.user) != 0)
+       if (strcmp(new_db->db_name, GLOBAL_DUMP_DB) != 0)
            install_support_functions_in_new_db(new_db->db_name);
    }
    check_ok();