describe.patch
application/octet-stream
Filename: describe.patch
Type: application/octet-stream
Part: 0
Message:
My first patch! (to \df output)
Patch
Same data as JSON:
GET /api/v1/attachments/:id/patch
the parsed metadata as JSON — format, series position, per-file stats; never the diff bytes.
API reference →
Format: unified
| File | + | − |
|---|---|---|
| src/bin/psql/describe.c | 21 | 6 |
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,