]> granicus.if.org Git - postgresql/commitdiff
Add prosecdef to \df+ output.
authorHeikki Linnakangas <heikki.linnakangas@iki.fi>
Fri, 25 Jan 2013 15:19:11 +0000 (17:19 +0200)
committerHeikki Linnakangas <heikki.linnakangas@iki.fi>
Fri, 25 Jan 2013 15:22:26 +0000 (17:22 +0200)
Jon Erdman, reviewed by Phil Sorber and Stephen Frost.

doc/src/sgml/ref/psql-ref.sgml
src/bin/psql/describe.c

index 4c99cd9951dd330fa0912d1a1d9998ebf49cefbf..4c87d8ad7fe88459a532bef1fc81d51d43e2ad2a 100644 (file)
@@ -1188,7 +1188,7 @@ testdb=&gt;
         class="parameter">pattern</replaceable> is specified, only
         functions whose names match the pattern are shown.  If the
         form <literal>\df+</literal> is used, additional information
-        about each function, including volatility, language, source
+        about each function, including security, volatility, language, source
         code and description, is shown.  By default, only user-created
         objects are shown; supply a pattern or the <literal>S</literal>
         modifier to include system objects.
index 87174cc91971be2bdd69e99109d039af66f531de..8064a3d70245259289d56137190ee172dbfcb2f9 100644 (file)
@@ -256,7 +256,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" */
@@ -330,15 +330,19 @@ describeFunctions(const char *functypes, const char *pattern, bool verbose, bool
 
        if (verbose)
                appendPQExpBuffer(&buf,
+                                                 ",\n CASE WHEN prosecdef THEN '%s' ELSE '%s' 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("definer"),
+                                                 gettext_noop("invoker"),
+                                                 gettext_noop("Security"),
                                                  gettext_noop("immutable"),
                                                  gettext_noop("stable"),
                                                  gettext_noop("volatile"),