Fix assertions with RI triggers in heap_update and heap_delete. If the tuple being updated is not visible to the crosscheck snapshot, we return TM_Updated but the assertions would not hold in that case. Move them to before the cross-check.
Fixes bug #17893. Backpatch to all supported versions. Author: Alexander Lakhin Backpatch-through: 12 Discussion: https://www.postgresql.org/message-id/17893-35847009eec517b5%40postgresql.org Branch ------ REL_16_STABLE Details ------- https://git.postgresql.org/pg/commitdiff/9fee3232a1d3661981c3cbf87227bfd02ee36c7b Modified Files -------------- src/backend/access/heap/heapam.c | 41 +++++++++++++++++------------ src/include/access/tableam.h | 4 +-- src/test/isolation/expected/fk-snapshot.out | 22 ++++++++++++++++ src/test/isolation/specs/fk-snapshot.spec | 17 +++++++++++- 4 files changed, 64 insertions(+), 20 deletions(-)