[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 メーリングリストの案内