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/[email protected] Backpatch: 9.3- Branch ------ REL_10_STABLE Details ------- https://git.postgresql.org/pg/commitdiff/d3044f8b0732d369ad255c9268e2feb42acae2a0 Modified Files -------------- src/backend/access/heap/heapam.c | 112 ++++++++++++++++++++++++++++------ src/backend/access/heap/rewriteheap.c | 5 +- src/backend/commands/vacuumlazy.c | 15 ++++- src/include/access/heapam.h | 5 +- src/include/access/heapam_xlog.h | 2 + 5 files changed, 114 insertions(+), 25 deletions(-)
