aboutsummaryrefslogtreecommitdiff
path: root/src/backend/utils/adt/pgstatfuncs.c
diff options
context:
space:
mode:
authorJan Wieck <JanWieck@Yahoo.com>2004-02-12 01:44:22 +0000
committerJan Wieck <JanWieck@Yahoo.com>2004-02-12 01:44:22 +0000
commit1ecd035b318f949090be59d1e1826b3d0c8f03e9 (patch)
treeb849fca9de2457deda521b164812954aaa5038f9 /src/backend/utils/adt/pgstatfuncs.c
parentc3c09be34b6b0d7892f1087a23fc6eb93f3c4f04 (diff)
downloadpostgresql-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.c16
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);
}