diff --git a/doc/src/sgml/ref/psql-ref.sgml b/doc/src/sgml/ref/psql-ref.sgml index c41593c..04bde18 100644 --- a/doc/src/sgml/ref/psql-ref.sgml +++ b/doc/src/sgml/ref/psql-ref.sgml @@ -1178,9 +1178,10 @@ testdb=> - Lists functions, together with their arguments, return types, and - function types, which are classified as agg (aggregate), - normal, trigger, or window. + Lists functions, together with their arguments, return types, + function types, and security, which are classified as + agg (aggregate), normal, trigger, + or window. To display only functions of specific type(s), add the corresponding letters a, n, t, or w to the command. diff --git a/src/bin/psql/describe.c b/src/bin/psql/describe.c index 15d02ee..5e5cefe 100644 --- a/src/bin/psql/describe.c +++ b/src/bin/psql/describe.c @@ -254,7 +254,7 @@ describeFunctions(const char *functypes, const char *pattern, bool verbose, bool " WHEN p.proiswindow THEN '%s'\n" " WHEN p.prorettype = 'pg_catalog.trigger'::pg_catalog.regtype THEN '%s'\n" " ELSE '%s'\n" - "END as \"%s\"", + " END as \"%s\"", gettext_noop("Result data type"), gettext_noop("Argument data types"), /* translator: "agg" is short for "aggregate" */ @@ -329,14 +329,19 @@ describeFunctions(const char *functypes, const char *pattern, bool verbose, bool if (verbose) appendPQExpBuffer(&buf, ",\n CASE\n" + " WHEN prosecdef THEN 'definer'\n" + " ELSE 'invoker'\n" + " END AS \"%s\"" + ",\n CASE\n" " WHEN p.provolatile = 'i' THEN '%s'\n" " WHEN p.provolatile = 's' THEN '%s'\n" " WHEN p.provolatile = 'v' THEN '%s'\n" - "END as \"%s\"" + " END as \"%s\"" ",\n pg_catalog.pg_get_userbyid(p.proowner) as \"%s\",\n" " l.lanname as \"%s\",\n" " p.prosrc as \"%s\",\n" " pg_catalog.obj_description(p.oid, 'pg_proc') as \"%s\"", + gettext_noop("Security"), gettext_noop("immutable"), gettext_noop("stable"), gettext_noop("volatile"),