<entry>One row per WAL sender process, showing process <acronym>ID</>,
user OID, user name, application name, client's address and port number,
time at which the server process began execution, current WAL sender
- state and transaction log location.
+ state and transaction log location. The columns detailing what exactly
+ the connection is doing are only visible if the user examining the view
+ is a superuser.
</entry>
</row>
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);
}