[pgsql-jp: 38205] Re: ロケールCでインストールしないとLIKEで invalid memory alloc request

Tatsuo Ishii ishii @ sraoss.co.jp
2007年 3月 22日 (木) 11:02:59 JST


石井です.

> > 壊れたロケールを使うと「単純な文字単位の比較」で一致しているものすら検
> > 索から抜け落ちることがあるのです.これはロケールの有効/無効に関わらず
> > 許されることではないと思います.
> 
> それには完全に同意です。
> 実用上は、「安全のために、ロケール=C を設定せよ」の一択しかあり得ません。
> 
> とはいえ、本当にロケールが壊れていることだけが理由なのでしょうか?

私が検証したときは,strcoll()を呼び出す簡単Cプログラムでも問題が再現し
たので,完全にロケールの問題だと思いました.

> 確証があるわけではないのですが、PostgreSQL のロケールの使い方自体にも
> 何か問題が無いか、多少 疑っています。
> 「--no-locale なら大丈夫」は、思考停止している印象を受けます。

「ロケールの使いかた自体にも問題があ
る」というのは,ロケールを有効にしたときの話ですよね?

それに対して,

> 「--no-locale なら大丈夫」は、思考停止している印象を受けます。

はロケールを無効にしたときの話です.私には2つの文章がつながらないので
すが,もう少し板垣さんの主張を噛み砕いて説明していただけませんか?

> > 「が」と「か゛」を同一視するかどうかなどは,わたしはアプリケーションド
> > メインごとに要求が違うと思っているので,アプリケーションで対応するのが
> > よいと思います.
> 
> 実用上はそう思いますが、そもそもデータベースにロケールを設定すること自体、
> そういった機能をデータベース側に求めているのではないでしょうか?
> 上の例でいれば、「か」「が」「か゛」を ORDER BY もしくは範囲検索した場合に
> どういった結果を返すべきか?という議論になります。

はい,これには同意します.なので,

> COLLATIONをユーザ定義できるようになれば便利にはなると思います.

と書きました.
--
Tatsuo Ishii
SRA OSS, Inc. Japan



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