6.6. ラージオブジェクト:pglarge

Table of Contents
open -- ラージオブジェクトを開きます。
close --  ラージオブジェクトを閉じます。
read -- ラージオブジェクトから読み込みます。
write -- ラージオブジェクトに書き込みます。
seek -- ラージオブジェクトの現在の位置を変更(シーク)します。
tell -- ラージオブジェクトの現在のカーソルの位置を返します。
unlink -- ラージオブジェクトを削除します。
size -- ラージオブジェクトの大きさを返します。
export -- ラージオブジェクトをファイルに保存します。

このオブジェクトは PostgreSQL のラージオブジェクトに関する要求を扱います。 pgobject と同じように、すべての"再発"変数 (オブジェクト OID および接続) を埋め込み、隠し、また、関数呼び出しに重要な引数のみを残します。これは作成される際に使われたpgobjectを参照し続け、引数を使って要求を送ります。したがって、デリファレンスせずに pgobjectを変更した場合は、pglargeオブジェクトに影響を与えます。Pythonはラージオブジェクトをデリファレンスする前に再割り当てを行わないので、初期のpgobjectのデリファレンスには問題はありません。すべての関数は、正確なエラーが何であったかにかかわらず、呼び出しエラーの際には一般的なエラーメッセージを返します。オブジェクトのerror属性を使用して、正確なエラーメッセージを入手することができます。

pglargeオブジェクトでは、その情報の一部分を取得できる、読み込み専用の属性群を定義しています。以下にその属性を示します。

oid

オブジェクトに関連している OID

pgcnx

オブジェクトに関連しているpgobject

error

その接続における最後の警告/エラーメッセージ

Important: マルチスレッド環境では、error属性は同じpgobjectを使用している別のスレッドによって変更される可能性があります。 これらのオブジェクトは複写されるのでなく共有されることに注意してください。共有する場合にエラーメッセージを検査したいときは、ロックを使用する必要があります。 OID 属性は再利用でき、pgobjectgetlo() メソッドの呼び出しによって pglarge オブジェクトを作成できるという大変おもしろいものです。

PostgreSQLのラージオブジェクトインタフェースに関する詳細は、Chapter 2を参照してください。