From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | "David E(dot) Wheeler" <david(at)justatheory(dot)com> |
Cc: | Erik Wienhold <ewie(at)ewie(dot)name>, Jim Jones <jim(dot)jones(at)uni-muenster(dot)de>, jian he <jian(dot)universality(at)gmail(dot)com>, Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com>, Dagfinn Ilmari Mannsåker <ilmari(at)ilmari(dot)org>, pgsql-hackers(at)lists(dot)postgresql(dot)org |
Subject: | Re: Patch: Add parse_type Function |
Date: | 2024-03-20 21:23:21 |
Message-ID: | 105927.1710969801@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
"David E. Wheeler" <david(at)justatheory(dot)com> writes:
> Thanks, fixed in the attached patch.
Pushed with some editorialization. Mostly, I whacked the
documentation around pretty heavily: we have a convention for what
examples in function descriptions should look like, and this wasn't
it. Not entirely your fault, since some nearby entries in that
table hadn't gotten the word either.
Also, I made a point of adding tests for a corner case that
I initially thought the patch would not get right:
SELECT format_type(to_regtype('bit'), to_regtypemod('bit'));
format_type
-------------
bit(1)
(1 row)
SELECT format_type(to_regtype('"bit"'), to_regtypemod('"bit"'));
format_type
-------------
"bit"
(1 row)
This comes from the comment in format_type():
/*
* bit with typmod -1 is not the same as BIT, which means
* BIT(1) per SQL spec. Report it as the quoted typename so
* that parser will not assign a bogus typmod.
*/
My initial fear was that we'd have to emit NULL for no typmod in order
to round-trip the second case, but it seems to work as-is, so that's good.
I left it emitting -1 for no typmod, and documented that explicitly.
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2024-03-20 21:25:45 | Re: documentation structure |
Previous Message | Robert Haas | 2024-03-20 21:21:53 | Re: documentation structure |