Re: \dP and \dX use ::regclass without "pg_catalog."

Justin Pryzby <pryzby@telsasoft.com>

From: Justin Pryzby <pryzby@telsasoft.com>
To: Álvaro Herrera <alvherre@alvh.no-ip.org>, Magnus Hagander <magnus@hagander.net>
Cc: pgsql-hackers@lists.postgresql.org, Tomas Vondra <tomas.vondra@enterprisedb.com>, Tatsuro Yamada <tatsuro.yamada.tf@nttcom.co.jp>, PostgreSQL-development <pgsql-hackers@postgresql.org>, Alvaro Herrera <alvherre@2ndquadrant.com>
Date: 2022-01-07T02:22:35Z
Lists: pgsql-hackers
https://www.postgresql.org/message-id/flat/7ad8cd13-db5b-5cf6-8561-dccad1a934cb%40nttcom.co.jp
https://www.postgresql.org/message-id/flat/20210827193151.GN26465%40telsasoft.com

On Sat, Aug 28, 2021 at 08:57:32AM -0400, Álvaro Herrera wrote:
> On 2021-Aug-27, Justin Pryzby wrote:
> > I noticed that for \dP+ since 1c5d9270e, regclass is written without
> > "pg_catalog." (Alvaro and I failed to notice it in 421a2c483, too).
> 
> Oops, will fix shortly.

On Tue, Sep 28, 2021 at 04:25:11PM +0200, Magnus Hagander wrote:
> On Mon, Sep 27, 2021 at 2:14 AM Tatsuro Yamada <tatsuro.yamada.tf@nttcom.co.jp> wrote:
> > I found other functions that we should add "pg_catalog" prefix in
> > describe.c. This fix is similar to the following commit.
> 
> Yup, that's correct. Applied and backpatched to 14 (but it won't be in the
> 14.0 release).

Those two issues were fixed in 1f092a309 and 07f8a9e784.
But, we missed two casts to ::text which don't use pg_catalog.
Evidently the cast is to allow stable sorting.

I improved on my previous hueristic to look for these ; this finds the two
missing schema qualifiers:

> time grep "$(sed -r "/.*pg_catalog\\.([_[:alpha:]]+).*/! d; s//\\1/; /^(char|oid)$/d; s/.*/[^. ']\\\\<&\\\\>/" src/bin/psql/describe.c |sort -u)" src/bin/psql/describe.c

While looking at that, I wondered why describeOneTableDetails lists stats
objects in order of OID ?  Dating back to 7b504eb28, and, before that,
554A73A6.2060603@2ndquadrant.com.  It should probably order by nsp, stxname.



Commits

  1. Fix issues with describe queries of extended statistics in psql

  2. Properly schema-prefix reference to pg_catalog.pg_get_statisticsobjdef_columns

  3. psql \dX: reference regclass with "pg_catalog." prefix