postgresql/src
Tom Lane f647ed438a Refactor heap_page_prune so that instead of changing item states on-the-fly,
it accumulates the set of changes to be made and then applies them.  It had
to accumulate the set of changes anyway to prepare a WAL record for the
pruning action, so this isn't an enormous change; the only new complexity is
to not doubly mark tuples that are visited twice in the scan.  The main
advantage is that we can substantially reduce the scope of the critical
section in which the changes are applied, thus avoiding PANIC in foreseeable
cases like running out of memory in inval.c.  A nice secondary advantage is
that it is now far clearer that WAL replay will actually do the same thing
that the original pruning did.

This commit doesn't do anything about the open problem that
CacheInvalidateHeapTuple doesn't have the right semantics for a CTID change
caused by collapsing out a redirect pointer.  But whatever we do about that,
it'll be a good idea to not do it inside a critical section.
2008-03-08 21:58:07 +00:00
..
backend Refactor heap_page_prune so that instead of changing item states on-the-fly, 2008-03-08 21:58:07 +00:00
bin Don't call AddUserToDacl on Cygwin 2008-02-29 23:31:42 +00:00
include Refactor heap_page_prune so that instead of changing item states on-the-fly, 2008-03-08 21:58:07 +00:00
interfaces Include -lgss in libpq link, if available. Bjorn Munch 2008-03-05 05:39:17 +00:00
makefiles Teach pgxs.mk and Install.pm how to install files from a contrib module 2007-10-16 16:00:00 +00:00
pl Document the fix for perl 5.10 with this comment: 2008-01-23 00:55:47 +00:00
port Fix handling of restricted processes for Windows Vista (mainly), 2008-02-29 15:31:41 +00:00
template Use SYSV semaphores rather than POSIX on Darwin >= 6.0 (i.e., OS X 10.2 2007-09-26 00:32:46 +00:00
test Use windows DACL fix for pg_regress as well. 2008-03-04 15:38:33 +00:00
timezone Venezuela Time now means UTC-4:30, not UTC-4:00. Adjust our treatment 2008-03-02 00:10:28 +00:00
tools Support for building contrib/uuid-ossp with MSVC. 2008-02-28 12:18:03 +00:00
tutorial Update copyrights in source tree to 2008. 2008-01-01 19:46:01 +00:00
bcc32.mak Remove old-style win32 client-only visual c++ build infrastructure for everything except 2007-03-05 14:18:38 +00:00
DEVELOPERS Testing commit stuff 2006-07-10 15:50:02 +00:00
Makefile Tsearch2 functionality migrates to core. The bulk of this work is by 2007-08-21 01:11:32 +00:00
Makefile.global.in I find that an out-of-the-box installation of OSSP uuid 1.6.0 installs 2007-11-13 00:13:19 +00:00
Makefile.shlib Change $(CC) to $(COMPILER) on Solaris gcc so -m64 is passed into the 2007-02-20 22:45:57 +00:00
nls-global.mk When merging PO files, take into consideration translations in other PO 2006-04-05 13:40:15 +00:00
win32.mak Update supported standalone VC++ version to 7.1+ only, and fix 2007-08-03 10:47:11 +00:00