[pgsql-jp: 29138] Re: 都道府県データの検索

ichikay @ yamaguchi-u.ac.jp ichikay @ yamaguchi-u.ac.jp
2003年 2月 19日 (水) 10:49:12 JST


市川です.既知の現象ですね.私のところでも同じことが起きました
ので,顛末を書きます.

VineLinux 2.1 に PostgreSQL 7.3 を
インストールしたところ

 select '南' = '西'

が true になるというバグが現れました.以前に,石井さんが
[pgsql-jp 19221] で回答されているように,VineLinux の
strcoll のバグが原因です.7.3 より前は,configure の
時に --enable-locale を入れないことで LOCALE を使わない
ようにしていたのですが,7.3 からはこの選択ができなくなって
しまったために,バグが顕在化してしまったようです.

とりあえず postmaster 実行時の LC_COLLATE を C にして
しまえば問題は解決するので,
http://osb.sra.co.jp/PostgreSQL/7.3/install.html
にあるように,

   initdb --lc-collate=C 

を実行すれば大丈夫です.

なお,環境変数ならもっとお手軽に変更する方法があるはずだとあれこれ
さぐってみましたが,backend/utils/adt/pg_locale.c の
説明によると,環境変数は data/global/pg_control に initdb
の時に書き込まれ,以降は動的には変更されないそうです.

-----
市川哲彦 山口大学メディア基盤センター
Phone: 083-933-5990; Fax: 083-933-5781
E-mail: ichikay @ yamaguchi-u.ac.jp





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