Major overhaul of large-object implementation, by Denis Perchine with
authorTom Lane
Tue, 24 Oct 2000 01:38:44 +0000 (01:38 +0000)
committerTom Lane
Tue, 24 Oct 2000 01:38:44 +0000 (01:38 +0000)
commit4f44aa04b53f26d3abbf64beb0c1b3d10be324a3
treef32ad3b8c4819e87ac1fdcbe296b60880da55b56
parentd7186cfa9b0807deb5c4f31975a4269efa0905cf
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!
21 files changed:
contrib/pg_dumplo/lo_export.c
contrib/vacuumlo/vacuumlo.c
doc/src/sgml/ref/psql-ref.sgml
src/backend/catalog/Makefile
src/backend/catalog/indexing.c
src/backend/catalog/pg_largeobject.c [new file with mode: 0644]
src/backend/libpq/be-fsstubs.c
src/backend/storage/large_object/inv_api.c
src/bin/pg_dump/pg_dump.c
src/bin/pgtclsh/updateStats.tcl
src/bin/psql/describe.c
src/bin/psql/large_obj.c
src/include/catalog/catname.h
src/include/catalog/catversion.h
src/include/catalog/indexing.h
src/include/catalog/pg_class.h
src/include/catalog/pg_largeobject.h [new file with mode: 0644]
src/include/storage/large_object.h
src/interfaces/odbc/info.c
src/test/regress/expected/opr_sanity.out
src/test/regress/expected/sanity_check.out