Re: [PATCH] seg: preserve the upper boundary's certainty indicator in seg_out()

Heikki Linnakangas <hlinnaka@iki.fi>

From: Heikki Linnakangas <hlinnaka@iki.fi>
To: Ewan Young <kdbase.hack@gmail.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2026-06-11T09:45:32Z
Lists: pgsql-hackers
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!

- Heikki




Commits

  1. Adjust cross-version upgrade tests for seg_out() fix

  2. seg: Fix seg_out() to preserve the upper boundary's certainty indicator