Re: [PATCH] seg: preserve the upper boundary's certainty indicator in seg_out() - Mailing list pgsql-hackers

From Andrew Dunstan
Subject Re: [PATCH] seg: preserve the upper boundary's certainty indicator in seg_out()
Date
Msg-id 5ccbdbde-6467-4a10-bf4d-0be73a05ce8d@dunslane.net
Whole thread
In response to Re: [PATCH] seg: preserve the upper boundary's certainty indicator in seg_out()  (Heikki Linnakangas <hlinnaka@iki.fi>)
Responses Re: [PATCH] seg: preserve the upper boundary's certainty indicator in seg_out()
List pgsql-hackers
On 2026-06-11 Th 5:45 AM, Heikki Linnakangas wrote:
> On 11/06/2026 10:03, Ewan Young wrote:
>> Certainty indicators are documented to be preserved on output (they are
>> ignored by the operators, but kept as a comment), so this breaks the
>> input/output round-trip for the affected values.
>
> As a side note, while ignoring the boundaries makes sense for 
> comparison operators, seg_union() and seg_intersect() need to do with 
> them. That's not documented anywhere, and their current behavior seems 
> pretty arbitrary. We haven't actually documented those functions at 
> all, I think they were added just for the GiST support and calling 
> them directly from SQL was an afterthought.
>
>> The attached patch fixes the one-character typo and adds regression
>> tests that place each indicator on both boundaries of an interval, so
>> the upper-boundary case is now covered.  make installcheck passes with
>> the fix and fails without it.
>
> Applied to master and all stable branches, thanks!


This is upsetting cross version upgrade tests, I assume since we didn't 
backport it to branches older than 14.

Not sure what the best solution is. Drop the table, or at least the 
offending row?


cheers


andrew


--
Andrew Dunstan
EDB: https://www.enterprisedb.com




pgsql-hackers by date:

Previous
From: Masahiko Sawada
Date:
Subject: mxid_score can become Infinity in pg_stat_autovacuum_scores
Next
From: Tom Lane
Date:
Subject: Re: [PATCH] seg: preserve the upper boundary's certainty indicator in seg_out()