|
1 |
| -<!-- $PostgreSQL: pgsql/doc/src/sgml/catalogs.sgml,v 2.212 2009/12/07 05:22:21 tgl Exp $ --> |
| 1 | +<!-- $PostgreSQL: pgsql/doc/src/sgml/catalogs.sgml,v 2.213 2009/12/11 03:34:54 itagaki Exp $ --> |
2 | 2 | <!--
|
3 | 3 | Documentation of the system catalogs, directed toward PostgreSQL developers
|
4 | 4 | -->
|
|
160 | 160 |
|
161 | 161 | <row>
|
162 | 162 | <entry><link linkend="catalog-pg-largeobject"><structname>pg_largeobject</structname></link></entry>
|
163 |
| - <entry>large objects</entry> |
| 163 | + <entry>data pages for large objects</entry> |
| 164 | + </row> |
| 165 | + |
| 166 | + <row> |
| 167 | + <entry><link linkend="catalog-pg-largeobject-metadata"><structname>pg_largeobject_metadata</structname></link></entry> |
| 168 | + <entry>metadata for large objects</entry> |
164 | 169 | </row>
|
165 | 170 |
|
166 | 171 | <row>
|
|
3120 | 3125 |
|
3121 | 3126 | <para>
|
3122 | 3127 | The catalog <structname>pg_largeobject</structname> holds the data making up
|
3123 |
| - <quote>large objects</quote>. A large object is identified by an |
3124 |
| - OID assigned when it is created. Each large object is broken into |
| 3128 | + <quote>large objects</quote>. A large object is identified by an OID of |
| 3129 | + <link linkend="catalog-pg-largeobject-metadata"><structname>pg_largeobject_metadata</></link> |
| 3130 | + catalog, assigned when it is created. Each large object is broken into |
3125 | 3131 | segments or <quote>pages</> small enough to be conveniently stored as rows
|
3126 | 3132 | in <structname>pg_largeobject</structname>.
|
3127 | 3133 | The amount of data per page is defined to be <symbol>LOBLKSIZE</> (which is currently
|
3128 | 3134 | <literal>BLCKSZ/4</>, or typically 2 kB).
|
3129 | 3135 | </para>
|
3130 | 3136 |
|
| 3137 | + <para> |
| 3138 | + <structname>pg_largeobject</structname> should not be readable by the |
| 3139 | + public, since the catalog contains data in large objects of all users. |
| 3140 | + <structname>pg_largeobject_metadata</> is a publicly readable catalog |
| 3141 | + that only contains identifiers of large objects. |
| 3142 | + </para> |
| 3143 | + |
3131 | 3144 | <table>
|
3132 | 3145 | <title><structname>pg_largeobject</> Columns</title>
|
3133 | 3146 |
|
3134 |
| - <tgroup cols="3"> |
| 3147 | + <tgroup cols="4"> |
3135 | 3148 | <thead>
|
3136 | 3149 | <row>
|
3137 | 3150 | <entry>Name</entry>
|
3138 | 3151 | <entry>Type</entry>
|
| 3152 | + <entry>References</entry> |
3139 | 3153 | <entry>Description</entry>
|
3140 | 3154 | </row>
|
3141 | 3155 | </thead>
|
|
3144 | 3158 | <row>
|
3145 | 3159 | <entry><structfield>loid</structfield></entry>
|
3146 | 3160 | <entry><type>oid</type></entry>
|
| 3161 | + <entry><literal><link linkend="catalog-pg-largeobject-metadata"><structname>pg_largeobject_metadata</structname></link>.oid</literal></entry> |
3147 | 3162 | <entry>Identifier of the large object that includes this page</entry>
|
3148 | 3163 | </row>
|
3149 | 3164 |
|
3150 | 3165 | <row>
|
3151 | 3166 | <entry><structfield>pageno</structfield></entry>
|
3152 | 3167 | <entry><type>int4</type></entry>
|
| 3168 | + <entry></entry> |
3153 | 3169 | <entry>Page number of this page within its large object
|
3154 | 3170 | (counting from zero)</entry>
|
3155 | 3171 | </row>
|
3156 | 3172 |
|
3157 | 3173 | <row>
|
3158 | 3174 | <entry><structfield>data</structfield></entry>
|
3159 | 3175 | <entry><type>bytea</type></entry>
|
| 3176 | + <entry></entry> |
3160 | 3177 | <entry>
|
3161 | 3178 | Actual data stored in the large object.
|
3162 | 3179 | This will never be more than <symbol>LOBLKSIZE</> bytes and might be less
|
|
3177 | 3194 |
|
3178 | 3195 | </sect1>
|
3179 | 3196 |
|
| 3197 | + <sect1 id="catalog-pg-largeobject-metadata"> |
| 3198 | + <title><structname>pg_largeobject_metadata</structname></title> |
| 3199 | + |
| 3200 | + <indexterm zone="catalog-pg-largeobject-metadata"> |
| 3201 | + <primary>pg_largeobject_metadata</primary> |
| 3202 | + </indexterm> |
| 3203 | + |
| 3204 | + <para> |
| 3205 | + The purpose of <structname>pg_largeobject_metadata</structname> is to |
| 3206 | + hold metadata of <quote>large objects</quote>, such as OID of its owner, |
| 3207 | + access permissions and OID of the large object itself. |
| 3208 | + </para> |
| 3209 | + |
| 3210 | + <table> |
| 3211 | + <title><structname>pg_largeobject_metadata</> Columns</title> |
| 3212 | + |
| 3213 | + <tgroup cols="4"> |
| 3214 | + <thead> |
| 3215 | + <row> |
| 3216 | + <entry>Name</entry> |
| 3217 | + <entry>Type</entry> |
| 3218 | + <entry>References</entry> |
| 3219 | + <entry>Description</entry> |
| 3220 | + </row> |
| 3221 | + </thead> |
| 3222 | + |
| 3223 | + <tbody> |
| 3224 | + <row> |
| 3225 | + <entry><structfield>lomowner</structfield></entry> |
| 3226 | + <entry><type>oid</type></entry> |
| 3227 | + <entry><literal><link linkend="catalog-pg-authid"><structname>pg_authid</structname></link>.oid</literal></entry> |
| 3228 | + <entry>Owner of the largeobejct</entry> |
| 3229 | + </row> |
| 3230 | + |
| 3231 | + <row> |
| 3232 | + <entry><structfield>lomacl</structfield></entry> |
| 3233 | + <entry><type>aclitem[]</type></entry> |
| 3234 | + <entry> |
| 3235 | + Access privileges; see |
| 3236 | + <xref linkend="sql-grant" endterm="sql-grant-title"> and |
| 3237 | + <xref linkend="sql-revoke" endterm="sql-revoke-title"> |
| 3238 | + for details |
| 3239 | + </entry> |
| 3240 | + </row> |
| 3241 | + |
| 3242 | + </tbody> |
| 3243 | + </tgroup> |
| 3244 | + </table> |
| 3245 | + </sect1> |
3180 | 3246 |
|
3181 | 3247 | <sect1 id="catalog-pg-listener">
|
3182 | 3248 | <title><structname>pg_listener</structname></title>
|
|
0 commit comments