postgresql/contrib/vacuumlo
Tom Lane 4f44aa04b5 Major overhaul of large-object implementation, by Denis Perchine with
kibitzing from Tom Lane.  Large objects are now all stored in a single
system relation "pg_largeobject" --- no more xinv or xinx files, no more
relkind 'l'.  This should offer substantial performance improvement for
large numbers of LOs, since there won't be directory bloat anymore.
It'll also fix problems like running out of locktable space when you
access thousands of LOs in one transaction.
Also clean up cruft in read/write routines.  LOs with "holes" in them
(never-written byte ranges) now work just like Unix files with holes do:
a hole reads as zeroes but doesn't occupy storage space.
INITDB forced!
2000-10-24 01:38:44 +00:00
..
Makefile Add support for VPATH builds, that is, building somewhere else than in the 2000-10-20 21:04:27 +00:00
README.vacuumlo Add missing /contrib files 2000-06-19 14:02:16 +00:00
vacuumlo.c Major overhaul of large-object implementation, by Denis Perchine with 2000-10-24 01:38:44 +00:00

README.vacuumlo

$Header: /cvsroot/pgsql/contrib/vacuumlo/Attic/README.vacuumlo,v 1.1 2000/06/19 14:02:16 momjian Exp $

This is a simple utility that will remove any orphaned large objects out of a
PostgreSQL database.

Compiling
--------

Simply run make. A single executable "vacuumlo" is created.

Useage
------

vacuumlo [-v] database [db2 ... dbn]

The -v flag outputs some progress messages to stdout.

Method
------

First, it builds a temporary table which contains all of the oid's of the
large objects in that database.

It then scans through any columns in the database that are of type 'oid', and
removes any entries from the temporary table.

Finally, it runs through the first table, and removes from the second table, any
oid's it finds. What is left are the orphans, and these are removed.

I decided to place this in contrib as it needs further testing, but hopefully,
this (or a variant of it) would make it into the backed as a "vacuum lo" command
in a later release.

Peter Mount <peter@retep.org.uk>
http://www.retep.org.uk
March 21 1999

Committed April 10 1999 Peter