Re: ISN extension - wrong volatility level for isn_weak() function

Daniel Gustafsson <daniel@yesql.se>

From: Daniel Gustafsson <daniel@yesql.se>
To: Viktor Holmberg <v@viktorh.net>
Cc: pgsql-bugs@lists.postgresql.org
Date: 2025-03-14T13:29:55Z
Lists: pgsql-bugs

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. contrib/isn: Make weak mode a GUC setting, and fix related functions.

  2. Update contrib/seg for new scalarlesel/scalargesel selectivity functions.

> On 14 Mar 2025, at 12:49, Viktor Holmberg <v@viktorh.net> wrote:
> 
> Hello. Apologies if this is not the right place to bug report extensions

For an extension bundled in postgres contrib it's absolutely the right place.

> The isn_weak function in the isn extension reports the wrong value if you look at it inside a transaction:

> I can manually fix this by changing it to STABLE:
> 
> ALTER FUNCTION isn_weak() STABLE;
> 
> Am I missing something or isn’t this quite weird? Would it at least be possible to change the documentation to explain this?

I wonder if this should really be marked VOLATILE instead as it has a side
effect.

--
Daniel Gustafsson