From: Peter Eisentraut <peter@eisentraut.org>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: pgsql-bugs <pgsql-bugs@postgresql.org>
Subject: Re: CREATE CAST allows creation of binary-coercible cast to range over domain
Date: Wed, 21 Aug 2024 08:14:23 +0200
Message-ID: <2e7acd5f-5d34-4802-a5e2-fa36433d133c@eisentraut.org> (raw)
In-Reply-To: <1611527.1724175039@sss.pgh.pa.us>
References: <076968e1-0852-40a9-bc0b-117cd3f0e43c@eisentraut.org>
<1537781.1724165175@sss.pgh.pa.us>
<1611527.1724175039@sss.pgh.pa.us>
On 20.08.24 19:30, Tom Lane wrote:
> I wrote:
>> I think it's an oversight that we allow binary-coercible casts
>> involving range types at all. There are no other nesting cases to
>> worry about, because CreateCast already rejects binary-coercible casts
>> applied to composites and arrays, explaining
>> * We know that composite, enum and array types are never binary-
>> * compatible with each other. They all have OIDs embedded in them.
>> But range types also embed their own OID, so I don't see why that
>> concern doesn't apply to them.
>
> In short, more or less as attached. (I didn't bother with a
> regression test, since none of the adjacent error checks are
> covered either.)
This patch looks right.
> I'm unsure whether to back-patch this. If somebody were using
> such a cast today, it might seem to mostly work, as long as the
> two kinds of ranges had the same behavior. So they might not
> appreciate us breaking it in a minor release. Maybe we should
> put this into 17 but not further back.
Yeah, 17 and up seems ok to me.
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-bugs@postgresql.org
Cc: peter@eisentraut.org, tgl@sss.pgh.pa.us
Subject: Re: CREATE CAST allows creation of binary-coercible cast to range over domain
In-Reply-To: <2e7acd5f-5d34-4802-a5e2-fa36433d133c@eisentraut.org>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox