diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2008-03-30 18:10:20 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2008-03-30 18:10:20 +0000 |
commit | b65a5097463d6dc5d75661f5236a742c4023f989 (patch) | |
tree | 02548a4bd092afcd5476002623d0dc0856436943 | |
parent | 2be368a5af44b1a1c509d16256036acc9ba6d78b (diff) | |
download | postgresql-b65a5097463d6dc5d75661f5236a742c4023f989.tar.gz postgresql-b65a5097463d6dc5d75661f5236a742c4023f989.zip |
Show database access privileges in psql's \l command. For \l+, also show
database size, when available to the current user.
Andrew Gilligan
-rw-r--r-- | doc/src/sgml/ref/psql-ref.sgml | 11 | ||||
-rw-r--r-- | src/bin/psql/describe.c | 14 |
2 files changed, 18 insertions, 7 deletions
diff --git a/doc/src/sgml/ref/psql-ref.sgml b/doc/src/sgml/ref/psql-ref.sgml index 40a02812fe1..e98b36fdcf0 100644 --- a/doc/src/sgml/ref/psql-ref.sgml +++ b/doc/src/sgml/ref/psql-ref.sgml @@ -1,5 +1,5 @@ <!-- -$PostgreSQL: pgsql/doc/src/sgml/ref/psql-ref.sgml,v 1.198 2007/12/11 19:57:32 tgl Exp $ +$PostgreSQL: pgsql/doc/src/sgml/ref/psql-ref.sgml,v 1.199 2008/03/30 18:10:20 tgl Exp $ PostgreSQL documentation --> @@ -1328,9 +1328,12 @@ Tue Oct 26 21:40:57 CEST 1999 <term><literal>\l+</literal> (or <literal>\list+</literal>)</term> <listitem> <para> - List the names, owners, and character set encodings of all the databases in - the server. If <literal>+</literal> is appended to the command - name, database descriptions are also displayed. + List the names, owners, character set encodings, and access privileges + of all the databases in the server. + If <literal>+</literal> is appended to the command name, database + sizes, default tablespaces, and descriptions are also displayed. + (Size information is only available for databases that the current + user can connect to.) </para> </listitem> </varlistentry> diff --git a/src/bin/psql/describe.c b/src/bin/psql/describe.c index 96c578aa70e..8b9422ac9c1 100644 --- a/src/bin/psql/describe.c +++ b/src/bin/psql/describe.c @@ -3,7 +3,7 @@ * * Copyright (c) 2000-2008, PostgreSQL Global Development Group * - * $PostgreSQL: pgsql/src/bin/psql/describe.c,v 1.165 2008/03/30 17:50:11 tgl Exp $ + * $PostgreSQL: pgsql/src/bin/psql/describe.c,v 1.166 2008/03/30 18:10:20 tgl Exp $ */ #include "postgres_fe.h" #include "describe.h" @@ -417,13 +417,21 @@ listAllDbs(bool verbose) printfPQExpBuffer(&buf, "SELECT d.datname as \"%s\",\n" " r.rolname as \"%s\",\n" - " pg_catalog.pg_encoding_to_char(d.encoding) as \"%s\"", + " pg_catalog.pg_encoding_to_char(d.encoding) as \"%s\",\n" + " d.datacl as \"%s\"", gettext_noop("Name"), gettext_noop("Owner"), - gettext_noop("Encoding")); + gettext_noop("Encoding"), + gettext_noop("Access Privileges")); if (verbose) { appendPQExpBuffer(&buf, + ",\n CASE WHEN pg_catalog.has_database_privilege(d.datname, 'CONNECT')\n" + " THEN pg_catalog.pg_size_pretty(pg_catalog.pg_database_size(d.datname))\n" + " ELSE 'No Access'\n" + " END as \"%s\"", + gettext_noop("Size")); + appendPQExpBuffer(&buf, ",\n t.spcname as \"%s\"", gettext_noop("Tablespace")); appendPQExpBuffer(&buf, |