Avoid ERROR at ON COMMIT DELETE ROWS after relhassubclass=f.
authorNoah Misch <[email protected]>
Sun, 20 Apr 2025 15:28:48 +0000 (08:28 -0700)
committerNoah Misch <[email protected]>
Sun, 20 Apr 2025 15:28:53 +0000 (08:28 -0700)
commitd34b671a63e61d8e6002fb45f960d078e1073ea3
treecf9fa8ace1cf545981d49297f1e0ef4002c2a5b2
parent3f9132ed28228380d1eb223ad7b9db87f7fb9b08
Avoid ERROR at ON COMMIT DELETE ROWS after relhassubclass=f.

Commit 7102070329d8147246d2791321f9915c3b5abf31 fixed a similar bug, but
it missed the case of database-wide ANALYZE ("use_own_xacts" mode).
Commit a07e03fd8fa7daf4d1356f7cb501ffe784ea6257 changed consequences
from silent discard of a pg_class stats (relpages et al.) update to
ERROR "tuple to be updated was already modified".  Losing a relpages
update of an ON COMMIT DELETE ROWS table was negligible, but a
COMMIT-time error isn't negligible.  Back-patch to v13 (all supported
versions).

Reported-by: Richard Guo <[email protected]
Reported-by: Robins Tharakan <[email protected]>
Discussion: https://postgr.es/m/CAMbWs4-XwMKMKJ_GT=p3_-_=j9rQSEs1FbDFUnW9zHuKPsPNEQ@mail.gmail.com
Backpatch-through: 13
src/backend/commands/vacuum.c
src/test/regress/expected/maintain_every.out [new file with mode: 0644]
src/test/regress/parallel_schedule
src/test/regress/sql/maintain_every.sql [new file with mode: 0644]