aboutsummaryrefslogtreecommitdiff
path: root/src/backend/utils/adt/pg_upgrade_support.c
diff options
context:
space:
mode:
authorAmit Kapila <akapila@postgresql.org>2023-12-07 08:42:48 +0530
committerAmit Kapila <akapila@postgresql.org>2023-12-07 08:42:48 +0530
commit0bf62460bb9e86101d24e31e915c2e8922675296 (patch)
treea106f9e1152d03df618ca5000671014eebd88932 /src/backend/utils/adt/pg_upgrade_support.c
parentc426f7c2b36a5efd9bcef2a2dfcc559f7879cd84 (diff)
downloadpostgresql-0bf62460bb9e86101d24e31e915c2e8922675296.tar.gz
postgresql-0bf62460bb9e86101d24e31e915c2e8922675296.zip
Fix issues in binary_upgrade_logical_slot_has_caught_up().
The commit 29d0a77fa6 labelled binary_upgrade_logical_slot_has_caught_up() as a non-strict function to allow providing a better error message to callers in case the passed slot_name is NULL. On further discussion, it seems that it is not helpful to have a different error message for NULL input in this function, so this patch marks the function as strict. This patch also removes the explicit permission check to use replication slots as this function is invoked only by superusers and instead adds an Assert. Reported-by: Masahiko Sawada Author: Hayato Kuroda Reviewed-by: Vignesh C Discussion: https://postgr.es/m/CAD21AoDSyiBKkMXBxN_gUayZZUCOgyHnG8Ge8rcPXNP3Tf6B4g@mail.gmail.com
Diffstat (limited to 'src/backend/utils/adt/pg_upgrade_support.c')
-rw-r--r--src/backend/utils/adt/pg_upgrade_support.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/backend/utils/adt/pg_upgrade_support.c b/src/backend/utils/adt/pg_upgrade_support.c
index 2f6fc86c3df..92921b0239d 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);