Re: Shadowing type names because I am not smart

From: Bruce Momjian <bruce(at)momjian(dot)us>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Ken Harris <kengruven(at)gmail(dot)com>, "David G(dot) Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com>, "pgsql-docs(at)lists(dot)postgresql(dot)org" <pgsql-docs(at)lists(dot)postgresql(dot)org>
Subject: Re: Shadowing type names because I am not smart
Date: 2026-08-20 21:31:52
Message-ID: aodySMS-W9W0jFKv@momjian.us
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-docs

On Fri, Jul 31, 2026 at 10:58:41PM -0400, Tom Lane wrote:
> Ken Harris <kengruven(at)gmail(dot)com> writes:
> > My message admittedly wandered a bit, but if I had to narrow it down to one
> > point of confusion for me, it'd be:
>
> > Why does shadowing the name of a built-in type behave differently, for
> > different built-in types?
>
> The short answer here is that some "built-in" types just have names
> that are in the pg_type catalog, while others have names that are
> recognized by the grammar and translated to pg_type names. For
> example, "double precision" is not a type name per the basic rules,
> but the SQL standard demands that we recognize it. So the grammar
> has a production that translates that to "pg_catalog.float8" ---
> not just float8 --- and that means that a user-defined type can't
> override the meaning of "double precision" no matter what the
> search path is. Another example is that "integer" is the name
> called out by the SQL spec for the type that is entered in
> pg_type as "int4". So "integer" is translated to "pg_catalog.int4"
> and you can't override that, but you could override plain "int4"
> depending on search_path. Conversely, some error messages translate
> type OIDs back to the SQL-standard names, but I suspect that not all
> do; there may be places that just report the pg_type name.

Should we prohibit users from creating types that are hard-coded into
the grammar?

--
Bruce Momjian <bruce(at)momjian(dot)us> https://momjian.us
EDB https://enterprisedb.com

Do not let urgent matters crowd out time for investment in the future.

In response to

Browse pgsql-docs by date

  From Date Subject
Next Message Jochen Bandhauer 2026-08-21 07:32:10 Doc: Fix small typo (vacuuming)
Previous Message Bruce Momjian 2026-08-20 19:33:17 Re: Max_connections parameter