postgresql/src/backend
Tom Lane 4722e1f33c Repair VACUUM FULL bug introduced by HOT patch: the original way of
calculating a page's initial free space was fine, and should not have been
"improved" by letting PageGetHeapFreeSpace do it.  VACUUM FULL is going to
reclaim LP_DEAD line pointers later, so there is no need for a guard
against the page being too full of line pointers, and having one risks
rejecting pages that are perfectly good move destinations.

This also exposed a second bug, which is that the empty_end_pages logic
assumed that any page with no live tuples would get entered into the
fraged_pages list automatically (by virtue of having more free space than
the threshold in the do_frag calculation).  This assumption certainly
seems risky when a low fillfactor has been chosen, and even without
tunable fillfactor I think it could conceivably fail on a page with many
unused line pointers.  So fix the code to force do_frag true when notup
is true, and patch this part of the fix all the way back.

Per report from Tomas Szepe.
2008-02-11 19:14:38 +00:00
..
access Make standard maintenance operations (including VACUUM, ANALYZE, REINDEX, 2008-01-03 21:23:45 +00:00
bootstrap On systems that have setsid(2) (which should be just about everything except 2006-11-21 20:59:53 +00:00
catalog Make standard maintenance operations (including VACUUM, ANALYZE, REINDEX, 2008-01-03 21:23:45 +00:00
commands Repair VACUUM FULL bug introduced by HOT patch: the original way of 2008-02-11 19:14:38 +00:00
executor Extend whole-row Var evaluation to cope with the case that the sub-plan 2007-08-31 18:33:47 +00:00
lib Update copyright for 2006. Update scripts. 2006-03-05 15:59:11 +00:00
libpq On win32, don't use SO_REUSEADDR for TCP sockets. 2007-06-04 11:59:40 +00:00
main Fix erroneous implementation of -s in postmaster.c (the switch doesn't take 2007-01-04 00:58:01 +00:00
nodes Rewrite make_outerjoininfo's construction of min_lefthand and min_righthand 2007-08-31 01:44:14 +00:00
optimizer Fix subselect.c to avoid assuming that a SubLink's testexpr references each 2008-01-17 20:35:34 +00:00
parser Some variants of ALTER OWNER tried to make the "object" field of the 2008-02-07 21:08:04 +00:00
po Translation updates 2007-09-13 21:15:37 +00:00
port Fix failure to restart Postgres when Linux kernel returns EIDRM for shmctl(). 2007-07-02 20:12:00 +00:00
postmaster Backpatch my fix of rev 1.48 to avoid a division-by-zero error in the 2008-01-17 23:47:04 +00:00
regex Fix assorted security-grade bugs in the regex engine. All of these problems 2008-01-03 20:48:49 +00:00
rewrite Fix markQueryForLocking() to work correctly in the presence of nested views. 2007-03-01 18:50:36 +00:00
storage Fix WaitOnLock() to ensure that the process's "waiting" flag is reset after 2008-02-02 22:26:23 +00:00
tcop Fix portal management code to support non-default command completion tags for 2007-02-18 19:49:30 +00:00
utils Add pid to the pgident event name on win32. 2008-01-31 09:21:22 +00:00
Makefile On Windows, we know the backend stack size limit because we have to 2006-10-08 17:15:34 +00:00
nls.mk Add _ to gettext triggers. Must have been forgotten here when it was introduced. 2005-10-04 11:14:03 +00:00