On Sat, May 4, 2024 at 5:15 AM Tom Lane <tgl@xxxxxxxxxxxxx> wrote: > > Adrian Klaver <adrian.klaver@xxxxxxxxxxx> 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.