他のバージョンの文書 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 | 7.3 | 7.2

52.30. pg_largeobject

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

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

表52.30 pg_largeobjectの列

列 型

説明

loid oid (参照先 pg_largeobject_metadata.oid

このページを含んだラージオブジェクトの識別子

pageno int4

ラージオブジェクト内の(ゼロから数えた)このページのページ番号

data bytea

ラージオブジェクト内に保存された実データ。 LOBLKSIZEバイトを絶対上回りません。 たぶんそれより小さいでしょう。


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