The large object implementation breaks large
objects up into "chunks" and stores the chunks in
rows in the database. A B-tree index guarantees fast
searches for the correct chunk number when doing random
access reads and writes.
As of PostgreSQL 9.0, large objects have an owner
and a set of access permissions, which can be managed using
GRANT and
REVOKE.
For compatibility with prior releases, see
lo_compat_privileges.
SELECT privileges are required to read a large
object, and
UPDATE privileges are required to write to or
truncate it.
Only the large object owner (or the database superuser) can unlink, comment
on, or change the owner of a large object.