postgresql/src
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
..
backend Repair VACUUM FULL bug introduced by HOT patch: the original way of 2008-02-11 19:14:38 +00:00
bin Fix a couple of issues with pg_dump's handling of inheritance child tables 2007-10-28 19:08:08 +00:00
include Prevent integer overflow within the integer-datetimes version of 2008-01-23 21:26:20 +00:00
interfaces Fix an ancient oversight in libpq's handling of V3-protocol COPY OUT mode: 2008-01-14 18:46:25 +00:00
makefiles Add $(CFLAGS) to the simplified build rule for .so libraries on Darwin. 2006-11-28 05:45:43 +00:00
pl Work around for perl 5.10 bug - fix due to perl hacker Simon Cozens. 2008-01-22 20:19:53 +00:00
port Stamp release 8.2.6. 2008-01-03 21:40:50 +00:00
template Make --with-ldap build on Unixware, per Olivier Prenant. 2006-12-14 21:50:07 +00:00
test Fix a bug in 8.2.x that was exposed while investigating Kevin Grittner's 2008-01-09 20:50:12 +00:00
timezone Insert ARST into the list of known timezone abbreviations. 2008-01-02 21:42:09 +00:00
tools More MSVC build support from Magnus. 2006-11-29 19:49:31 +00:00
tutorial Fix some misuses of strncat(). 2006-09-27 16:19:42 +00:00
bcc32.mak Fix bcc32.mak to create and remove pg_config_os.h properly. Apparently 2006-10-06 18:53:53 +00:00
DEVELOPERS Testing commit stuff 2006-07-10 15:50:02 +00:00
Makefile Remove dllinit.c; it was only needed for long-obsolete Cygwin versions, 2006-06-22 23:50:35 +00:00
Makefile.global.in On Windows, we know the backend stack size limit because we have to 2006-10-08 17:15:34 +00:00
Makefile.shlib Fix shared library creation to work properly on AIX. Albe Laurenz 2006-09-19 15:36:08 +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 Fix win32.mak for config cleanup. 2006-08-08 22:44:05 +00:00