aboutsummaryrefslogtreecommitdiff
path: root/src/backend/replication/logical/logicalfuncs.c
diff options
context:
space:
mode:
authorMichael Paquier <michael@paquier.xyz>2021-09-14 10:15:49 +0900
committerMichael Paquier <michael@paquier.xyz>2021-09-14 10:15:49 +0900
commit026ed8efd6b1d774924937baf3209b676df4531f (patch)
tree6c24ca0779fd43ffad7370df62b8b3a5d86068cf /src/backend/replication/logical/logicalfuncs.c
parent138531f1bbc333745bd8422371c07e7e108d5528 (diff)
downloadpostgresql-026ed8efd6b1d774924937baf3209b676df4531f.tar.gz
postgresql-026ed8efd6b1d774924937baf3209b676df4531f.zip
Remove code duplication for permission checks with replication slots
Two functions, both named check_permissions(), used the same checks to verify if a user had required privileges to work on replication slots. This commit removes the duplication, and moves the function doing the checks to slot.c to be centralized. Author: Bharath Rupireddy Reviewed-by: Nathan Bossart, Euler Taveira Discussion: https://postgr.es/m/CALj2ACUPpVw1u7sQocFVWrSs0n10pt_G_4NPZKSxXK6cW1dErw@mail.gmail.com
Diffstat (limited to 'src/backend/replication/logical/logicalfuncs.c')
-rw-r--r--src/backend/replication/logical/logicalfuncs.c11
1 files changed, 1 insertions, 10 deletions
diff --git a/src/backend/replication/logical/logicalfuncs.c b/src/backend/replication/logical/logicalfuncs.c
index 1f38c5b33ea..e59939aad11 100644
--- a/src/backend/replication/logical/logicalfuncs.c
+++ b/src/backend/replication/logical/logicalfuncs.c
@@ -95,15 +95,6 @@ LogicalOutputWrite(LogicalDecodingContext *ctx, XLogRecPtr lsn, TransactionId xi
p->returned_rows++;
}
-static void
-check_permissions(void)
-{
- if (!superuser() && !has_rolreplication(GetUserId()))
- ereport(ERROR,
- (errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
- errmsg("must be superuser or replication role to use replication slots")));
-}
-
/*
* Helper function for the various SQL callable logical decoding functions.
*/
@@ -124,7 +115,7 @@ pg_logical_slot_get_changes_guts(FunctionCallInfo fcinfo, bool confirm, bool bin
List *options = NIL;
DecodingOutputState *p;
- check_permissions();
+ CheckSlotPermissions();
CheckLogicalDecodingRequirements();