Re: BUG #19380: Transition table in AFTER INSERT trigger misses rows from MERGE when used with INSERT in a CTE

Tom Lane <tgl@sss.pgh.pa.us>

From: Tom Lane <tgl@sss.pgh.pa.us>
To: Dean Rasheed <dean.a.rasheed@gmail.com>
Cc: dwwoelfel@gmail.com, pgsql-bugs@lists.postgresql.org
Date: 2026-01-24T15:58:40Z
Lists: pgsql-bugs
Dean Rasheed <dean.a.rasheed@gmail.com> writes:
> I've pushed this now. Expecting to have to push updates to
> .abi-compliance-history soon.

crake has reported in [1]:

Leaf changes summary: 2 artifacts changed
Changed leaf types summary: 2 leaf types changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 0 Added function (2 filtered out)
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable

'struct AfterTriggersTableData' changed:
  type size changed from 80 to 64 (in bytes)
  2 data member deletions:
    'Tuplestorestate* old_del_tuplestore', at offset 56 (in bytes)
    'Tuplestorestate* new_ins_tuplestore', at offset 64 (in bytes)
  there are data member changes:
    'TupleTableSlot* storeslot' offset changed from 72 to 56 (in bytes) (by -16 bytes)

'struct TransitionCaptureState' changed:
  type size changed from 24 to 40 (in bytes)
  2 data member insertions:
    'AfterTriggersTableData* tcs_update_private', at offset 24 (in bytes)
    'AfterTriggersTableData* tcs_delete_private', at offset 32 (in bytes)
  there are data member changes:
    name of 'TransitionCaptureState::tcs_private' changed to 'TransitionCaptureState::tcs_insert_private'


I find it unhelpful that it reported the AfterTriggersTableData
change as an ABI change, even though that struct is not globally
accessible.  I wonder if there's some libabigail switches we
should be tweaking to refine that.

			regards, tom lane

[1] https://buildfarm.postgresql.org/cgi-bin/show_stage_log.pl?nm=crake&dt=2026-01-24%2013%3A06%3A41&stg=abi-compliance-check



Commits

  1. Update .abi-compliance-history for change to TransitionCaptureState.

  2. Fix trigger transition table capture for MERGE in CTE queries.