[pgsql-jp: 25201] Re: JDBCドライバ(7.2) でのエンコーディング判断障害
Tatsuo Ishii
t-ishii @ sra.co.jp
2002年 3月 10日 (日) 15:14:01 JST
石井です.
> えっ? 石井さんて、あのシーラカンスの石井さんでいらっしゃいますか?
> なんと、初めての投稿でそれは光栄です。
> あの本を読みながら只今勉強中です。ほんとに助かってます。
こちらこそ拙著を読んでいただきありがとうございます.
> >ほぼ田中さんの分析通りですが,これは既知の問題で,Connection.javaの328
> >位からのコメントに書いてある通りです.
>
> 申し訳ありません、既知でしたか。
まあ,既知と言っても,たぶん公式のドキュメントには書かれていないので,
普通の方はご存じなくて当然と思います.
> で、ご指摘の部分をもう一度読み直してみたんですが、
> ※私の持っているソース(7.2に付属のもの)では294行目
すみません.うっかりcurrentでの行数を書いてしまいました.
> However it isn't easy to conditionally call this new
> function, since we don't yet have the information as to what server
> version we are talking to.
> というコメントが間違っていると思うんです。
> なぜならば、先のメールで書いたように
>
> >> ※結果
> >> version | getdatabaseencoding
> >> -------------------------------------------------------------+---------------------
> >> PostgreSQL 7.2 on i586-pc-linux-gnu, compiled by GCC 2.95.2 | EUC_JP
>
> と、バージョンはちゃんと取れているようなので。
> ここらあたりも既知と考えてよろしいでしょうか?
うーん,想像ですが,version()が返すのが人間が読むのを前提にした文字列
なので,将来とも同じフォーマットでバージョンが取れるかどうか自信がない
からなんでしょう.
どうやってバージョン番号を取り出すかも問題で,
select trim(both from substring(version() from 12 for 4))::float;
でバージョン番号が取れそうですが,これは7.1.3や6.4では動きません.まあ,
JDBC側で文字列処理してあげればいいだけなのですが.
--
Tatsuo Ishii
pgsql-jp メーリングリストの案内