aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/backend/replication/walsender.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/src/backend/replication/walsender.c b/src/backend/replication/walsender.c
index 14b43d855ba..8a639234569 100644
--- a/src/backend/replication/walsender.c
+++ b/src/backend/replication/walsender.c
@@ -1141,8 +1141,20 @@ pg_stat_get_wal_senders(PG_FUNCTION_ARGS)
memset(nulls, 0, sizeof(nulls));
values[0] = Int32GetDatum(walsnd->pid);
- values[1] = CStringGetTextDatum(WalSndGetStateString(state));
- values[2] = CStringGetTextDatum(sent_location);
+ if (!superuser())
+ {
+ /*
+ * Only superusers can see details. Other users only get
+ * the pid value to know it's a walsender, but no details.
+ */
+ nulls[1] = true;
+ nulls[2] = true;
+ }
+ else
+ {
+ values[1] = CStringGetTextDatum(WalSndGetStateString(state));
+ values[2] = CStringGetTextDatum(sent_location);
+ }
tuplestore_putvalues(tupstore, tupdesc, values, nulls);
}