[pgsql-jp: 41547] Re: ラージオブジェクトのファイルサイズ取得について

Tatsuo Ishii ishii @ sraoss.co.jp
2014年 1月 13日 (月) 09:47:50 JST


> 石井さま
> 
> 田中久太郎です。
> 
> ご回答ありがとうございました。

どういたしまして。

> 当方、PHPを用いていますので、PHPのPostgreSQL関数を用いて
> 対応しようと思います。
> http://www.php.net/manual/ja/ref.pgsql.php
> 
> pg_lo_open でラージオブジェクトをオープンし、
> pg_lo_seek で、オフセット0で、オブジェクトの最後(PGSQL_SEEK_END)を
> シークして
> pg_lo_tell でカレント位置を取得する
> という手順でいいですよね。

そうですね。PHPのpg_lo_seekはシーク後のオフセットを返さないので、
pg_lo_tellの呼出が必要になります。

ちょっと気になるのは、PHPのラージオブジェクトインターフェイスって、
64bit対応しているかどうかですね。PHPのドキュメントには何も書かれていな
いので、ソースを読まないと分かりませんが...

まあ、2GBよりも大きなラージオブジェクトを作っていなければ関係ありません
が。

> 確認してみます。
> ありがとうございました。
> 
> #CREATE FUNCTIONで、専用の関数が作れたりするともっと便利かもしれませんが
> 
> 
> 
> 2014年1月12日 21:21 Tatsuo Ishii <ishii @ sraoss.co.jp>:
>> 石井です。
>>
>>> 田中久太郎と申します。
>>>
>>> ラージオブジェクトに格納されているファイルをエクスポートした
>>> ときのファイルサイズを知りたいと考えています。
>>> 実際にエクスポートすることなくファイルサイズを取得する方法は
>>> ありますでしょうか。
>>
>> C言語のインターフェイスを使う方法があります。
>>
>> lo_openして、lo_lseekまたはlo_lseek64でラージオブジェクトの終端までシー
>> クするとオフセットが返ってきて、それがファイルサイズになります。
>> --
>> Tatsuo Ishii
>> SRA OSS, Inc. Japan
>> English: http://www.sraoss.co.jp/index_en.php
>> Japanese: http://www.sraoss.co.jp
> 
> 
> 
> -- 
> Tanaka-Yasuhiro
> 田中 靖宏
> tanaq @ ca2.so-net.ne.jp


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