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