Re: pgsql: Improve default and empty privilege outputs in psql.

From: Christoph Berg <myon(at)debian(dot)org>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: pgsql-hackers(at)lists(dot)postgresql(dot)org
Subject: Re: pgsql: Improve default and empty privilege outputs in psql.
Date: 2024-09-24 15:14:42
Message-ID: ZvLXYglRS6hMMhtr@msg.df7cb.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers pgsql-hackers

Re: Tom Lane
> Improve default and empty privilege outputs in psql.

I'm sorry to report this when 17.0 has already been wrapped, but this
change is breaking `psql -l` against 9.3-or-earlier servers:

$ /usr/lib/postgresql/17/bin/psql
psql (17rc1 (Debian 17~rc1-1.pgdg+2), Server 9.3.25)
Geben Sie »help« für Hilfe ein.

postgres =# \set ECHO_HIDDEN on
postgres =# \l
/******* ANFRAGE ********/
SELECT
d.datname as "Name",
pg_catalog.pg_get_userbyid(d.datdba) as "Owner",
pg_catalog.pg_encoding_to_char(d.encoding) as "Encoding",
'libc' AS "Locale Provider",
d.datcollate as "Collate",
d.datctype as "Ctype",
NULL as "Locale",
NULL as "ICU Rules",
CASE WHEN pg_catalog.cardinality(d.datacl) = 0 THEN '(none)' ELSE pg_catalog.array_to_string(d.datacl, E'\n') END AS "Access privileges"
FROM pg_catalog.pg_database d
ORDER BY 1;
/************************/

FEHLER: 42883: Funktion pg_catalog.cardinality(aclitem[]) existiert nicht
ZEILE 10: CASE WHEN pg_catalog.cardinality(d.datacl) = 0 THEN '(none...
^
TIP: Keine Funktion stimmt mit dem angegebenen Namen und den Argumenttypen überein. Sie müssen möglicherweise ausdrückliche Typumwandlungen hinzufügen.
ORT: ParseFuncOrColumn, parse_func.c:299

The psql docs aren't really explicit about which old versions are
still supported, but there's some mentioning that \d should work back
to 9.2:

<para><application>psql</application> works best with servers of the same
or an older major version. Backslash commands are particularly likely
to fail if the server is of a newer version than <application>psql</application>
itself. However, backslash commands of the <literal>\d</literal> family should
work with servers of versions back to 9.2, though not necessarily with
servers newer than <application>psql</application> itself.

\l seems a tad more important even.

Christoph

In response to

Responses

Browse pgsql-committers by date

  From Date Subject
Next Message Tom Lane 2024-09-24 16:27:59 Re: pgsql: Improve default and empty privilege outputs in psql.
Previous Message Peter Geoghegan 2024-09-24 13:42:59 Re: pgsql: Allow meson builds to run test_pg_dump test in installcheck mode

Browse pgsql-hackers by date

  From Date Subject
Next Message Fujii Masao 2024-09-24 15:46:24 Re: Add on_error and log_verbosity options to file_fdw
Previous Message Alexander Kuznetsov 2024-09-24 14:52:32 Re: Detect buffer underflow in get_th()