postgres/src/backend
Heikki Linnakangas 608195a3a3 Introduce visibility map. The visibility map is a bitmap with one bit per
heap page, where a set bit indicates that all tuples on the page are
visible to all transactions, and the page therefore doesn't need
vacuuming. It is stored in a new relation fork.

Lazy vacuum uses the visibility map to skip pages that don't need
vacuuming. Vacuum is also responsible for setting the bits in the map.
In the future, this can hopefully be used to implement index-only-scans,
but we can't currently guarantee that the visibility map is always 100%
up-to-date.

In addition to the visibility map, there's a new PD_ALL_VISIBLE flag on
each heap page, also indicating that all tuples on the page are visible to
all transactions. It's important that this flag is kept up-to-date. It
is also used to skip visibility tests in sequential scans, which gives a
small performance gain on seqscans.
2008-12-03 13:05:22 +00:00
..
access Introduce visibility map. The visibility map is a bitmap with one bit per 2008-12-03 13:05:22 +00:00
bootstrap Add %expect 0 to all parser input files to prevent conflicts slipping by. 2008-11-26 08:45:12 +00:00
catalog Introduce visibility map. The visibility map is a bitmap with one bit per 2008-12-03 13:05:22 +00:00
commands Introduce visibility map. The visibility map is a bitmap with one bit per 2008-12-03 13:05:22 +00:00
executor Ensure that the contents of a holdable cursor don't depend on out-of-line 2008-12-01 17:06:21 +00:00
lib Refactor backend makefiles to remove lots of duplicate code 2008-02-19 10:30:09 +00:00
libpq Support regular expressions in pg_ident.conf. 2008-11-28 14:26:58 +00:00
main Refactor backend makefiles to remove lots of duplicate code 2008-02-19 10:30:09 +00:00
nodes Fix an oversight in the code that makes transitive-equality deductions from 2008-12-01 21:06:13 +00:00
optimizer Fix an oversight in the code that makes transitive-equality deductions from 2008-12-01 21:06:13 +00:00
parser Add %expect 0 to all parser input files to prevent conflicts slipping by. 2008-11-26 08:45:12 +00:00
po Translation updates 2008-01-31 18:04:52 +00:00
port Revert previous patch to put the shared memory segment on win32 2008-10-30 17:04:09 +00:00
postmaster Teach RequestCheckpoint() to wait and retry a few times if it can't signal 2008-11-23 01:40:19 +00:00
regex Refactor backend makefiles to remove lots of duplicate code 2008-02-19 10:30:09 +00:00
rewrite Rethink the way FSM truncation works. Instead of WAL-logging FSM 2008-11-19 10:34:52 +00:00
snowball pg_do_encoding_conversion cannot return NULL (at least not unless the input 2008-11-10 15:18:40 +00:00
storage Small comment fixes. 2008-12-03 12:22:53 +00:00
tcop Ensure that the contents of a holdable cursor don't depend on out-of-line 2008-12-01 17:06:21 +00:00
tsearch Fix bug in the tsvector stats collection function, which caused a crash if 2008-11-27 21:17:39 +00:00
utils Introduce visibility map. The visibility map is a bitmap with one bit per 2008-12-03 13:05:22 +00:00
common.mk Code coverage testing with gcov. Documentation is in the regression test 2008-09-05 12:11:18 +00:00
Makefile Remove all traces that suggest that a non-Bison yacc might be supported, and 2008-08-29 13:02:33 +00:00
nls.mk Install a more robust solution for the problem of infinite error-processing 2008-10-27 19:37:22 +00:00