aboutsummaryrefslogtreecommitdiff
path: root/src/backend/replication/logical/logicalfuncs.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/replication/logical/logicalfuncs.c')
-rw-r--r--src/backend/replication/logical/logicalfuncs.c16
1 files changed, 11 insertions, 5 deletions
diff --git a/src/backend/replication/logical/logicalfuncs.c b/src/backend/replication/logical/logicalfuncs.c
index 1a38f56a7cc..1977f098c79 100644
--- a/src/backend/replication/logical/logicalfuncs.c
+++ b/src/backend/replication/logical/logicalfuncs.c
@@ -17,14 +17,18 @@
#include <unistd.h>
-#include "access/xlog_internal.h"
-#include "catalog/pg_type.h"
#include "fmgr.h"
#include "funcapi.h"
-#include "mb/pg_wchar.h"
#include "miscadmin.h"
+
+#include "access/xlog_internal.h"
+
+#include "catalog/pg_type.h"
+
#include "nodes/makefuncs.h"
-#include "utils/acl.h"
+
+#include "mb/pg_wchar.h"
+
#include "utils/array.h"
#include "utils/builtins.h"
#include "utils/inval.h"
@@ -32,9 +36,11 @@
#include "utils/pg_lsn.h"
#include "utils/resowner.h"
#include "utils/lsyscache.h"
+
#include "replication/decode.h"
#include "replication/logical.h"
#include "replication/logicalfuncs.h"
+
#include "storage/fd.h"
/* private date for writing out data */
@@ -199,7 +205,7 @@ XLogRead(char *buf, TimeLineID tli, XLogRecPtr startptr, Size count)
static void
check_permissions(void)
{
- if (!have_role_attribute(ROLE_ATTR_REPLICATION))
+ if (!superuser() && !has_rolreplication(GetUserId()))
ereport(ERROR,
(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
(errmsg("must be superuser or replication role to use replication slots"))));