Tom Lane wrote:
> Vincenzo Romano <vincenzo.romano@notorand.it> writes:
>
>> I tried this:
>> tmp1=# CREATE DOMAIN real as numeric;
>> [ and got confused between this domain and the built-in "real" ]
>>
>
>
>> It looks like to me this is a bug and also the documentation seems to confirm:
>> "The domain name must be unique among the types and domains existing
>> in its schema."
>>
>
> No bug. The REAL keyword is treated as an alias for pg_catalog.float4,
> but even if it weren't an alias, it would exist in schema pg_catalog.
> Thus there is not a name conflict with your domain, which (I suppose)
> was created in the "public" schema.
>
> regards, tom lane
>
>
Really, I can't see how quoting an identifier should change the
behaviour or resolved type. In the non-quoted version it uses the
pg_catalog.float4 and in the quoted version it uses the domain. This
doesn't seem right at all. I would have expected it would reject both
t1 and t2 inserts on the basic real and "real" both map to
pg_catalog.float4. The documentation indicates that pg_catalog is
always searched first. If it is, the domain from public should always
use the pg_catalog version.
Russell