Re: Things I don't like about \du's "Attributes" column

From: Pavel Luzanov <p(dot)luzanov(at)postgrespro(dot)ru>
To: Robert Haas <robertmhaas(at)gmail(dot)com>
Cc: "David G(dot) Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Jim Nasby <jim(dot)nasby(at)gmail(dot)com>, pgsql-hackers(at)lists(dot)postgresql(dot)org
Subject: Re: Things I don't like about \du's "Attributes" column
Date: 2024-06-06 21:10:34
Message-ID: 5341835b-e7be-44dc-b6e5-400e9e3f3c64@postgrespro.ru
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On 06.06.2024 17:29, Robert Haas wrote:
> I think the first of these special interpretations is unnecessary and
> should be removed. It seems pretty clear what 0 means.

Agree.
There is an additional technical argument for removing this replacement.
I don't like explicit cast to text of the "Connection limit" column.
Without 'Not allowed' it is no longerrequired.
Value -1 can be replaced by NULL with an implicit cast to integer.

Next version with this change attached.

Example output:

\du+ regress_du*
List of roles
Role name | Login | Attributes | Valid until | Connection limit | Description
------------------+-------+-------------+------------------------------+------------------+------------------
regress_du_admin | yes | Superuser +| | | some description
| | Create DB +| | |
| | Create role+| | |
| | Inherit +| | |
| | Replication+| | |
| | Bypass RLS | | |
regress_du_role0 | yes | Inherit | Tue Jun 04 00:00:00 2024 PDT | 0 |
regress_du_role1 | no | Create role+| infinity | |
| | Inherit | | |
regress_du_role2 | yes | Inherit +| | 42 |
| | Replication+| | |
| | Bypass RLS | | |
(4 rows)

Current version for comparison:

List of roles
Role name | Attributes | Description
------------------+------------------------------------------------------------+------------------
regress_du_admin | Superuser, Create role, Create DB, Replication, Bypass RLS | some description
regress_du_role0 | No connections +|
| Password valid until 2024-06-04 00:00:00+03 |
regress_du_role1 | Create role, Cannot login +|
| Password valid until infinity |
regress_du_role2 | Replication, Bypass RLS +|
| 42 connections |

Data:
CREATE ROLE regress_du_role0 LOGIN PASSWORD '123' VALID UNTIL '2024-06-04' CONNECTION LIMIT 0;
CREATE ROLE regress_du_role1 CREATEROLE CONNECTION LIMIT -1 VALID UNTIL 'infinity';
CREATE ROLE regress_du_role2 LOGIN REPLICATION BYPASSRLS CONNECTION LIMIT 42;
CREATE ROLE regress_du_admin LOGIN SUPERUSER CREATEROLE CREATEDB BYPASSRLS REPLICATION INHERIT;
COMMENT ON ROLE regress_du_admin IS 'some description';

--
Pavel Luzanov
Postgres Professional:https://postgrespro.com

Attachment Content-Type Size
v8-0001-psql-Rethinking-of-du-command.patch text/x-patch 11.3 KB

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Jelte Fennema-Nio 2024-06-06 22:02:28 Re: ssl tests fail due to TCP port conflict
Previous Message Tom Lane 2024-06-06 20:55:00 Re: Postgresql OOM