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

Поиск
Список
Период
Сортировка
От Pavel Luzanov
Тема Re: psql: Add role's membership options to the \du+ command
Дата
Msg-id 7aa3d663-1ea9-de0d-c13a-cbce83902214@postgrespro.ru
обсуждение исходный текст
Ответ на Re: psql: Add role's membership options to the \du+ command  ("Jonathan S. Katz" <jkatz@postgresql.org>)
Ответы Re: psql: Add role's membership options to the \du+ command  ("David G. Johnston" <david.g.johnston@gmail.com>)
Список 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 grantor
FROM 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

В списке pgsql-hackers по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: No buildfarm animals are running both typedefs and --with-llvm
Следующее
От: Aleksander Alekseev
Дата:
Сообщение: Re: RFI: Extending the TOAST Pointer