無料スクリプト配布のPHP.TO   PHPの実用的なtips PHPマニュアル MySQLマニュアル Apacheマニュアル PostgreSQLマニュアル マニュアル検索    

47.29. pg_largeobject

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

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

表 47-29. pg_largeobject の列

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

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


powered by SEO.CUG.NET