pg_largeobject

PostgreSQL 9.1.1文書
前のページ | 巻戻し | 第 45章システムカタログ | 早送り | 次のページ

# 45.28. `pg_largeobject`

`pg_largeobject`カタログは"ラージオブジェクト"を構築するデータを保持します。 ラージオブジェクトは作成された時に割り当てられたOIDで識別されます。 それぞれのラージオブジェクトは`pg_largeobject`の行に都合良く格納されるのに十分に足る小さなセグメント、もしくは"ページ"に分割されます。 ページごとのデータ量は（現在`BLCKSZ/4`あるいは典型的に2キロバイトの）`LOBLKSIZE`として定義されます。

PostgreSQL 9.0より前までは、ラージオブジェクトに関連した権限構造はありませんでした。 その結果`pg_largeobject`は可読性が高いもので、システム内のすべてのラージオブジェクトのOIDを入手するために使用することができました。 これはもはや当てはまりません。 ラージオブジェクトのOIDのリストを入手するためには`pg_largeobject_metadata`を使用してください。

表 45-28. `pg_largeobject`の列

名前 | 型 | 参照先 | 説明
--- | --- | --- | ---
`loid` | `oid` | ``pg_largeobject_metadata`.oid` | このページを含んだラージオブジェクトの識別子
`pageno` | `int4` |  | ラージオブジェクト内の（ゼロから数えた）このページのページ番号
`data` | `bytea` |  | ラージオブジェクト内に保存された実データ。 `LOBLKSIZE`バイトを絶対上回りません。 たぶんそれより小さいでしょう。

`pg_largeobject`のそれぞれの行はオブジェクト内のバイトオフセット（`pageno * LOBLKSIZE`）から始まるラージオブジェクトの1ページ分のデータを保持します。 ページが見つからなかったり、たとえオブジェクトの最後のページでない場合でも`LOBLKSIZE`より小さくてもよいといった、あちこちに散らばって保存されてもよいような実装になっています。 ラージオブジェクトの中で見つからない部分はゼロとして読み込まれます。

前のページ | ホーム | 次のページ
`pg_language` | 上に戻る | `pg_largeobject_metadata`