4f44aa04b5
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! |
||
---|---|---|
.. | ||
Makefile | ||
README.vacuumlo | ||
vacuumlo.c |
$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