From 30982be4e5019684e1772dd9170aaa53f5a8e894 Mon Sep 17 00:00:00 2001 From: Peter Eisentraut Date: Tue, 10 Mar 2015 22:33:25 -0400 Subject: [PATCH] Integrate pg_upgrade_support module into backend 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 --- contrib/Makefile | 1 - contrib/pg_upgrade/dump.c | 2 +- contrib/pg_upgrade/function.c | 113 ------------------ contrib/pg_upgrade/pg_upgrade.c | 27 ----- contrib/pg_upgrade/pg_upgrade.h | 2 - contrib/pg_upgrade/test.sh | 1 - contrib/pg_upgrade_support/Makefile | 16 --- doc/src/sgml/pgupgrade.sgml | 5 +- src/backend/catalog/heap.c | 2 +- src/backend/catalog/index.c | 2 +- src/backend/catalog/pg_enum.c | 2 +- src/backend/catalog/pg_type.c | 2 +- src/backend/catalog/toasting.c | 2 +- src/backend/commands/typecmds.c | 2 +- src/backend/commands/user.c | 2 +- src/backend/utils/adt/Makefile | 3 +- .../backend/utils/adt}/pg_upgrade_support.c | 45 +++---- src/bin/pg_dump/pg_dump.c | 18 +-- src/bin/pg_dump/pg_dumpall.c | 2 +- src/include/catalog/pg_proc.h | 20 ++++ 20 files changed, 61 insertions(+), 208 deletions(-) delete mode 100644 contrib/pg_upgrade_support/Makefile rename {contrib/pg_upgrade_support => src/backend/utils/adt}/pg_upgrade_support.c (73%) diff --git a/contrib/Makefile b/contrib/Makefile index d63e441cb5..074e39477b 100644 --- a/contrib/Makefile +++ b/contrib/Makefile @@ -37,7 +37,6 @@ SUBDIRS = \ pg_test_timing \ pg_trgm \ pg_upgrade \ - pg_upgrade_support \ pgcrypto \ pgrowlocks \ pgstattuple \ diff --git a/contrib/pg_upgrade/dump.c b/contrib/pg_upgrade/dump.c index 941c4bbdd7..906e85f2b5 100644 --- a/contrib/pg_upgrade/dump.c +++ b/contrib/pg_upgrade/dump.c @@ -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 */ diff --git a/contrib/pg_upgrade/function.c b/contrib/pg_upgrade/function.c index deffe04647..d8009d195d 100644 --- a/contrib/pg_upgrade/function.c +++ b/contrib/pg_upgrade/function.c @@ -13,112 +13,6 @@ #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)); diff --git a/contrib/pg_upgrade/pg_upgrade.c b/contrib/pg_upgrade/pg_upgrade.c index eb48da779f..78bd29fb95 100644 --- a/contrib/pg_upgrade/pg_upgrade.c +++ b/contrib/pg_upgrade/pg_upgrade.c @@ -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(); } /* diff --git a/contrib/pg_upgrade/pg_upgrade.h b/contrib/pg_upgrade/pg_upgrade.h index f6b13c0878..ace3465f98 100644 --- a/contrib/pg_upgrade/pg_upgrade.h +++ b/contrib/pg_upgrade/pg_upgrade.h @@ -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); diff --git a/contrib/pg_upgrade/test.sh b/contrib/pg_upgrade/test.sh index 75b635799d..2e9f97688c 100644 --- a/contrib/pg_upgrade/test.sh +++ b/contrib/pg_upgrade/test.sh @@ -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 index f7def160c3..0000000000 --- a/contrib/pg_upgrade_support/Makefile +++ /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 diff --git a/doc/src/sgml/pgupgrade.sgml b/doc/src/sgml/pgupgrade.sgml index 0d79fb5f52..45bceff9be 100644 --- a/doc/src/sgml/pgupgrade.sgml +++ b/doc/src/sgml/pgupgrade.sgml @@ -253,11 +253,10 @@ make prefix=/usr/local/pgsql.new install - Install pg_upgrade and pg_upgrade_support + Install pg_upgrade - Install the pg_upgrade binary and - pg_upgrade_support library in the new PostgreSQL + Install the pg_upgrade binary in the new PostgreSQL installation. diff --git a/src/backend/catalog/heap.c b/src/backend/catalog/heap.c index c518c50b21..d04e94d74f 100644 --- a/src/backend/catalog/heap.c +++ b/src/backend/catalog/heap.c @@ -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; diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index d8ff554387..ac3b785b5a 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -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 */ diff --git a/src/backend/catalog/pg_enum.c b/src/backend/catalog/pg_enum.c index d87090a31b..c880486c4b 100644 --- a/src/backend/catalog/pg_enum.c +++ b/src/backend/catalog/pg_enum.c @@ -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); diff --git a/src/backend/catalog/pg_type.c b/src/backend/catalog/pg_type.c index d1ed53f5b4..32453c3bb8 100644 --- a/src/backend/catalog/pg_type.c +++ b/src/backend/catalog/pg_type.c @@ -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; /* ---------------------------------------------------------------- diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index d14c33ce02..c99d3534ce 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -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, diff --git a/src/backend/commands/typecmds.c b/src/backend/commands/typecmds.c index 67e2ae22c6..907ba1100a 100644 --- a/src/backend/commands/typecmds.c +++ b/src/backend/commands/typecmds.c @@ -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, diff --git a/src/backend/commands/user.c b/src/backend/commands/user.c index 75f1b3cd4f..456c27ebe0 100644 --- a/src/backend/commands/user.c +++ b/src/backend/commands/user.c @@ -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; diff --git a/src/backend/utils/adt/Makefile b/src/backend/utils/adt/Makefile index 20e5ff10c7..1f1bee7fb5 100644 --- a/src/backend/utils/adt/Makefile +++ b/src/backend/utils/adt/Makefile @@ -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 \ diff --git a/contrib/pg_upgrade_support/pg_upgrade_support.c b/src/backend/utils/adt/pg_upgrade_support.c similarity index 73% rename from contrib/pg_upgrade_support/pg_upgrade_support.c rename to src/backend/utils/adt/pg_upgrade_support.c index f477973449..d69fa53567 100644 --- a/contrib/pg_upgrade_support/pg_upgrade_support.c +++ b/src/backend/utils/adt/pg_upgrade_support.c @@ -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" @@ -19,24 +19,17 @@ #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); diff --git a/src/bin/pg_dump/pg_dump.c b/src/bin/pg_dump/pg_dump.c index 7da5c41194..fe08c1b15d 100644 --- a/src/bin/pg_dump/pg_dump.c +++ b/src/bin/pg_dump/pg_dump.c @@ -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)); diff --git a/src/bin/pg_dump/pg_dumpall.c b/src/bin/pg_dump/pg_dumpall.c index 6a7a6415f6..7169ad09cc 100644 --- a/src/bin/pg_dump/pg_dumpall.c +++ b/src/bin/pg_dump/pg_dumpall.c @@ -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); } diff --git a/src/include/catalog/pg_proc.h b/src/include/catalog/pg_proc.h index 9caa0960d5..8469c82d27 100644 --- a/src/include/catalog/pg_proc.h +++ b/src/include/catalog/pg_proc.h @@ -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 -- GitLab