]> granicus.if.org Git - postgresql/commit
Perform a lot more sanity checks when freezing tuples.
authorAndres Freund <andres@anarazel.de>
Tue, 14 Nov 2017 02:45:47 +0000 (18:45 -0800)
committerAndres Freund <andres@anarazel.de>
Fri, 15 Dec 2017 02:20:48 +0000 (18:20 -0800)
commit986a9153b9708071adf6ce2c9131266f3431f4ec
tree657448ff7b2f33845516f3692eabe0e5ce5ed8a8
parent937494c0e1f9b0589d32e00acb4c253ada9958b1
Perform a lot more sanity checks when freezing tuples.

The previous commit has shown that the sanity checks around freezing
aren't strong enough. Strengthening them seems especially important
because the existance of the bug has caused corruption that we don't
want to make even worse during future vacuum cycles.

The errors are emitted with ereport rather than elog, despite being
"should never happen" messages, so a proper error code is emitted. To
avoid superflous translations, mark messages as internal.

Author: Andres Freund and Alvaro Herrera
Reviewed-By: Alvaro Herrera, Michael Paquier
Discussion: https://postgr.es/m/20171102112019.33wb7g5wp4zpjelu@alap3.anarazel.de
Backpatch: 9.3-
src/backend/access/heap/heapam.c
src/backend/access/heap/rewriteheap.c
src/backend/commands/vacuumlazy.c
src/include/access/heapam.h
src/include/access/heapam_xlog.h