From: | Chapman Flack <chap(at)anastigmatix(dot)net> |
---|---|
To: | "David G(dot) Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com> |
Cc: | Erik Wienhold <ewie(at)ewie(dot)name>, Vik Fearing <vik(at)postgresfriends(dot)org>, "David E(dot) Wheeler" <david(at)justatheory(dot)com>, pgsql-hackers(at)lists(dot)postgresql(dot)org |
Subject: | Re: to_regtype() Raises Error |
Date: | 2023-09-18 01:24:59 |
Message-ID: | b96eb6e0140ddaa86a0f97e9d78b247c@anastigmatix.net |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On 2023-09-17 20:58, David G. Johnston wrote:
> Put differently, there is no syntax involved when the value being
> provided
> is the text literal name of a type as it is stored in pg_type.typname,
> so
> the presence of a syntax error is wrong.
Well, the situation is a little weirder than that, because of the
existence
of SQL standard types with multiple-token names; when you provide the
value 'character varying', you are not providing a name found in
pg_type.typname (while, if you call the same type 'varchar', you are).
For 'character varying', the parser is necessarily involved.
The case with 'interval second' is similar, but even different still;
that isn't a multiple-token type name, but a type name with a
standard-specified bespoke way of writing a typmod. Another place
the parser is necessarily involved, doing another job. (AFAICT,
to_regtype is happy with a typmod attached to the input, and
happily ignores it, so to_regtype('interval second') gives you
interval, to_regtype('character varying(20)') gives you
character varying, and so on.)
Regards,
-Chao
From | Date | Subject | |
---|---|---|---|
Next Message | David G. Johnston | 2023-09-18 01:58:13 | Re: to_regtype() Raises Error |
Previous Message | David G. Johnston | 2023-09-18 00:58:48 | Re: to_regtype() Raises Error |