diff --git a/src/bin/psql/describe.c b/src/bin/psql/describe.c index 6df42fb..d97e5fd 100644 --- a/src/bin/psql/describe.c +++ b/src/bin/psql/describe.c @@ -245,7 +245,11 @@ 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\",\n" + " CASE\n" + " WHEN prosecdef THEN 'definer'\n" + " ELSE 'invoker'\n" + " END AS \"%s\"\n", gettext_noop("Result data type"), gettext_noop("Argument data types"), /* translator: "agg" is short for "aggregate" */ @@ -253,7 +257,8 @@ describeFunctions(const char *functypes, const char *pattern, bool verbose, bool gettext_noop("window"), gettext_noop("trigger"), gettext_noop("normal"), - gettext_noop("Type")); + gettext_noop("Type"), + gettext_noop("Security")); else if (pset.sversion >= 80100) appendPQExpBuffer(&buf, " CASE WHEN p.proretset THEN 'SETOF ' ELSE '' END ||\n" @@ -291,14 +296,19 @@ describeFunctions(const char *functypes, const char *pattern, bool verbose, bool " WHEN p.proisagg THEN '%s'\n" " WHEN p.prorettype = 'pg_catalog.trigger'::pg_catalog.regtype THEN '%s " WHEN p.prorettype = 'pg_catalog.trigger'::pg_catalog.regtype THEN '%s'\n" " ELSE '%s'\n" - " END AS \"%s\"", + " END AS \"%s\",\n" + " CASE\n" + " WHEN prosecdef THEN 'definer'\n" + " ELSE 'invoker'\n" + " END AS \"%s\"\n", gettext_noop("Result data type"), gettext_noop("Argument data types"), /* translator: "agg" is short for "aggregate" */ gettext_noop("agg"), gettext_noop("trigger"), gettext_noop("normal"), - gettext_noop("Type")); + gettext_noop("Type"), + gettext_noop("Security")); else appendPQExpBuffer(&buf, " CASE WHEN p.proretset THEN 'SETOF ' ELSE '' END ||\n" @@ -308,14 +318,19 @@ describeFunctions(const char *functypes, const char *pattern, bool verbose, bool " WHEN p.proisagg THEN '%s'\n" " WHEN p.prorettype = 'pg_catalog.trigger'::pg_catalog.regtype THEN '%s'\n" " ELSE '%s'\n" - " END AS \"%s\"", + " END AS \"%s\",\n" + " CASE\n" + " WHEN prosecdef THEN 'definer'\n" + " ELSE 'invoker'\n" + " END AS \"%s\"\n", gettext_noop("Result data type"), gettext_noop("Argument data types"), /* translator: "agg" is short for "aggregate" */ gettext_noop("agg"), gettext_noop("trigger"), gettext_noop("normal"), - gettext_noop("Type")); + gettext_noop("Type"), + gettext_noop("Security")); if (verbose) appendPQExpBuffer(&buf,