It would also be handy if users could see their own pg_stat_activity

queries while the rest remain blank.

Kevin Brown
This commit is contained in:
Bruce Momjian 2003-03-20 18:51:16 +00:00
parent bd18c50ba8
commit db5d7ccac9
2 changed files with 10 additions and 8 deletions

View file

@ -1,5 +1,5 @@
<!--
$Header: /cvsroot/pgsql/doc/src/sgml/monitoring.sgml,v 1.16 2003/03/20 03:34:55 momjian Exp $
$Header: /cvsroot/pgsql/doc/src/sgml/monitoring.sgml,v 1.17 2003/03/20 18:51:16 momjian Exp $
-->
<chapter id="monitoring">
@ -212,9 +212,10 @@ postgres: <replaceable>user</> <replaceable>database</> <replaceable>host</> <re
data on the current query are only available if the
<varname>STATS_COMMAND_STRING</varname> configuration option has
been enabled. Furthermore, these columns can only be accessed by
superusers; to other users, they always appear NULL. (Note that
because of the collector's reporting delay, current query will
only be up-to-date for long-running queries.)</entry>
superusers; or when the user examining the view is the same as the user
in the row; for others it reads as null. (Note that because of the
collector's reporting delay, current query will only be up-to-date for
long-running queries.)</entry>
</row>
<row>
@ -534,7 +535,8 @@ postgres: <replaceable>user</> <replaceable>database</> <replaceable>host</> <re
<entry><type>text</type></entry>
<entry>
Current query of backend process (NULL if caller is not
superuser, or <varname>STATS_COMMAND_STRING</varname> is not enabled)
superuser, or is the same user as that of the backend being queried,
or <varname>STATS_COMMAND_STRING</varname> is not enabled)
</entry>
</row>

View file

@ -284,14 +284,14 @@ pg_stat_get_backend_activity(PG_FUNCTION_ARGS)
int len;
text *result;
if (!superuser())
PG_RETURN_NULL();
beid = PG_GETARG_INT32(0);
if ((beentry = pgstat_fetch_stat_beentry(beid)) == NULL)
PG_RETURN_NULL();
if (!superuser() && beentry->userid != GetUserId())
PG_RETURN_NULL();
len = strlen(beentry->activity);
result = palloc(VARHDRSZ + len);
VARATT_SIZEP(result) = VARHDRSZ + len;