Re: \dt shows table but \d says the table doesn't exist ? - Mailing list pgsql-general
From jian he
Subject Re: \dt shows table but \d says the table doesn't exist ?
Date
Msg-id CACJufxF=VJ=wprULGXLuAaSt5j+4w0=66HzKDQ9GEKFXMo1-bg@mail.gmail.com
Whole thread Raw
In response to Re: \dt shows table but \d says the table doesn't exist ?  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: \dt shows table but \d says the table doesn't exist ?
List pgsql-general
On Sat, May 4, 2024 at 5:15 AM Tom Lane <tgl@sss.pgh.pa.us> wrote:
>
> Adrian Klaver <adrian.klaver@aklaver.com> writes:
> > On 5/3/24 14:06, Magnus Hagander wrote:
> >> Looks like you might need a \d "some_idIds" (include the quotes) since
> >> it has an uppercase characters?
>
> > This:
> > "Did not find any relation named "public.some_idIds"."
> > to me indicates it did look for the properly cased name.
>
> No, that message just regurgitates what you typed.  Magnus is
> correct that the pattern will be case-folded if not quoted.
> You can check with --echo-hidden (-E):
>
> postgres=# \d public.some_idIds
> /******** QUERY *********/
> SELECT c.oid,
>   n.nspname,
>   c.relname
> FROM pg_catalog.pg_class c
>      LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
> WHERE c.relname OPERATOR(pg_catalog.~) '^(some_idids)$' COLLATE pg_catalog.default
>   AND n.nspname OPERATOR(pg_catalog.~) '^(public)$' COLLATE pg_catalog.default
> ORDER BY 2, 3;
> /************************/
>
> Did not find any relation named "public.some_idIds".
>
> So it is in fact looking for public.some_idids.
>

make it case insensitive?
like
> WHERE c.relname OPERATOR(pg_catalog.~*) '^(some_idids)$' COLLATE pg_catalog.default

we already transformed `\d SOME_IDIDS` to `\d some_idids`, in some way
it looks case-insensitive.



pgsql-general by date:

Previous
From: Tom Lane
Date:
Subject: Re: Question regarding how databases support atomicity
Next
From: Tom Lane
Date:
Subject: Re: \dt shows table but \d says the table doesn't exist ?