postgresql/src/include
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
..
access Refactor heap_page_prune so that instead of changing item states on-the-fly, 2008-03-08 21:58:07 +00:00
bootstrap Update copyrights in source tree to 2008. 2008-01-01 19:46:01 +00:00
catalog Fix ALTER INDEX RENAME so that if the index belongs to a unique or primary key 2008-01-17 18:56:54 +00:00
commands Add checks to TRUNCATE, CLUSTER, and REINDEX to prevent performing these 2008-01-30 19:46:48 +00:00
executor Update copyrights in source tree to 2008. 2008-01-01 19:46:01 +00:00
lib Update copyrights in source tree to 2008. 2008-01-01 19:46:01 +00:00
libpq Update copyrights in source tree to 2008. 2008-01-01 19:46:01 +00:00
mb Update copyrights in source tree to 2008. 2008-01-01 19:46:01 +00:00
nodes Fix CREATE TABLE ... LIKE ... INCLUDING INDEXES to not cause unwanted 2008-02-07 17:09:51 +00:00
optimizer Update copyrights in source tree to 2008. 2008-01-01 19:46:01 +00:00
parser The original implementation of polymorphic aggregates didn't really get the 2008-01-11 18:39:41 +00:00
port Don't enforce 32-bit time_t for FRONTEND apps. Fixes standalone 2008-01-09 09:16:43 +00:00
postmaster Update copyrights in source tree to 2008. 2008-01-01 19:46:01 +00:00
regex Fix assorted security-grade bugs in the regex engine. All of these problems 2008-01-03 20:47:55 +00:00
rewrite Update copyrights in source tree to 2008. 2008-01-01 19:46:01 +00:00
snowball Update copyrights in source tree to 2008. 2008-01-01 19:46:01 +00:00
storage Fix PREPARE TRANSACTION to reject the case where the transaction has dropped a 2008-03-04 19:54:13 +00:00
tcop Update copyrights in source tree to 2008. 2008-01-01 19:46:01 +00:00
tsearch Fix RS_isRegis() to agree exactly with RS_compile()'s idea of what's a valid 2008-01-21 02:46:11 +00:00
utils Change the declaration of struct varlena so that the length word is 2008-02-23 19:11:55 +00:00
c.h Change the declaration of struct varlena so that the length word is 2008-02-23 19:11:55 +00:00
fmgr.h Update copyrights in source tree to 2008. 2008-01-01 19:46:01 +00:00
funcapi.h Update copyrights in source tree to 2008. 2008-01-01 19:46:01 +00:00
getaddrinfo.h Update copyrights in source tree to 2008. 2008-01-01 19:46:01 +00:00
getopt_long.h Update copyrights in source tree to 2008. 2008-01-01 19:46:01 +00:00
Makefile make install is supposed to install everything under src/include/, 2007-10-14 17:07:51 +00:00
miscadmin.h Make standard maintenance operations (including VACUUM, ANALYZE, REINDEX, 2008-01-03 21:23:15 +00:00
pg_config.h.in Change /contrib to contrib for consistency. 2008-01-24 06:23:33 +00:00
pg_config.h.win32 Stamp 8.3 in CVS. _No_ update of configure/configure.in. 2008-02-01 02:59:02 +00:00
pg_config_manual.h Arrange for large sequential scans to synchronize with each other, so that 2007-06-08 18:23:53 +00:00
pg_trace.h Correct two more copyrights found by updated script. 2008-01-02 02:42:06 +00:00
pgstat.h Update copyrights in source tree to 2008. 2008-01-01 19:46:01 +00:00
pgtime.h Update copyrights in source tree to 2008. 2008-01-01 19:46:01 +00:00
port.h Fix handling of restricted processes for Windows Vista (mainly), 2008-02-29 15:31:41 +00:00
postgres.h Update copyrights in source tree to 2008. 2008-01-01 19:46:01 +00:00
postgres_ext.h Move NAMEDATALEN definition from postgres_ext.h to pg_config_manual.h. It 2007-02-06 09:16:08 +00:00
postgres_fe.h Update copyrights in source tree to 2008. 2008-01-01 19:46:01 +00:00
rusagestub.h Update copyrights in source tree to 2008. 2008-01-01 19:46:01 +00:00