mirror of https://github.com/postgres/postgres
5b0c9d3603
a physically separate type. Defining 'lo' as a domain over OID works just fine and is more efficient. Improve documentation and fix up the test script. (Would like to turn test script into a proper regression test, but right now its output is not constant because of numeric OIDs; plus it makes Unix-specific assumptions about files it can import.) |
||
---|---|---|
.. | ||
Makefile | ||
README.vacuumlo | ||
vacuumlo.c |
README.vacuumlo
$PostgreSQL: pgsql/contrib/vacuumlo/README.vacuumlo,v 1.5 2005/06/23 00:06:37 tgl Exp $ This is a simple utility that will remove any orphaned large objects out of a PostgreSQL database. An orphaned LO is considered to be any LO whose OID does not appear in any OID data column of the database. If you use this, you may also be interested in the lo_manage trigger in contrib/lo. lo_manage is useful to try to avoid creating orphaned LOs in the first place. Compiling -------- Simply run make. A single executable "vacuumlo" is created. Usage ----- vacuumlo [options] database [database2 ... databasen] All databases named on the command line are processed. Available options include: -v Write a lot of progress messages -n Don't remove large objects, just show what would be done -U username Username to connect as -W Prompt for password -h hostname Database server host -p port Database server port Method ------ First, it builds a temporary table which contains all of the OIDs of the large objects in that database. It then scans through all columns in the database that are of type "oid" or "lo", and removes matching entries from the temporary table. The remaining entries in the temp table identify orphaned LOs. These are removed. Notes ----- 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 backend 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