Re: psql: Add role's membership options to the \du+ command

From: Pavel Luzanov <p(dot)luzanov(at)postgrespro(dot)ru>
To: "Jonathan S(dot) Katz" <jkatz(at)postgresql(dot)org>, "David G(dot) Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com>
Cc: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Robert Haas <robertmhaas(at)gmail(dot)com>, David Zhang <david(dot)zhang(at)highgo(dot)ca>, "pgsql-hackers(at)lists(dot)postgresql(dot)org" <pgsql-hackers(at)lists(dot)postgresql(dot)org>, rmt(at)lists(dot)postgresql(dot)org, horikyota(dot)ntt(at)gmail(dot)com
Subject: Re: psql: Add role's membership options to the \du+ command
Date: 2023-05-18 13:07:22
Message-ID: 7aa3d663-1ea9-de0d-c13a-cbce83902214@postgrespro.ru
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On 18.05.2023 05:42, Jonathan S. Katz wrote:

> That said, from a readability standpoint, it was easier for me to
> follow the tabular form vs. the sentence form.

May be possible to reach a agreement on the sentence form. Similar
descriptions used for referential constraints in the \d command:

create table t1 (id int primary key);create table t2 (id int references
t1(id));\d t2                 Table "public.t2" Column |  Type   |
Collation | Nullable | Default
--------+---------+-----------+----------+--------- id     | integer
|           |          | Foreign-key constraints:    "t2_id_fkey"
FOREIGN KEY (id) REFERENCES t1(id)As for tabular form it looks more
natural to have a separate psql command for pg_auth_members system
catalog. Something based on this query:SELECT r.rolname role, m.rolname
member,       admin_option admin, inherit_option inherit, set_option
set,       g.rolname grantorFROM pg_catalog.pg_auth_members pam     JOIN
pg_catalog.pg_roles r ON (pam.roleid = r.oid)     JOIN
pg_catalog.pg_roles m ON (pam.member = m.oid)     JOIN
pg_catalog.pg_roles g ON (pam.grantor = g.oid)WHERE r.rolname !~
'^pg_'ORDER BY role, member, grantor;       role       |     
member      | admin | inherit | set |     grantor
------------------+------------------+-------+---------+-----+------------------ regress_du_role0
| regress_du_admin | t     | t       | t   | postgres regress_du_role0 |
regress_du_role1 | t     | t       | t   |
regress_du_admin regress_du_role0 | regress_du_role1 | f     | t       |
f   | regress_du_role1 regress_du_role0 | regress_du_role1 | f     |
f       | t   | regress_du_role2 regress_du_role0 | regress_du_role2 |
t     | f       | f   | regress_du_admin regress_du_role0 |
regress_du_role2 | f     | t       | t   |
regress_du_role1 regress_du_role0 | regress_du_role2 | f     | f       |
f   | regress_du_role2 regress_du_role1 | regress_du_admin | t     |
t       | t   | postgres regress_du_role1 | regress_du_role2 | t     |
f       | t   | regress_du_admin regress_du_role2 | regress_du_admin |
t     | t       | t   | postgres(10 rows)But is it worth inventing a new
psql command for this?

-----
Pavel Luzanov

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Aleksander Alekseev 2023-05-18 13:11:57 Re: RFI: Extending the TOAST Pointer
Previous Message Tom Lane 2023-05-18 13:05:42 Re: No buildfarm animals are running both typedefs and --with-llvm