[pgsql-jp: 31361] Re: libpq.dll の PQfmod と PQfsize

Value 平野 hirano @ valuenet.co.jp
2003年 10月 29日 (水) 15:00:34 JST


和田さん、レスありがとうございます。
質問者の平野です。

>  pg_type の typlen の説明に「可変長型では typlen は負となり
> ます。 -1 は "varlena" 型 (最初の 4 バイトにデータ長を含むも
> の) を意味し」と書いてあります。
> PQfsize が typlen なんじゃないでしょうか。

なるほど・・。
PQfsize が pg_typeテーブルのtyplen をそのまま返している
とするならば、

PQfsizeが0より小さく、かつ PQfmodが0より大きい場合は
「PQfmod - 4」の値が定義長 (char(2) の 2 が取得できる)

PQfsizeが0より小さく、かつ PQfmodも0より小さい場合は
その項目は可変長(textなど)

PQfsizeが0より大きければその値がそのままその値が定義長
(integer の 4 が取得できる)

として取れそうです。

PQfmodに足される「4」が未だに不明ですが、兎に角、いろい
ろなケースで試してみて、これで不具合があるようでしたらこ
こに報告させて頂きます。

ありがとうございました。





pgsql-jp メーリングリストの案内