PostgreSQL 9.1.5文書 | ||||
---|---|---|---|---|
前のページ | 巻戻し | 第 45章システムカタログ | 早送り | 次のページ |
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より小さくてもよいといった、あちこちに散らばって保存されてもよいような実装になっています。 ラージオブジェクトの中で見つからない部分はゼロとして読み込まれます。