diff --git a/src/backend/utils/adt/pg_upgrade_support.c b/src/backend/utils/adt/pg_upgrade_support.c index 2f6fc86c3d..92921b0239 100644 --- a/src/backend/utils/adt/pg_upgrade_support.c +++ b/src/backend/utils/adt/pg_upgrade_support.c @@ -281,11 +281,11 @@ binary_upgrade_logical_slot_has_caught_up(PG_FUNCTION_ARGS) CHECK_IS_BINARY_UPGRADE; - /* We must check before dereferencing the argument */ - if (PG_ARGISNULL(0)) - elog(ERROR, "null argument to binary_upgrade_validate_wal_records is not allowed"); - - CheckSlotPermissions(); + /* + * Binary upgrades only allowed super-user connections so we must have + * permission to use replication slots. + */ + Assert(has_rolreplication(GetUserId())); slot_name = PG_GETARG_NAME(0); diff --git a/src/include/catalog/catversion.h b/src/include/catalog/catversion.h index c4c59bfe6f..a06a8f0b23 100644 --- a/src/include/catalog/catversion.h +++ b/src/include/catalog/catversion.h @@ -57,6 +57,6 @@ */ /* yyyymmddN */ -#define CATALOG_VERSION_NO 202311271 +#define CATALOG_VERSION_NO 202312071 #endif diff --git a/src/include/catalog/pg_proc.dat b/src/include/catalog/pg_proc.dat index fb58dee3bc..77e8b13764 100644 --- a/src/include/catalog/pg_proc.dat +++ b/src/include/catalog/pg_proc.dat @@ -11392,9 +11392,8 @@ proparallel => 'u', prorettype => 'void', proargtypes => 'oid', prosrc => 'binary_upgrade_set_next_pg_tablespace_oid' }, { oid => '8046', descr => 'for use by pg_upgrade', - proname => 'binary_upgrade_logical_slot_has_caught_up', proisstrict => 'f', - provolatile => 'v', proparallel => 'u', prorettype => 'bool', - proargtypes => 'name', + proname => 'binary_upgrade_logical_slot_has_caught_up', provolatile => 'v', + proparallel => 'u', prorettype => 'bool', proargtypes => 'name', prosrc => 'binary_upgrade_logical_slot_has_caught_up' }, # conversion functions