51.30. pg_largeobject
The catalog
pg_largeobject
holds the data making up
"
large objects
"
. A large object is identified by an OID
assigned when it is created. Each large object is broken into
segments or
"
pages
"
small enough to be conveniently stored as rows
in
pg_largeobject
.
The amount of data per page is defined to be
LOBLKSIZE
(which is currently
BLCKSZ/4
, or typically 2 kB).
Prior to
PostgreSQL
9.0, there was no permission structure
associated with large objects. As a result,
pg_largeobject
was publicly readable and could be
used to obtain the OIDs (and contents) of all large objects in the system.
This is no longer the case; use
pg_largeobject_metadata
to obtain a list of large object OIDs.
Table 51.30.
pg_largeobject
Columns
Column Type Description |
---|
Identifier of the large object that includes this page |
Page number of this page within its large object (counting from zero) |
Actual data stored in the large object.
This will never be more than
|
Each row of
pg_largeobject
holds data
for one page of a large object, beginning at
byte offset (
pageno * LOBLKSIZE
) within the object. The implementation
allows sparse storage: pages might be missing, and might be shorter than
LOBLKSIZE
bytes even if they are not the last page of the object.
Missing regions within a large object read as zeroes.