Re: Fix for a crash caused by triggers in cross-partition updates

Michael Paquier <michael@paquier.xyz>

From: Michael Paquier <michael@paquier.xyz>
To: Kyotaro Horiguchi <horikyota.ntt@gmail.com>
Cc: pgsql-hackers@lists.postgresql.org
Date: 2025-02-13T07:40:35Z
Lists: pgsql-hackers

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Fix MakeTransitionCaptureState() to return a consistent result

  2. Add API of sorts for transition table handling in trigger.c

On Fri, Feb 07, 2025 at 03:47:02PM +0900, Michael Paquier wrote:
> Hmm..  Agreed, it seems that you are right in the way of taking care
> of this inconsistency.  That's interesting.  I would need to look at
> that more closely with a couple of hours head down.  It's a bit late
> in the week here so that's not going to happen today.  Note that we
> have a release coming next week and all stable branches should not be
> touched, but perhaps somebody will be able to beat me here.

Put my head down for a couple of hours on this one to untangle these
bits of states with the old and new transition tables, and your
suggestions look right, including the tweaks in 15~HEAD for the flag
values to keep the branches a bit more consistent.

One thing that itched me a bit was in the test, where I found a bit
more useful to have two values in the partitions on top of the value
moved to a different partition, making the dump of the old and new
transition tables a bit more verbose.  A nit from me, in this case
(the crash still reproduces with the committed test, of course).

Nice investigation from you, thanks!  Applied down to v13.
--
Michael