Integrate pg_upgrade_support module into backend
authorPeter Eisentraut <[email protected]>
Wed, 11 Mar 2015 02:33:25 +0000 (22:33 -0400)
committerPeter Eisentraut <[email protected]>
Tue, 14 Apr 2015 23:26:37 +0000 (19:26 -0400)
Previously, these functions were created in a schema "binary_upgrade",
which was deleted after pg_upgrade was finished.  Because we don't want
to keep that schema around permanently, move them to pg_catalog but
rename them with a binary_upgrade_... prefix.

The provided functions are only small wrappers around global variables
that were added specifically for pg_upgrade use, so keeping the module
separate does not create any modularity.

The functions still check that they are only called in binary upgrade
mode, so it is not possible to call these during normal operation.

Reviewed-by: Michael Paquier <[email protected]>
20 files changed:
contrib/Makefile
contrib/pg_upgrade/dump.c
contrib/pg_upgrade/function.c
contrib/pg_upgrade/pg_upgrade.c
contrib/pg_upgrade/pg_upgrade.h
contrib/pg_upgrade/test.sh
contrib/pg_upgrade_support/Makefile [deleted file]
doc/src/sgml/pgupgrade.sgml
src/backend/catalog/heap.c
src/backend/catalog/index.c
src/backend/catalog/pg_enum.c
src/backend/catalog/pg_type.c
src/backend/catalog/toasting.c
src/backend/commands/typecmds.c
src/backend/commands/user.c
src/backend/utils/adt/Makefile
src/backend/utils/adt/pg_upgrade_support.c [moved from contrib/pg_upgrade_support/pg_upgrade_support.c with 73% similarity]
src/bin/pg_dump/pg_dump.c
src/bin/pg_dump/pg_dumpall.c
src/include/catalog/pg_proc.h

index d63e441cb59db34ca4a10a7b524dac06f9003ba4..074e39477b1e3fddb428a8b916760dcc14d06afa 100644 (file)
@@ -37,7 +37,6 @@ SUBDIRS = \
                pg_test_timing  \
                pg_trgm         \
                pg_upgrade      \
-               pg_upgrade_support \
                pgcrypto        \
                pgrowlocks      \
                pgstattuple     \
