Skip to content

Commit b65a509

Browse files
committed
Show database access privileges in psql's \l command. For \l+, also show
database size, when available to the current user. Andrew Gilligan
1 parent 2be368a commit b65a509

File tree

2 files changed

+18
-7
lines changed

2 files changed

+18
-7
lines changed

doc/src/sgml/ref/psql-ref.sgml

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<!--
2-
$PostgreSQL: pgsql/doc/src/sgml/ref/psql-ref.sgml,v 1.198 2007/12/11 19:57:32 tgl Exp $
2+
$PostgreSQL: pgsql/doc/src/sgml/ref/psql-ref.sgml,v 1.199 2008/03/30 18:10:20 tgl Exp $
33
PostgreSQL documentation
44
-->
55

@@ -1328,9 +1328,12 @@ Tue Oct 26 21:40:57 CEST 1999
13281328
<term><literal>\l+</literal> (or <literal>\list+</literal>)</term>
13291329
<listitem>
13301330
<para>
1331-
List the names, owners, and character set encodings of all the databases in
1332-
the server. If <literal>+</literal> is appended to the command
1333-
name, database descriptions are also displayed.
1331+
List the names, owners, character set encodings, and access privileges
1332+
of all the databases in the server.
1333+
If <literal>+</literal> is appended to the command name, database
1334+
sizes, default tablespaces, and descriptions are also displayed.
1335+
(Size information is only available for databases that the current
1336+
user can connect to.)
13341337
</para>
13351338
</listitem>
13361339
</varlistentry>

src/bin/psql/describe.c

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
*
44
* Copyright (c) 2000-2008, PostgreSQL Global Development Group
55
*
6-
* $PostgreSQL: pgsql/src/bin/psql/describe.c,v 1.165 2008/03/30 17:50:11 tgl Exp $
6+
* $PostgreSQL: pgsql/src/bin/psql/describe.c,v 1.166 2008/03/30 18:10:20 tgl Exp $
77
*/
88
#include "postgres_fe.h"
99
#include "describe.h"
@@ -417,12 +417,20 @@ listAllDbs(bool verbose)
417417
printfPQExpBuffer(&buf,
418418
"SELECT d.datname as \"%s\",\n"
419419
" r.rolname as \"%s\",\n"
420-
" pg_catalog.pg_encoding_to_char(d.encoding) as \"%s\"",
420+
" pg_catalog.pg_encoding_to_char(d.encoding) as \"%s\",\n"
421+
" d.datacl as \"%s\"",
421422
gettext_noop("Name"),
422423
gettext_noop("Owner"),
423-
gettext_noop("Encoding"));
424+
gettext_noop("Encoding"),
425+
gettext_noop("Access Privileges"));
424426
if (verbose)
425427
{
428+
appendPQExpBuffer(&buf,
429+
",\n CASE WHEN pg_catalog.has_database_privilege(d.datname, 'CONNECT')\n"
430+
" THEN pg_catalog.pg_size_pretty(pg_catalog.pg_database_size(d.datname))\n"
431+
" ELSE 'No Access'\n"
432+
" END as \"%s\"",
433+
gettext_noop("Size"));
426434
appendPQExpBuffer(&buf,
427435
",\n t.spcname as \"%s\"",
428436
gettext_noop("Tablespace"));

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy