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

Hiroki Kataoka kataoka @ interwiz.jp
2007年 3月 22日 (木) 20:23:40 JST


片岡です。

ITAGAKI Takahiro wrote:
> ロケールを使えない理由は、OS のロケールが壊れているからでは★ありません★。
> PostgreSQL が、ロケール関数の使い方を間違っているからです。

 これは先のメールで書いたように、PostgreSQLがロケールの使い方を間違って
いるわけではありません。矛盾のないようにロケールとサーバエンコーディング
の双方を設定するのは、今のところユーザの責任です。これがいいとは到底いえ
ませんが、とりあえず歴史的理由?とでもいうのでしょうか。誰か直してくださ
い。^^;

 もう1つ、たとえロケールとサーバエンコーディングを矛盾なく組み合わせた
としても、環境によっては--no-localteが必須です。例えばLinuxでEUC-JPを使
う場合などがそうです。これは紛れもなくCランタイムのロケールがマルチバイ
ト域でイカレてることが原因です(今は直ってますか?)。これはずいぶん昔の
このMLで既出のことで、これ以来「ロケールはC」というFAQができました。ちな
みに商用OSでは問題ありません。

 つまり、

・PostgreSQLのロケールの使い方は、一概に間違っているとはいえない。
・ロケールの壊れているOSが大量に出回っている。

 というわけです。

-- 
Hiroki Kataoka <kataoka @ interwiz.jp>



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