diff options
author | Jan Wieck <JanWieck@Yahoo.com> | 2004-02-12 01:44:22 +0000 |
---|---|---|
committer | Jan Wieck <JanWieck@Yahoo.com> | 2004-02-12 01:44:22 +0000 |
commit | 1ecd035b318f949090be59d1e1826b3d0c8f03e9 (patch) | |
tree | b849fca9de2457deda521b164812954aaa5038f9 /src/backend/utils/adt/pgstatfuncs.c | |
parent | c3c09be34b6b0d7892f1087a23fc6eb93f3c4f04 (diff) | |
download | postgresql-1ecd035b318f949090be59d1e1826b3d0c8f03e9.tar.gz postgresql-1ecd035b318f949090be59d1e1826b3d0c8f03e9.zip |
Added hints about the reason, why the command string in
the view pg_stat_activity is missing, as per Bruces suggestion.
Jan
Diffstat (limited to 'src/backend/utils/adt/pgstatfuncs.c')
-rw-r--r-- | src/backend/utils/adt/pgstatfuncs.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c index 440783764ae..03166eac482 100644 --- a/src/backend/utils/adt/pgstatfuncs.c +++ b/src/backend/utils/adt/pgstatfuncs.c @@ -286,20 +286,24 @@ pg_stat_get_backend_activity(PG_FUNCTION_ARGS) PgStat_StatBeEntry *beentry; int32 beid; int len; + char *activity; text *result; beid = PG_GETARG_INT32(0); if ((beentry = pgstat_fetch_stat_beentry(beid)) == NULL) - PG_RETURN_NULL(); - - if (!superuser() && beentry->userid != GetUserId()) - PG_RETURN_NULL(); + activity = "<backend information not available>"; + else if (!superuser() && beentry->userid != GetUserId()) + activity = "<insufficient privilege>"; + else if (*(beentry->activity) == '\0') + activity = "<command string not enabled>"; + else + activity = beentry->activity; - len = strlen(beentry->activity); + len = strlen(activity); result = palloc(VARHDRSZ + len); VARATT_SIZEP(result) = VARHDRSZ + len; - memcpy(VARDATA(result), beentry->activity, len); + memcpy(VARDATA(result), activity, len); PG_RETURN_TEXT_P(result); } |