postgresql/src/include/access
Andres Freund 699bf7d05c 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-
2017-12-14 18:20:47 -08:00
..
amapi.h Phase 3 of pgindent updates. 2017-06-21 15:35:54 -04:00
amvalidate.h Phase 2 of pgindent updates. 2017-06-21 15:19:25 -04:00
attnum.h Phase 2 of pgindent updates. 2017-06-21 15:19:25 -04:00
brin_internal.h Phase 2 of pgindent updates. 2017-06-21 15:19:25 -04:00
brin_page.h Phase 2 of pgindent updates. 2017-06-21 15:19:25 -04:00
brin_pageops.h Phase 2 of pgindent updates. 2017-06-21 15:19:25 -04:00
brin_revmap.h Phase 2 of pgindent updates. 2017-06-21 15:19:25 -04:00
brin_tuple.h Phase 2 of pgindent updates. 2017-06-21 15:19:25 -04:00
brin_xlog.h Phase 2 of pgindent updates. 2017-06-21 15:19:25 -04:00
brin.h Phase 2 of pgindent updates. 2017-06-21 15:19:25 -04:00
bufmask.h For wal_consistency_checking, mask page checksum as well as page LSN. 2017-09-22 14:28:22 -04:00
clog.h Phase 3 of pgindent updates. 2017-06-21 15:35:54 -04:00
commit_ts.h Phase 2 of pgindent updates. 2017-06-21 15:19:25 -04:00
genam.h Phase 3 of pgindent updates. 2017-06-21 15:35:54 -04:00
generic_xlog.h Phase 2 of pgindent updates. 2017-06-21 15:19:25 -04:00
gin_private.h Fix broken cleanup interlock for GIN pending list. 2017-11-16 14:19:27 -05:00
gin.h Phase 2 of pgindent updates. 2017-06-21 15:19:25 -04:00
ginblock.h Phase 2 of pgindent updates. 2017-06-21 15:19:25 -04:00
ginxlog.h Phase 2 of pgindent updates. 2017-06-21 15:19:25 -04:00
gist_private.h Add some const decorations to prototypes 2017-11-10 13:38:57 -05:00
gist.h Phase 2 of pgindent updates. 2017-06-21 15:19:25 -04:00
gistscan.h Phase 2 of pgindent updates. 2017-06-21 15:19:25 -04:00
gistxlog.h Split index xlog headers from other private index headers. 2017-02-14 15:37:59 -05:00
hash_xlog.h Change TRUE/FALSE to true/false 2017-11-08 11:37:28 -05:00
hash.h Update typedefs.list and re-run pgindent 2017-11-29 09:24:24 -05:00
heapam_xlog.h Perform a lot more sanity checks when freezing tuples. 2017-12-14 18:20:47 -08:00
heapam.h Perform a lot more sanity checks when freezing tuples. 2017-12-14 18:20:47 -08:00
hio.h Phase 2 of pgindent updates. 2017-06-21 15:19:25 -04:00
htup_details.h Support domains over composite types. 2017-10-26 13:47:45 -04:00
htup.h Phase 2 of pgindent updates. 2017-06-21 15:19:25 -04:00
itup.h Change tupledesc->attrs[n] to TupleDescAttr(tupledesc, n). 2017-08-20 11:19:07 -07:00
multixact.h Phase 2 of pgindent updates. 2017-06-21 15:19:25 -04:00
nbtree.h Minor code-cleanliness improvements for btree. 2017-09-18 16:36:28 -04:00
nbtxlog.h Remove dedicated B-tree root-split record types. 2017-08-16 12:24:40 +03:00
parallel.h Provide DSM segment to ExecXXXInitializeWorker functions. 2017-11-16 17:39:18 -08:00
printsimple.h Phase 2 of pgindent updates. 2017-06-21 15:19:25 -04:00
printtup.h Improve performance of SendRowDescriptionMessage. 2017-10-11 17:23:23 -07:00
reloptions.h Add some const decorations to prototypes 2017-11-10 13:38:57 -05:00
relscan.h Use atomic ops to hand out pages to scan in parallel scan. 2017-08-16 16:18:41 +03:00
rewriteheap.h Phase 2 of pgindent updates. 2017-06-21 15:19:25 -04:00
rmgr.h Phase 2 of pgindent updates. 2017-06-21 15:19:25 -04:00
rmgrlist.h hash: Support WAL consistency checking. 2017-03-14 14:58:56 -04:00
sdir.h Phase 2 of pgindent updates. 2017-06-21 15:19:25 -04:00
session.h Avoid duplicate typedef for SharedRecordTypmodRegistry. 2017-09-15 00:25:33 -04:00
skey.h Phase 2 of pgindent updates. 2017-06-21 15:19:25 -04:00
slru.h Change TRUE/FALSE to true/false 2017-11-08 11:37:28 -05:00
spgist_private.h Phase 2 of pgindent updates. 2017-06-21 15:19:25 -04:00
spgist.h Phase 2 of pgindent updates. 2017-06-21 15:19:25 -04:00
spgxlog.h Phase 2 of pgindent updates. 2017-06-21 15:19:25 -04:00
stratnum.h Phase 2 of pgindent updates. 2017-06-21 15:19:25 -04:00
subtrans.h Phase 2 of pgindent updates. 2017-06-21 15:19:25 -04:00
sysattr.h Phase 2 of pgindent updates. 2017-06-21 15:19:25 -04:00
timeline.h Phase 2 of pgindent updates. 2017-06-21 15:19:25 -04:00
transam.h Phase 2 of pgindent updates. 2017-06-21 15:19:25 -04:00
tsmapi.h Phase 2 of pgindent updates. 2017-06-21 15:19:25 -04:00
tupconvert.h Phase 2 of pgindent updates. 2017-06-21 15:19:25 -04:00
tupdesc.h Support domains over composite types. 2017-10-26 13:47:45 -04:00
tupmacs.h Phase 2 of pgindent updates. 2017-06-21 15:19:25 -04:00
tuptoaster.h Phase 2 of pgindent updates. 2017-06-21 15:19:25 -04:00
twophase_rmgr.h Phase 2 of pgindent updates. 2017-06-21 15:19:25 -04:00
twophase.h Mark assorted variables PGDLLIMPORT. 2017-12-05 09:23:57 -05:00
valid.h Phase 2 of pgindent updates. 2017-06-21 15:19:25 -04:00
visibilitymap.h Phase 2 of pgindent updates. 2017-06-21 15:19:25 -04:00
xact.h Add some const decorations to prototypes 2017-11-10 13:38:57 -05:00
xlog_internal.h Add some const decorations to prototypes 2017-11-10 13:38:57 -05:00
xlog.h Simplify do_pg_start_backup's API by opening pg_tblspc internally. 2017-12-04 18:37:54 -05:00
xlogdefs.h Phase 2 of pgindent updates. 2017-06-21 15:19:25 -04:00
xloginsert.h Phase 2 of pgindent updates. 2017-06-21 15:19:25 -04:00
xlogreader.h Make WAL segment size configurable at initdb time. 2017-09-19 22:03:48 -07:00
xlogrecord.h Phase 2 of pgindent updates. 2017-06-21 15:19:25 -04:00
xlogutils.h Post-PG 10 beta1 pgindent run 2017-05-17 16:31:56 -04:00