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

ITAGAKI Takahiro itagaki.takahiro @ oss.ntt.co.jp
2007年 3月 22日 (木) 10:49:30 JST


Tatsuo Ishii <ishii @ sraoss.co.jp> wrote:

> 壊れたロケールを使うと「単純な文字単位の比較」で一致しているものすら検
> 索から抜け落ちることがあるのです.これはロケールの有効/無効に関わらず
> 許されることではないと思います.

それには完全に同意です。
実用上は、「安全のために、ロケール=C を設定せよ」の一択しかあり得ません。

とはいえ、本当にロケールが壊れていることだけが理由なのでしょうか?
確証があるわけではないのですが、PostgreSQL のロケールの使い方自体にも
何か問題が無いか、多少 疑っています。
「--no-locale なら大丈夫」は、思考停止している印象を受けます。


> 「が」と「か゛」を同一視するかどうかなどは,わたしはアプリケーションド
> メインごとに要求が違うと思っているので,アプリケーションで対応するのが
> よいと思います.

実用上はそう思いますが、そもそもデータベースにロケールを設定すること自体、
そういった機能をデータベース側に求めているのではないでしょうか?
上の例でいれば、「か」「が」「か゛」を ORDER BY もしくは範囲検索した場合に
どういった結果を返すべきか?という議論になります。




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