postgresql/contrib/vacuumlo
Bruce Momjian 66eb8df6a4 The attached patch changes most of the usages of sprintf() to
snprintf() in contrib/. I didn't touch the places where pointer
arithmatic was being used, or other areas where the fix wasn't
trivial. I would think that few, if any, of the usages of sprintf()
were actually exploitable, but it's probably better to be paranoid...

Neil Conway
2002-08-15 02:58:29 +00:00
..
Makefile To fix the perpetually broken makefiles in the contrib tree, I have 2001-09-06 10:49:30 +00:00
README.vacuumlo Code review and cleanup. 2000-11-21 17:54:21 +00:00
vacuumlo.c The attached patch changes most of the usages of sprintf() to 2002-08-15 02:58:29 +00:00

README.vacuumlo

$Header: /cvsroot/pgsql/contrib/vacuumlo/Attic/README.vacuumlo,v 1.2 2000/11/21 17:54:21 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.


Compiling
--------

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


Usage
-----

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 all columns in the database that are of type 'oid',
and removes any 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