postgresql/src
Tom Lane c931c07124 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:30 +00:00
..
backend Repair VACUUM FULL bug introduced by HOT patch: the original way of 2008-02-11 19:14:30 +00:00
bin Translation updates 2008-01-31 18:04:52 +00:00
include Fix CREATE TABLE ... LIKE ... INCLUDING INDEXES to not cause unwanted 2008-02-07 17:09:51 +00:00
interfaces - Fixed segfault in ecpg when using an array element. 2008-02-07 11:09:13 +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 Update copyrights in source tree to 2008. 2008-01-01 19:46:01 +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 Make pg_regress clean out the testtablespace directory only on Windows. 2008-01-19 17:43:42 +00:00
timezone Insert ARST into the list of known timezone abbreviations. 2008-01-02 21:42:00 +00:00
tools Fix msvc install for cases where msgfmt (from gettext) is in a directory 2008-02-07 17:58:16 +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