From 1591b38d17c55015403f6e3c9461538ffcf704e7 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Tue, 24 Sep 2024 17:21:38 -0400 Subject: [PATCH] Fix psql describe commands' handling of ACL columns for old servers. Commit d1379ebf4 carelessly broke printACLColumn for pre-9.4 servers, by using the cardinality() function which we introduced in 9.4. We expect psql's describe-related commands to work back to 9.2, so this is bad. Use the longstanding array_length() function instead. Per report from Christoph Berg. Back-patch to v17. Discussion: https://postgr.es/m/ZvLXYglRS6hMMhtr@msg.df7cb.de --- src/bin/psql/describe.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/bin/psql/describe.c b/src/bin/psql/describe.c index faabecbc76f..6a36c910833 100644 --- a/src/bin/psql/describe.c +++ b/src/bin/psql/describe.c @@ -6678,7 +6678,7 @@ printACLColumn(PQExpBuffer buf, const char *colname) { appendPQExpBuffer(buf, "CASE" - " WHEN pg_catalog.cardinality(%s) = 0 THEN '%s'" + " WHEN pg_catalog.array_length(%s, 1) = 0 THEN '%s'" " ELSE pg_catalog.array_to_string(%s, E'\\n')" " END AS \"%s\"", colname, gettext_noop("(none)"),