[Momonga-devel.ja:00472] Re: postgresql --enable-locale


市村です。

On Sun, 15 Sep 2002 22:28:49 +0900
"Yasumasa Ashida" <asip@xxxxxxxxxxxxx> wrote:

> こんばんは、ASIPです。
> 
> > 最近のpgsql-ja-mlでは、--enable-locale付けると検索が極めて遅くなる、
> > 日本語使うかぎりにおいては --enable-multibyte だけでいいはずだ
> > という話があがっています。
> >
> > --enable-locale 取ってしまっていいですかねえ?
> >
> 
> --enable-locale を取ってしまうのが正しいようです。
> 
> pgsql-jp MLにおいて--enable-localeを付加した場合の不具合が
> いくつか報告されています。
> 例:DBのエンコーディングをUNICODEとした場合のカナソート

DBのエンコーディングをUNICODEとした場合のカナソートで不具合がでる。というのは
例えば、

--enable-locale付きでlocaleがja_JP.EUC-JPといった環境でinitdbしたにもかかわらず
内部ではUTF-8を利用するようになっている。

という状況だと想定されます。--enable-localeがついた環境でも

ja_JP.UTF-8やen_US.UTF-8などのUTF-8なlocaleでinitdbしている。
localeがCの状態でinitdbしている。

ならば正常なソートが可能となるはずです。(localeがCの場合はバイト順、UTF-8の場合は
そのlocaleで定義された順番でソートされます。)
つまり、「--enable-localeをつけた場合にはinitdbする際のlocaleと内部で
利用する文字コードが一致するように注意する」か、「localeをCにしてinitdbする」
事に気をつければ--enable-localeがあっても運用可能だと思います。

現状、--enable-locale付きでコンパイルされたRPMパッケージは即つかえない、といわれる
風潮があるように感じられますが、ちゃんと運用のコツさえつかめば、--enable-locale
付きでコンパイルされたRPMであろうと十分利用可能である、と私は思います。