pg_largeobject は "ラージオブジェクト"を作成するデータを保持しています。ラージオブジェクトは作成されたときに割り当てられた OID で識別されます。それぞれのラージオブジェクトは pg_largeobject 行に都合よく格納されるのに充分な程度の小さいセグメント、または"ページ"に分割されます。ページごとのデータ量は(現在 BLCKSZ/4 あるいは典型的に 2K バイトの ) LOBLKSIZE として定義されます。
Table 3-19. pg_largeobject の列
名前 | 型 | 参照先 | 説明 |
---|---|---|---|
loid | oid | このページを含んだラージオブジェクトの識別子 | |
pageno | int4 | ラージオブジェクト内の(ゼロから数えた)このページのページ番号 | |
data | bytea | ラージオブジェクト内の保存された実データ。 LOBLKSIZE バイトを絶対上回りません。 たぶんそれより小さいでしょう。 |
pg_largeobject のそれぞれの行はオブジェクト内のバイトオフセット(pageno * LOBLKSIZE)から始まるラージオブジェクトの 1 ページ分のデータを保持します。 ページが見つからなかったり、たとえオブジェクトの最期のページでない場合に LOBLKSIZE より小さくてもよいといった、あちこちに散らばって保存されてもよいような実装になっています。ラージオブジェクトの中で見つからない部分はゼロとして読み込まれます。