postgresql/src/backend
Andres Freund 4800f16a7a 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:48 -08:00
..
access Perform a lot more sanity checks when freezing tuples. 2017-12-14 18:20:48 -08:00
bootstrap Protect against multixact members wraparound 2015-04-28 11:32:53 -03:00
catalog Rethink the dependencies recorded for FieldSelect/FieldStore nodes. 2017-10-27 12:18:57 -04:00
commands Perform a lot more sanity checks when freezing tuples. 2017-12-14 18:20:48 -08:00
executor Fix corner-case coredump in _SPI_error_callback(). 2017-12-11 16:33:54 -05:00
foreign Arrange to cache FdwRoutine structs in foreign tables' relcache entries. 2013-03-06 23:48:09 -05:00
lib Misc comment typo fixes. 2014-12-16 16:39:33 +02:00
libpq Fix some null pointer dereferences in LDAP auth code 2017-11-10 14:30:48 -05:00
main Install Windows crash dump handler before all else. 2017-11-12 14:31:05 -08:00
nodes Fix improper repetition of previous results from a hashed aggregate. 2016-08-24 14:37:51 -04:00
optimizer Spelling fixes 2017-03-14 13:45:45 -04:00
parser Dept of second thoughts: keep aliasp_item in sync with tlistitem. 2017-10-27 18:16:25 -04:00
po Translation updates 2017-11-05 17:05:18 -05:00
port Avoid depending on non-POSIX behavior of fcntl(2). 2017-04-21 15:55:56 -04:00
postmaster Provide for forward compatibility with future minor protocol versions. 2017-11-21 14:45:29 -05:00
regex Fix regexport.c to behave sanely with lookaround constraints. 2017-04-13 17:18:35 -04:00
replication Fix coding rules violations in walreceiver.c 2017-10-03 14:58:25 +02:00
rewrite Fix multiple assignments to a column of a domain type. 2017-07-11 16:48:59 -04:00
snowball Fix ancient encoding error in hungarian.stop. 2014-06-10 22:48:39 -04:00
storage Clean up assorted messiness around AllocateDir() usage. 2017-12-04 17:02:52 -05:00
tcop Unify SIGHUP handling between normal and walsender backends. 2017-06-05 19:18:16 -07:00
tsearch Reduce memory usage of tsvector type analyze function. 2017-07-12 22:04:08 +03:00
utils Fix pruning of locked and updated tuples. 2017-12-14 18:20:48 -08:00
.gitignore Add gitignore for mingw/cygwin build outputs 2011-06-09 18:11:47 +02:00
common.mk Call check_keywords.pl in maintainer-check 2012-02-27 13:53:12 +02:00
Makefile AIX: Link the postgres executable with -Wl,-brtllib. 2015-07-15 21:00:30 -04:00
nls.mk xlogreader.c: Fix report_invalid_record translatability flag 2015-01-09 12:34:24 -03:00