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
   
  
| Name | Type | References | Description | 
|---|---|---|---|
| 
        loid
        | 
        oid
        | 
        
          | Identifier of the large object that includes this page | 
| 
        pageno
        | 
        int4
        | Page number of this page within its large object (counting from zero) | |
| 
        data
        | 
        bytea
        | Actual data stored in the large object.
       This will never be more than 
        LOBLKSIZE
       bytes and might be less. | 
  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.