]> granicus.if.org Git - postgresql/commit
Modify btree to delete known-dead index entries without an actual VACUUM.
authorTom Lane <tgl@sss.pgh.pa.us>
Tue, 25 Jul 2006 19:13:00 +0000 (19:13 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Tue, 25 Jul 2006 19:13:00 +0000 (19:13 +0000)
commite6284649b9e30372b3990107a082bc7520325676
tree7c1075578244b4ce410c8185617dca4a7f7c44a5
parentedd49fcf69a8d3e044adc7f0794dc8d18e3f994b
Modify btree to delete known-dead index entries without an actual VACUUM.
When we are about to split an index page to do an insertion, first look
to see if any entries marked LP_DELETE exist on the page, and if so remove
them to try to make enough space for the desired insert.  This should reduce
index bloat in heavily-updated tables, although of course you still need
VACUUM eventually to clean up the heap.

Junji Teramoto
src/backend/access/nbtree/README
src/backend/access/nbtree/nbtinsert.c
src/backend/access/nbtree/nbtpage.c
src/backend/access/nbtree/nbtutils.c
src/backend/access/nbtree/nbtxlog.c
src/include/access/nbtree.h