index 941c4bbdd75a965ae9c8d48890866ebedac0dbbb..906e85f2b53e68203e1b9f5654b81fd44c4f8d84 100644 (file)
@@ -121,7 +121,7 @@ optionally_create_toast_tables(void)
                for (rowno = 0; rowno < ntups; rowno++)
                {
                        /* enable auto-oid-numbered TOAST creation if needed */
-                       PQclear(executeQueryOrDie(conn, "SELECT binary_upgrade.set_next_toast_pg_class_oid('%d'::pg_catalog.oid);",
+                       PQclear(executeQueryOrDie(conn, "SELECT pg_catalog.binary_upgrade_set_next_toast_pg_class_oid('%d'::pg_catalog.oid);",
                                        OPTIONALLY_CREATE_TOAST_OID));
 
                        /* dummy command that also triggers check for required TOAST table */
index deffe046474d6cf9fe7c8fdfc3b2a6bb4adb95be..d8009d195d85800ee9d1602c0b112b4bdee548a0 100644 (file)
 
 #include "access/transam.h"
 
-#define PG_UPGRADE_SUPPORT     "$libdir/pg_upgrade_support"
-
-/*
- * install_support_functions_in_new_db()
- *
- * pg_upgrade requires some support functions that enable it to modify
- * backend behavior.
- */
-void
-install_support_functions_in_new_db(const char *db_name)
-{
-       PGconn     *conn = connectToServer(&new_cluster, db_name);
-
-       /* suppress NOTICE of dropped objects */
-       PQclear(executeQueryOrDie(conn,
-                                                         "SET client_min_messages = warning;"));
-       PQclear(executeQueryOrDie(conn,
-                                                  "DROP SCHEMA IF EXISTS binary_upgrade CASCADE;"));
-       PQclear(executeQueryOrDie(conn,
-                                                         "RESET client_min_messages;"));
-
-       PQclear(executeQueryOrDie(conn,
-                                                         "CREATE SCHEMA binary_upgrade;"));
-
-       PQclear(executeQueryOrDie(conn,
-                                                         "CREATE OR REPLACE FUNCTION "
-                                                         "binary_upgrade.set_next_pg_type_oid(OID) "
-                                                         "RETURNS VOID "
-                                                         "AS '$libdir/pg_upgrade_support' "
-                                                         "LANGUAGE C STRICT;"));
-       PQclear(executeQueryOrDie(conn,
-                                                         "CREATE OR REPLACE FUNCTION "
-                                                       "binary_upgrade.set_next_array_pg_type_oid(OID) "
-                                                         "RETURNS VOID "
-                                                         "AS '$libdir/pg_upgrade_support' "
-                                                         "LANGUAGE C STRICT;"));
-       PQclear(executeQueryOrDie(conn,
-                                                         "CREATE OR REPLACE FUNCTION "
-                                                       "binary_upgrade.set_next_toast_pg_type_oid(OID) "
-                                                         "RETURNS VOID "
-                                                         "AS '$libdir/pg_upgrade_support' "
-                                                         "LANGUAGE C STRICT;"));
-       PQclear(executeQueryOrDie(conn,
-                                                         "CREATE OR REPLACE FUNCTION "
-                                                       "binary_upgrade.set_next_heap_pg_class_oid(OID) "
-                                                         "RETURNS VOID "
-                                                         "AS '$libdir/pg_upgrade_support' "
-                                                         "LANGUAGE C STRICT;"));
-       PQclear(executeQueryOrDie(conn,
-                                                         "CREATE OR REPLACE FUNCTION "
-                                                  "binary_upgrade.set_next_index_pg_class_oid(OID) "
-                                                         "RETURNS VOID "
-                                                         "AS '$libdir/pg_upgrade_support' "
-                                                         "LANGUAGE C STRICT;"));
-       PQclear(executeQueryOrDie(conn,
-                                                         "CREATE OR REPLACE FUNCTION "
-                                                  "binary_upgrade.set_next_toast_pg_class_oid(OID) "
-                                                         "RETURNS VOID "
-                                                         "AS '$libdir/pg_upgrade_support' "
-                                                         "LANGUAGE C STRICT;"));
-       PQclear(executeQueryOrDie(conn,
-                                                         "CREATE OR REPLACE FUNCTION "
-                                                         "binary_upgrade.set_next_pg_enum_oid(OID) "
-                                                         "RETURNS VOID "
-                                                         "AS '$libdir/pg_upgrade_support' "
-                                                         "LANGUAGE C STRICT;"));
-       PQclear(executeQueryOrDie(conn,
-                                                         "CREATE OR REPLACE FUNCTION "
-                                                         "binary_upgrade.set_next_pg_authid_oid(OID) "
-                                                         "RETURNS VOID "
-                                                         "AS '$libdir/pg_upgrade_support' "
-                                                         "LANGUAGE C STRICT;"));
-       PQclear(executeQueryOrDie(conn,
-                                                         "CREATE OR REPLACE FUNCTION "
-                                                         "binary_upgrade.create_empty_extension(text, text, bool, text, oid[], text[], text[]) "
-                                                         "RETURNS VOID "
-                                                         "AS '$libdir/pg_upgrade_support' "
-                                                         "LANGUAGE C;"));
-       PQfinish(conn);
-}
-
-
-void
-uninstall_support_functions_from_new_cluster(void)
-{
-       int                     dbnum;
-
-       prep_status("Removing support functions from new cluster");
-
-       for (dbnum = 0; dbnum < new_cluster.dbarr.ndbs; dbnum++)
-       {
-               DbInfo     *new_db = &new_cluster.dbarr.dbs[dbnum];
-               PGconn     *conn = connectToServer(&new_cluster, new_db->db_name);
-
-               /* suppress NOTICE of dropped objects */
-               PQclear(executeQueryOrDie(conn,
-                                                                 "SET client_min_messages = warning;"));
-               PQclear(executeQueryOrDie(conn,
-                                                                 "DROP SCHEMA binary_upgrade CASCADE;"));
-               PQclear(executeQueryOrDie(conn,
-                                                                 "RESET client_min_messages;"));
-               PQfinish(conn);
-       }
-       check_ok();
-}
-
 
 /*
  * get_loadable_libraries()
@@ -218,8 +112,6 @@ get_loadable_libraries(void)
        if (found_public_plpython_handler)
                pg_fatal("Remove the problem functions from the old cluster to continue.\n");
 
-       totaltups++;                            /* reserve for pg_upgrade_support */
-
        /* Allocate what's certainly enough space */
        os_info.libraries = (char **) pg_malloc(totaltups * sizeof(char *));
 
@@ -228,7 +120,6 @@ get_loadable_libraries(void)
         * there probably aren't enough entries to matter.
         */
        totaltups = 0;
-       os_info.libraries[totaltups++] = pg_strdup(PG_UPGRADE_SUPPORT);
 
        for (dbnum = 0; dbnum < old_cluster.dbarr.ndbs; dbnum++)
        {
@@ -321,10 +212,6 @@ check_loadable_libraries(void)
                {
                        found = true;
 
-                       /* exit and report missing support library with special message */
-                       if (strcmp(lib, PG_UPGRADE_SUPPORT) == 0)
-                               pg_fatal("The pg_upgrade_support module must be created and installed in the new cluster.\n");
-
                        if (script == NULL && (script = fopen_priv(output_path, "w")) == NULL)
                                pg_fatal("Could not open file \"%s\": %s\n",
                                                 output_path, getErrorText(errno));
index eb48da779f9ed244267a74130ad3b166304883d3..78bd29fb957faabd2ee8d727f123f5e359bba557 100644 (file)
@@ -278,14 +278,6 @@ prepare_new_databases(void)
 
        prep_status("Restoring global objects in the new cluster");
 
-       /*
-        * Install support functions in the global-object restore database to
-        * preserve pg_authid.oid.  pg_dumpall uses 'template0' as its template
-        * database so objects we add into 'template1' are not propogated.  They
-        * are removed on pg_upgrade exit.
-        */
-       install_support_functions_in_new_db("template1");
-
        /*
         * We have to create the databases first so we can install support
         * functions in all the other databases.  Ideally we could create the
@@ -308,23 +300,6 @@ create_new_objects(void)
 {
        int                     dbnum;
 
-       prep_status("Adding support functions to new cluster");
-
-       /*
-        * Technically, we only need to install these support functions in new
-        * databases that also exist in the old cluster, but for completeness we
-        * process all new databases.
-        */
-       for (dbnum = 0; dbnum < new_cluster.dbarr.ndbs; dbnum++)
-       {
-               DbInfo     *new_db = &new_cluster.dbarr.dbs[dbnum];
-
-               /* skip db we already installed */
-               if (strcmp(new_db->db_name, "template1") != 0)
-                       install_support_functions_in_new_db(new_db->db_name);
-       }
-       check_ok();
-
        prep_status("Restoring database schemas in the new cluster\n");
 
        for (dbnum = 0; dbnum < old_cluster.dbarr.ndbs; dbnum++)
@@ -368,8 +343,6 @@ create_new_objects(void)
 
        /* regenerate now that we have objects in the databases */
        get_db_and_rel_infos(&new_cluster);
-
-       uninstall_support_functions_from_new_cluster();
 }
 
 /*
index f6b13c0878601a38d634d76fe0c30ff408b6da45..ace3465f989ca68400b4e8091ffff588112a1bd0 100644 (file)
@@ -405,8 +405,6 @@ FILE           *fopen_priv(const char *path, const char *mode);
 
 /* function.c */
 
-void           install_support_functions_in_new_db(const char *db_name);
-void           uninstall_support_functions_from_new_cluster(void);
 void           get_loadable_libraries(void);
 void           check_loadable_libraries(void);
 
index 75b635799de7f96e9ffcb2682ee2fb3aa9fefc57..2e9f97688c64588d50c19e388d543d051098d5b1 100644 (file)
@@ -70,7 +70,6 @@ if [ "$1" = '--install' ]; then
        libdir=$temp_install/$libdir
 
        "$MAKE" -s -C ../.. install DESTDIR="$temp_install"
-       "$MAKE" -s -C ../pg_upgrade_support install DESTDIR="$temp_install"
        "$MAKE" -s -C . install DESTDIR="$temp_install"
 
        # platform-specific magic to find the shared libraries; see pg_regress.c
diff --git a/contrib/pg_upgrade_support/Makefile b/contrib/pg_upgrade_support/Makefile
deleted file mode 100644 (file)
index f7def16..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-# contrib/pg_upgrade_support/Makefile
-
-PGFILEDESC = "pg_upgrade_support - server-side functions for pg_upgrade"
-
-MODULES = pg_upgrade_support
-
-ifdef USE_PGXS
-PG_CONFIG = pg_config
-PGXS := $(shell $(PG_CONFIG) --pgxs)
-include $(PGXS)
-else
-subdir = contrib/pg_upgrade_support
-top_builddir = ../..
-include $(top_builddir)/src/Makefile.global
-include $(top_srcdir)/contrib/contrib-global.mk
-endif
index 0d79fb5f52af20e47182420710246b9267778ddd..45bceff9bea5dbf497c1d895a8d40234295e493e 100644 (file)
@@ -253,11 +253,10 @@ make prefix=/usr/local/pgsql.new install
    </step>
 
    <step>
-    <title>Install pg_upgrade and pg_upgrade_support</title>
+    <title>Install pg_upgrade</title>
 
     <para>
-     Install the <application>pg_upgrade</> binary and
-     <application>pg_upgrade_support</> library in the new PostgreSQL
+     Install the <application>pg_upgrade</> binary in the new PostgreSQL
      installation.
     </para>
    </step>
index c518c50b21bfc7ae9e4109726ed9e345e16711d5..d04e94d74f3c1266c7f644dfc1ef390ce14323ce 100644 (file)
@@ -76,7 +76,7 @@
 #include "utils/tqual.h"
 
 
-/* Potentially set by contrib/pg_upgrade_support functions */
+/* Potentially set by pg_upgrade_support functions */
 Oid                    binary_upgrade_next_heap_pg_class_oid = InvalidOid;
 Oid                    binary_upgrade_next_toast_pg_class_oid = InvalidOid;
 
index d8ff554387fde942244c75f5a72ed22cf65bc484..ac3b785b5a7230fdfba83a0c5fb7620123ca4c0a 100644 (file)
@@ -69,7 +69,7 @@
 #include "utils/tqual.h"
 
 
-/* Potentially set by contrib/pg_upgrade_support functions */
+/* Potentially set by pg_upgrade_support functions */
 Oid                    binary_upgrade_next_index_pg_class_oid = InvalidOid;
 
 /* state info for validate_index bulkdelete callback */
index d87090a31b963a36a5c28a83310aaa3306fba48f..c880486c4bc685b8a29503893eb6a5a03d8e9647 100644 (file)
@@ -31,7 +31,7 @@
 #include "utils/tqual.h"
 
 
-/* Potentially set by contrib/pg_upgrade_support functions */
+/* Potentially set by pg_upgrade_support functions */
 Oid                    binary_upgrade_next_pg_enum_oid = InvalidOid;
 
 static void RenumberEnumType(Relation pg_enum, HeapTuple *existing, int nelems);
index d1ed53f5b4d1899019afe332af04ddb4977d97bb..32453c3bb89b91710c06e7d2b887f4bb52b33840 100644 (file)
@@ -36,7 +36,7 @@
 #include "utils/rel.h"
 #include "utils/syscache.h"
 
-/* Potentially set by contrib/pg_upgrade_support functions */
+/* Potentially set by pg_upgrade_support functions */
 Oid                    binary_upgrade_next_pg_type_oid = InvalidOid;
 
 /* ----------------------------------------------------------------
index d14c33ce0218fbc572915cf606ab31c14e2512c4..c99d3534ced8799da9a1ca1613bc74a695fac8b9 100644 (file)
@@ -32,7 +32,7 @@
 #include "utils/rel.h"
 #include "utils/syscache.h"
 
-/* Potentially set by contrib/pg_upgrade_support functions */
+/* Potentially set by pg_upgrade_support functions */
 Oid                    binary_upgrade_next_toast_pg_type_oid = InvalidOid;
 
 static void CheckAndCreateToastTable(Oid relOid, Datum reloptions,
index 67e2ae22c680e3ac85c305a6524dd94e1aa64396..907ba1100ace7316f5fb7930be754736ba6b8b5c 100644 (file)
@@ -80,7 +80,7 @@ typedef struct
        /* atts[] is of allocated length RelationGetNumberOfAttributes(rel) */
 } RelToCheck;
 
-/* Potentially set by contrib/pg_upgrade_support functions */
+/* Potentially set by pg_upgrade_support functions */
 Oid                    binary_upgrade_next_array_pg_type_oid = InvalidOid;
 
 static void makeRangeConstructors(const char *name, Oid namespace,
index 75f1b3cd4f264c712896151ee872e29c59f7c7ce..456c27ebe07ebbe4f30bbd3bf03340ea61e90075 100644 (file)
@@ -38,7 +38,7 @@
 #include "utils/timestamp.h"
 #include "utils/tqual.h"
 
-/* Potentially set by contrib/pg_upgrade_support functions */
+/* Potentially set by pg_upgrade_support functions */
 Oid                    binary_upgrade_next_pg_authid_oid = InvalidOid;
 
 
index 20e5ff10c7f18c13ecf9fa9d68fa02f94d55cf53..1f1bee7fb5185950ecefa3dab9288ffcd3d4d46a 100644 (file)
@@ -25,7 +25,8 @@ OBJS = acl.o arrayfuncs.o array_selfuncs.o array_typanalyze.o \
        jsonfuncs.o like.o lockfuncs.o mac.o misc.o nabstime.o name.o \
        network.o network_gist.o network_selfuncs.o \
        numeric.o numutils.o oid.o oracle_compat.o \
-       orderedsetaggs.o pg_locale.o pg_lsn.o pgstatfuncs.o \
+       orderedsetaggs.o pg_locale.o pg_lsn.o pg_upgrade_support.o \
+       pgstatfuncs.o \
        pseudotypes.o quote.o rangetypes.o rangetypes_gist.o \
        rangetypes_selfuncs.o rangetypes_spgist.o rangetypes_typanalyze.o \
        regexp.o regproc.o ri_triggers.o rowtypes.o ruleutils.o \
similarity index 73%
rename from contrib/pg_upgrade_support/pg_upgrade_support.c
rename to src/backend/utils/adt/pg_upgrade_support.c
index f477973449bca1bcbd54315e8691cb79ea04045d..d69fa53567b3437696b7356a12adfbc9e8564181 100644 (file)
@@ -6,7 +6,7 @@
  *     hacks needed for pg_upgrade.
  *
  *     Copyright (c) 2010-2015, PostgreSQL Global Development Group
- *     contrib/pg_upgrade_support/pg_upgrade_support.c
+ *     src/backend/utils/adt/pg_upgrade_support.c
  */
 
 #include "postgres.h"
 #include "utils/array.h"
 #include "utils/builtins.h"
 
-/* THIS IS USED ONLY FOR PG >= 9.0 */
 
-#ifdef PG_MODULE_MAGIC
-PG_MODULE_MAGIC;
-#endif
+Datum binary_upgrade_set_next_pg_type_oid(PG_FUNCTION_ARGS);
+Datum binary_upgrade_set_next_array_pg_type_oid(PG_FUNCTION_ARGS);
+Datum binary_upgrade_set_next_toast_pg_type_oid(PG_FUNCTION_ARGS);
+Datum binary_upgrade_set_next_heap_pg_class_oid(PG_FUNCTION_ARGS);
+Datum binary_upgrade_set_next_index_pg_class_oid(PG_FUNCTION_ARGS);
+Datum binary_upgrade_set_next_toast_pg_class_oid(PG_FUNCTION_ARGS);
+Datum binary_upgrade_set_next_pg_enum_oid(PG_FUNCTION_ARGS);
+Datum binary_upgrade_set_next_pg_authid_oid(PG_FUNCTION_ARGS);
+Datum binary_upgrade_create_empty_extension(PG_FUNCTION_ARGS);
 
-PG_FUNCTION_INFO_V1(set_next_pg_type_oid);
-PG_FUNCTION_INFO_V1(set_next_array_pg_type_oid);
-PG_FUNCTION_INFO_V1(set_next_toast_pg_type_oid);
-
-PG_FUNCTION_INFO_V1(set_next_heap_pg_class_oid);
-PG_FUNCTION_INFO_V1(set_next_index_pg_class_oid);
-PG_FUNCTION_INFO_V1(set_next_toast_pg_class_oid);
-
-PG_FUNCTION_INFO_V1(set_next_pg_enum_oid);
-PG_FUNCTION_INFO_V1(set_next_pg_authid_oid);
-
-PG_FUNCTION_INFO_V1(create_empty_extension);
 
 #define CHECK_IS_BINARY_UPGRADE                                                                \
 do {                                                                                                                   \
@@ -47,7 +40,7 @@ do {                                                                                                                  \
 } while (0)
 
 Datum
-set_next_pg_type_oid(PG_FUNCTION_ARGS)
+binary_upgrade_set_next_pg_type_oid(PG_FUNCTION_ARGS)
 {
        Oid                     typoid = PG_GETARG_OID(0);
 
@@ -58,7 +51,7 @@ set_next_pg_type_oid(PG_FUNCTION_ARGS)
 }
 
 Datum
-set_next_array_pg_type_oid(PG_FUNCTION_ARGS)
+binary_upgrade_set_next_array_pg_type_oid(PG_FUNCTION_ARGS)
 {
        Oid                     typoid = PG_GETARG_OID(0);
 
@@ -69,7 +62,7 @@ set_next_array_pg_type_oid(PG_FUNCTION_ARGS)
 }
 
 Datum
-set_next_toast_pg_type_oid(PG_FUNCTION_ARGS)
+binary_upgrade_set_next_toast_pg_type_oid(PG_FUNCTION_ARGS)
 {
        Oid                     typoid = PG_GETARG_OID(0);
 
@@ -80,7 +73,7 @@ set_next_toast_pg_type_oid(PG_FUNCTION_ARGS)
 }
 
 Datum
-set_next_heap_pg_class_oid(PG_FUNCTION_ARGS)
+binary_upgrade_set_next_heap_pg_class_oid(PG_FUNCTION_ARGS)
 {
        Oid                     reloid = PG_GETARG_OID(0);
 
@@ -91,7 +84,7 @@ set_next_heap_pg_class_oid(PG_FUNCTION_ARGS)
 }
 
 Datum
-set_next_index_pg_class_oid(PG_FUNCTION_ARGS)
+binary_upgrade_set_next_index_pg_class_oid(PG_FUNCTION_ARGS)
 {
        Oid                     reloid = PG_GETARG_OID(0);
 
@@ -102,7 +95,7 @@ set_next_index_pg_class_oid(PG_FUNCTION_ARGS)
 }
 
 Datum
-set_next_toast_pg_class_oid(PG_FUNCTION_ARGS)
+binary_upgrade_set_next_toast_pg_class_oid(PG_FUNCTION_ARGS)
 {
        Oid                     reloid = PG_GETARG_OID(0);
 
@@ -113,7 +106,7 @@ set_next_toast_pg_class_oid(PG_FUNCTION_ARGS)
 }
 
 Datum
-set_next_pg_enum_oid(PG_FUNCTION_ARGS)
+binary_upgrade_set_next_pg_enum_oid(PG_FUNCTION_ARGS)
 {
        Oid                     enumoid = PG_GETARG_OID(0);
 
@@ -124,7 +117,7 @@ set_next_pg_enum_oid(PG_FUNCTION_ARGS)
 }
 
 Datum
-set_next_pg_authid_oid(PG_FUNCTION_ARGS)
+binary_upgrade_set_next_pg_authid_oid(PG_FUNCTION_ARGS)
 {
        Oid                     authoid = PG_GETARG_OID(0);
 
@@ -134,7 +127,7 @@ set_next_pg_authid_oid(PG_FUNCTION_ARGS)
 }
 
 Datum
-create_empty_extension(PG_FUNCTION_ARGS)
+binary_upgrade_create_empty_extension(PG_FUNCTION_ARGS)
 {
        text       *extName = PG_GETARG_TEXT_PP(0);
        text       *schemaName = PG_GETARG_TEXT_PP(1);
index 7da5c411949a4b665f63ba5d6c645b94e7aeac93..fe08c1b15d2e96ef26bf46d4b9a381317d650f66 100644 (file)
@@ -3045,7 +3045,7 @@ binary_upgrade_set_type_oids_by_type_oid(Archive *fout,
 
        appendPQExpBufferStr(upgrade_buffer, "\n-- For binary upgrade, must preserve pg_type oid\n");
        appendPQExpBuffer(upgrade_buffer,
-        "SELECT binary_upgrade.set_next_pg_type_oid('%u'::pg_catalog.oid);\n\n",
+        "SELECT pg_catalog.binary_upgrade_set_next_pg_type_oid('%u'::pg_catalog.oid);\n\n",
                                          pg_type_oid);
 
        /* we only support old >= 8.3 for binary upgrades */
@@ -3064,7 +3064,7 @@ binary_upgrade_set_type_oids_by_type_oid(Archive *fout,
                appendPQExpBufferStr(upgrade_buffer,
                           "\n-- For binary upgrade, must preserve pg_type array oid\n");
                appendPQExpBuffer(upgrade_buffer,
-                                                 "SELECT binary_upgrade.set_next_array_pg_type_oid('%u'::pg_catalog.oid);\n\n",
+                                                 "SELECT pg_catalog.binary_upgrade_set_next_array_pg_type_oid('%u'::pg_catalog.oid);\n\n",
                                                  pg_type_array_oid);
        }
 
@@ -3106,7 +3106,7 @@ binary_upgrade_set_type_oids_by_rel_oid(Archive *fout,
 
                appendPQExpBufferStr(upgrade_buffer, "\n-- For binary upgrade, must preserve pg_type toast oid\n");
                appendPQExpBuffer(upgrade_buffer,
-                                                 "SELECT binary_upgrade.set_next_toast_pg_type_oid('%u'::pg_catalog.oid);\n\n",
+                                                 "SELECT pg_catalog.binary_upgrade_set_next_toast_pg_type_oid('%u'::pg_catalog.oid);\n\n",
                                                  pg_type_toast_oid);
 
                toast_set = true;
@@ -3146,7 +3146,7 @@ binary_upgrade_set_pg_class_oids(Archive *fout,
        if (!is_index)
        {
                appendPQExpBuffer(upgrade_buffer,
-                                                 "SELECT binary_upgrade.set_next_heap_pg_class_oid('%u'::pg_catalog.oid);\n",
+                                                 "SELECT pg_catalog.binary_upgrade_set_next_heap_pg_class_oid('%u'::pg_catalog.oid);\n",
                                                  pg_class_oid);
                /* only tables have toast tables, not indexes */
                if (OidIsValid(pg_class_reltoastrelid))
@@ -3161,18 +3161,18 @@ binary_upgrade_set_pg_class_oids(Archive *fout,
                         */
 
                        appendPQExpBuffer(upgrade_buffer,
-                                                         "SELECT binary_upgrade.set_next_toast_pg_class_oid('%u'::pg_catalog.oid);\n",
+                                                         "SELECT pg_catalog.binary_upgrade_set_next_toast_pg_class_oid('%u'::pg_catalog.oid);\n",
                                                          pg_class_reltoastrelid);
 
                        /* every toast table has an index */
                        appendPQExpBuffer(upgrade_buffer,
-                                                         "SELECT binary_upgrade.set_next_index_pg_class_oid('%u'::pg_catalog.oid);\n",
+                                                         "SELECT pg_catalog.binary_upgrade_set_next_index_pg_class_oid('%u'::pg_catalog.oid);\n",
                                                          pg_index_indexrelid);
                }
        }
        else
                appendPQExpBuffer(upgrade_buffer,
-                                                 "SELECT binary_upgrade.set_next_index_pg_class_oid('%u'::pg_catalog.oid);\n",
+                                                 "SELECT pg_catalog.binary_upgrade_set_next_index_pg_class_oid('%u'::pg_catalog.oid);\n",
                                                  pg_class_oid);
 
        appendPQExpBufferChar(upgrade_buffer, '\n');
@@ -8352,7 +8352,7 @@ dumpExtension(Archive *fout, DumpOptions *dopt, ExtensionInfo *extinfo)
                appendPQExpBuffer(q, "DROP EXTENSION IF EXISTS %s;\n", qextname);
 
                appendPQExpBufferStr(q,
-                                                        "SELECT binary_upgrade.create_empty_extension(");
+                                                        "SELECT pg_catalog.binary_upgrade_create_empty_extension(");
                appendStringLiteralAH(q, extinfo->dobj.name, fout);
                appendPQExpBufferStr(q, ", ");
                appendStringLiteralAH(q, extinfo->namespace, fout);
@@ -8530,7 +8530,7 @@ dumpEnumType(Archive *fout, DumpOptions *dopt, TypeInfo *tyinfo)
                        if (i == 0)
                                appendPQExpBufferStr(q, "\n-- For binary upgrade, must preserve pg_enum oids\n");
                        appendPQExpBuffer(q,
-                                                         "SELECT binary_upgrade.set_next_pg_enum_oid('%u'::pg_catalog.oid);\n",
+                                                         "SELECT pg_catalog.binary_upgrade_set_next_pg_enum_oid('%u'::pg_catalog.oid);\n",
                                                          enum_oid);
                        appendPQExpBuffer(q, "ALTER TYPE %s.",
                                                          fmtId(tyinfo->dobj.namespace->dobj.name));
index 6a7a6415f6e3902c5e63883e71a735c65bd15ca0..7169ad09ccfa75c13a7ff138dc6a48368bdc075e 100644 (file)
@@ -781,7 +781,7 @@ dumpRoles(PGconn *conn)
                {
                        appendPQExpBufferStr(buf, "\n-- For binary upgrade, must preserve pg_authid.oid\n");
                        appendPQExpBuffer(buf,
-                                                         "SELECT binary_upgrade.set_next_pg_authid_oid('%u'::pg_catalog.oid);\n\n",
+                                                         "SELECT pg_catalog.binary_upgrade_set_next_pg_authid_oid('%u'::pg_catalog.oid);\n\n",
                                                          auth_oid);
                }
 
index 9caa0960d50a23746dda45d0c218e3fa3714993c..8469c82d27b6165ab0f90f1fa243feb9428cdae5 100644 (file)
@@ -5181,6 +5181,26 @@ DESCR("rank of hypothetical row without gaps");
 DATA(insert OID = 3993 ( dense_rank_final      PGNSP PGUID 12 1 0 2276 0 f f f f f f i 2 0 20 "2281 2276" "{2281,2276}" "{i,v}" _null_ _null_  hypothetical_dense_rank_final _null_ _null_ _null_ ));
 DESCR("aggregate final function");
 
+/* pg_upgrade support */
+DATA(insert OID = 3582 ( binary_upgrade_set_next_pg_type_oid PGNSP PGUID  12 1 0 0 0 f f f f t f v 1 0 2278 "26" _null_ _null_ _null_ _null_ binary_upgrade_set_next_pg_type_oid _null_ _null_ _null_ ));
+DESCR("for use by pg_upgrade");
+DATA(insert OID = 3584 ( binary_upgrade_set_next_array_pg_type_oid PGNSP PGUID  12 1 0 0 0 f f f f t f v 1 0 2278 "26" _null_ _null_ _null_ _null_ binary_upgrade_set_next_array_pg_type_oid _null_ _null_ _null_ ));
+DESCR("for use by pg_upgrade");
+DATA(insert OID = 3585 ( binary_upgrade_set_next_toast_pg_type_oid PGNSP PGUID  12 1 0 0 0 f f f f t f v 1 0 2278 "26" _null_ _null_ _null_ _null_ binary_upgrade_set_next_toast_pg_type_oid _null_ _null_ _null_ ));
+DESCR("for use by pg_upgrade");
+DATA(insert OID = 3586 ( binary_upgrade_set_next_heap_pg_class_oid PGNSP PGUID  12 1 0 0 0 f f f f t f v 1 0 2278 "26" _null_ _null_ _null_ _null_ binary_upgrade_set_next_heap_pg_class_oid _null_ _null_ _null_ ));
+DESCR("for use by pg_upgrade");
+DATA(insert OID = 3587 ( binary_upgrade_set_next_index_pg_class_oid PGNSP PGUID  12 1 0 0 0 f f f f t f v 1 0 2278 "26" _null_ _null_ _null_ _null_ binary_upgrade_set_next_index_pg_class_oid _null_ _null_ _null_ ));
+DESCR("for use by pg_upgrade");
+DATA(insert OID = 3588 ( binary_upgrade_set_next_toast_pg_class_oid PGNSP PGUID  12 1 0 0 0 f f f f t f v 1 0 2278 "26" _null_ _null_ _null_ _null_ binary_upgrade_set_next_toast_pg_class_oid _null_ _null_ _null_ ));
+DESCR("for use by pg_upgrade");
+DATA(insert OID = 3589 ( binary_upgrade_set_next_pg_enum_oid PGNSP PGUID  12 1 0 0 0 f f f f t f v 1 0 2278 "26" _null_ _null_ _null_ _null_ binary_upgrade_set_next_pg_enum_oid _null_ _null_ _null_ ));
+DESCR("for use by pg_upgrade");
+DATA(insert OID = 3590 ( binary_upgrade_set_next_pg_authid_oid PGNSP PGUID  12 1 0 0 0 f f f f t f v 1 0 2278 "26" _null_ _null_ _null_ _null_ binary_upgrade_set_next_pg_authid_oid _null_ _null_ _null_ ));
+DESCR("for use by pg_upgrade");
+DATA(insert OID = 3591 ( binary_upgrade_create_empty_extension PGNSP PGUID  12 1 0 0 0 f f f f t f v 7 0 2278 "25 25 16 25 1028 1009 1009" _null_ _null_ _null_ _null_ binary_upgrade_create_empty_extension _null_ _null_ _null_ ));
+DESCR("for use by pg_upgrade");
+
 
 /*
  * Symbolic values for provolatile column: these indicate whether the result