<!--
-$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">
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>
<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>
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;