3.19. pg_largeobject

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

Table 3-19. pg_largeobject の列

名前参照先説明
loidoid このページを含んだラージオブジェクトの識別子
pagenoint4 ラージオブジェクト内の(ゼロから数えた)このページのページ番号
databytea ラージオブジェクト内の保存された実データ。 LOBLKSIZE バイトを絶対上回りません。 たぶんそれより小さいでしょう。

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