From: | Erik Wienhold <ewie(at)ewie(dot)name> |
---|---|
To: | "David E(dot) Wheeler" <david(at)justatheory(dot)com> |
Cc: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com>, jian he <jian(dot)universality(at)gmail(dot)com>, Jim Jones <jim(dot)jones(at)uni-muenster(dot)de>, 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-02-20 02:58:05 |
Message-ID: | h7loa2dkoqkloga4vqa6ir5gjq5xqnk5rf5mmjznrclztrkh5f@ef6u65vxtgqy |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On 2024-02-19 23:59 +0100, David E. Wheeler wrote:
> On Feb 19, 2024, at 15:47, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
>
> >> 1. Add a to_regtypmod() for those who just want the typemod.
> >
> > Seems like there's a good case for doing that.
>
> I’ll work on that.
See the patch I wrote for my benchmarks. But it's pretty easy anyway to
cut down parse_type() ;)
> > I'm less thrilled about that, mainly because I can't think of a good
> > name for it ("format_type_string" is certainly not that). Is the
> > use-case for this functionality really strong enough that we need to
> > provide it as a single function rather than something assembled out
> > of spare parts?
>
> Not essential for pgTAP, no, as we can just use the parts. It was the
> typmod bit that was missing.
But you don't actually need reformat_type() in pgTAP. You can just get
the type OID and modifier of the want_type and have_type and compare
those. Then use format_type() for the error message. Looks a bit
cleaner to me than doing the string comparison.
On second thought, I guess comparing the reformatted type names is
necessary in order to have a uniform API on older Postgres releases
where pgTAP has to provide its own to_regtypmod() based on typmodin
functions.
> On Feb 19, 2024, at 17:13, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
>
> > After some time ruminating, a couple of possibilities occurred to
> > me: reformat_type(text) canonical_type_name(text)
>
> I was just thinking about hitting the thesaurus entry for “canonical”,
> but I quite like reformat_type. It’s super clear and draws the
> parallel to format_type() more clearly. Will likely steal the name for
> pgTAP if we don’t add it to core. :-)
>
> > I'm still unconvinced about that, though.
>
> I guess the questions are:
>
> * What are the other use cases for it?
Can't think of any right now other than this are-type-names-the-same
check. Perhaps also for pretty-printing user-provided type names where
we don't take the type info from e.g. pg_attribute.
> * How obvious is it how to do it?
>
> For the latter, it could easily be an example in the docs.
Can be mentioned right under format_type().
--
Erik
From | Date | Subject | |
---|---|---|---|
Next Message | David E. Wheeler | 2024-02-20 03:06:13 | Re: Patch: Add parse_type Function |
Previous Message | Masahiko Sawada | 2024-02-20 02:55:08 | Re: Synchronizing slots from primary to standby |