[pgpool-general-jp: 340] lo_create() [libpq ラージオブジェクトインタフェース]の使い方
スクゥ 陶山 泰
suyama @ skoo.co.jp
2007年 12月 30日 (日) 17:47:14 JST
こんにちは。陶山です。
やっと c でプログラミングできる環境が作れ、テストプログラムを作って
機能確認しています。
古い lo_creat() インタフェースを使い、JDBC2 でやったときと同じように
メインのデータベースにラージオブジェクトを作成できるところまでは確認で
きました。当然ながらサブ(スレーブ)のデータベースには書き込めていませ
ん。
で、もっともポイントとなる
Oid lo_create( PGconn *conn, Oid lobjId );
の使い方がわからなくてまた行き詰っています。
---- マニュアルの記述 ここから -- (PostgreSQL 8.2.5文書より) ------
この関数もラージオブジェクトを新規に作成します。
割り当てられるOIDをlobjIdで指定することができます。
こうした場合、そのOIDが他のラージオブジェクトですでに使用されていた
場合、失敗します。
lobjIdがInvalidOid(0)の場合、lo_createは未使用のOIDを割り当てます。
(これはlo_creatと同じ動作です。)
戻り値は新規ラージオブジェクトに割り当てられたOIDで、失敗時には
InvalidOid(0)が返されます。
---- マニュアルの記述 ここまで ------------------------------------
引数の lobjId には、何を与えればいいのでしょうか。
既に使われていたら失敗ですね。失敗しない値ってどうやって求めるのでしょ
うか。
lobjId に、0 を与えるというのは pgpool-II には使えないのですよね。
未使用の一番小さい OID を確保するというような関数があるのでしょうか。
pgpool-general-jp メーリングリストの案内