Chapter 2. ラージオブジェクト

Table of Contents
2.1. 歴史的な補遺
2.2. 実装機能
2.3. インターフェース
2.4. 組み込み済みの登録された関数
2.5. LIBPQからラージオブジェクトへのアクセス
2.6. サンプルプログラム

Postgresでは、データ値はタプルに格納され、 各タプルはデータページを跨ることができません。データページの サイズは8192バイトなので、データ値の最大制限は比較的小さいものと なります。大きいサイズのものを格納するために、 Postgresではラージオブジェクト インターフェースを提供しています。この節では、 その実装とプログラム作成方法、Postgres ラージオブジェクトデータへの問い合わせ言語インターフェースに ついて説明します。

2.1. 歴史的な補遺

当初、Postgres 4.2ではラージオブジェクトに関して、 3つの標準的な実装をサポートしていました。それらはPostgres の外部ファイル、Postgresで管理される外部ファイル、 Postgresデータベースに格納されるデータの3つです。 これはかなりユーザの混乱を招きました。よって、Postgresでは PostgreSQLデータベースに格納されるデータのみを サポートするようにしました。これによってアクセスが少々遅くなりましたが、 より厳密に一貫性を持ったデータを提供するようになりました。 歴史的な理由により、この格納の仕組みは転置ラージオブジェクトと呼ばれています。 (この節では、「転置」と「ラージオブジェクト」の両方を使用していますが、 どちらも同じ意味です。)PostgreSQL 7.1からは、 すべてのラージオブジェクトはpg_largeobjectと呼ばれる、1つのシステムテーブルに 格納されます。