Home Explore Blog CI



postgresql

60th chunk of `doc/src/sgml/catalogs.sgml`
7091637dc698c884a63a0b8bf0d2d3677a696290da3125bc0000000100000fb5

       Page number of this page within its large object
       (counting from zero)
      </para></entry>
     </row>

     <row>
      <entry role="catalog_table_entry"><para role="column_definition">
       <structfield>data</structfield> <type>bytea</type>
      </para>
      <para>
       Actual data stored in the large object.
       This will never be more than <symbol>LOBLKSIZE</symbol> bytes and might be less.
      </para></entry>
     </row>
    </tbody>
   </tgroup>
  </table>

  <para>
   Each row of <structname>pg_largeobject</structname> holds data
   for one page of a large object, beginning at
   byte offset (<literal>pageno * LOBLKSIZE</literal>) within the object.  The implementation
   allows sparse storage: pages might be missing, and might be shorter than
   <literal>LOBLKSIZE</literal> bytes even if they are not the last page of the object.
   Missing regions within a large object read as zeroes.
  </para>

 </sect1>

 <sect1 id="catalog-pg-largeobject-metadata">
  <title><structname>pg_largeobject_metadata</structname></title>

  <indexterm zone="catalog-pg-largeobject-metadata">
   <primary>pg_largeobject_metadata</primary>
  </indexterm>

  <para>
   The catalog <structname>pg_largeobject_metadata</structname>
   holds metadata associated with large objects.  The actual large object
   data is stored in
   <link linkend="catalog-pg-largeobject"><structname>pg_largeobject</structname></link>.
  </para>

  <table>
   <title><structname>pg_largeobject_metadata</structname> Columns</title>
   <tgroup cols="1">
    <thead>
     <row>
      <entry role="catalog_table_entry"><para role="column_definition">
       Column Type
      </para>
      <para>
       Description
      </para></entry>
     </row>
    </thead>

    <tbody>
     <row>
      <entry role="catalog_table_entry"><para role="column_definition">
       <structfield>oid</structfield> <type>oid</type>
      </para>
      <para>
       Row identifier
      </para></entry>
     </row>

     <row>
      <entry role="catalog_table_entry"><para role="column_definition">
       <structfield>lomowner</structfield> <type>oid</type>
       (references <link linkend="catalog-pg-authid"><structname>pg_authid</structname></link>.<structfield>oid</structfield>)
      </para>
      <para>
       Owner of the large object
      </para></entry>
     </row>

     <row>
      <entry role="catalog_table_entry"><para role="column_definition">
       <structfield>lomacl</structfield> <type>aclitem[]</type>
      </para>
      <para>
       Access privileges; see <xref linkend="ddl-priv"/> for details
      </para></entry>
     </row>
    </tbody>
   </tgroup>
  </table>
 </sect1>


 <sect1 id="catalog-pg-namespace">
  <title><structname>pg_namespace</structname></title>

  <indexterm zone="catalog-pg-namespace">
   <primary>pg_namespace</primary>
  </indexterm>

  <para>
   The catalog <structname>pg_namespace</structname> stores namespaces.
   A namespace is the structure underlying SQL schemas: each namespace
   can have a separate collection of relations, types, etc. without name
   conflicts.
  </para>

  <table>
   <title><structname>pg_namespace</structname> Columns</title>
   <tgroup cols="1">
    <thead>
     <row>
      <entry role="catalog_table_entry"><para role="column_definition">
       Column Type
      </para>
      <para>
       Description
      </para></entry>
     </row>
    </thead>

    <tbody>
     <row>
      <entry role="catalog_table_entry"><para role="column_definition">
       <structfield>oid</structfield> <type>oid</type>
      </para>
      <para>
       Row identifier
      </para></entry>
     </row>

     <row>
      <entry role="catalog_table_entry"><para role="column_definition">
       <structfield>nspname</structfield> <type>name</type>
      </para>
      <para>
       Name of the namespace
      </para></entry>
     </row>

     <row>
      <entry role="catalog_table_entry"><para role="column_definition">
       <structfield>nspowner</structfield>

Title: pg_largeobject Details and pg_largeobject_metadata
Summary
This section details the `pg_largeobject` table, where the `pageno` column represents the page number within the large object, starting from zero, and the `data` column holds the actual data, no more than `LOBLKSIZE` bytes. The implementation allows for sparse storage, and missing regions read as zeroes. It then introduces `pg_largeobject_metadata`, which stores metadata for large objects, and describes its columns: `oid` (row identifier), `lomowner` (owner of the large object), and `lomacl` (access privileges). Finally, the section indicates the start of `pg_namespace` catalog documentation.