Re: pg14 psql broke \d datname.nspname.relname - Mailing list pgsql-hackers

From Justin Pryzby
Subject Re: pg14 psql broke \d datname.nspname.relname
Date
Msg-id 20211011222631.GG27491@telsasoft.com
Whole thread Raw
In response to Re: pg14 psql broke \d datname.nspname.relname  (Mark Dilger <mark.dilger@enterprisedb.com>)
List pgsql-hackers
On Mon, Oct 11, 2021 at 02:47:59PM -0700, Mark Dilger wrote:
> > |$ LD_LIBRARY_PATH=tmp_install/usr/local/pgsql/lib/ src/bin/psql/psql -h /tmp regression
> > |psql (15devel)
> > |Type "help" for help.
> > |regression=# \d regresion.public.bit_defaults
> > |Did not find any relation named "regresion.public.bit_defaults".
> > |regression=# \d public.bit_defaults
> > |                     Table "public.bit_defaults"
> > |...
> > 
> > This worked before v14 (even though the commit message says otherwise).
> > 
> > |$ /usr/lib/postgresql/13/bin/psql -h /tmp regression
> > |psql (13.2 (Debian 13.2-1.pgdg100+1), server 15devel)
> > |...
> > |regression=# \d regresion.public.bit_defaults
> > |                     Table "public.bit_defaults"
> > |...
> 
> I can only assume that you are intentionally misspelling "regression" as "regresion" (with only one "s") as part of
thetest.  I have not checked if that worked before v14, but if it ignored the misspelled database name before v14, and
itrejects it now, I'm not sure that counts as a bug. 
 
> 
> Am I misunderstanding your bug report?

It's not intentional but certainly confusing to put a typo there.
Sorry for that (and good eyes, BTW).

In v15/master:
    regression=# \d regression.public.bit_defaults
    Did not find any relation named "regression.public.bit_defaults".

After reverting that commit and recompiling psql:
    regression=# \d regression.public.bit_defaults
                 Table "public.bit_defaults"
    ...

In v13 psql:
    regression=# \d regression.public.bit_defaults
                 Table "public.bit_defaults"
    ...

It looks like before v13 any "datname" prefix was ignored.

But now it fails to show the table because it does:

WHERE c.relname OPERATOR(pg_catalog.~) '^(public.bit_defaults)$' COLLATE pg_catalog.default
  AND n.nspname OPERATOR(pg_catalog.~) '^(regression)$' COLLATE pg_catalog.default

-- 
Justin



pgsql-hackers by date:

Previous
From: Mark Dilger
Date:
Subject: Re: pg14 psql broke \d datname.nspname.relname
Next
From: Mark Dilger
Date:
Subject: Re: pg14 psql broke \d datname.nspname.relname