[pgsql-jp: 34808] PostgreSQL 8.0 のロケールの扱い
OKINAKA Kenshin
okinaka @ chance.com
2005年 2月 3日 (木) 12:43:23 JST
沖中と申します。
PostgreSQL 8.0 のロケールの扱いについて質問があります。
7.3 では、initdb の際に --no-locale を指定しないと日本語の比較が
正常に動作しないなどの問題がありました。
8.0 でも --no-locale を指定したところ別の問題が発生しました。
マルチバイトを含む TEXT 型の項目に対して psql コマンドなどで
lower 関数を使うと
ERROR: invalid multibyte character for locale
HINT: The server's LC_CTYPE locale is probably incompatible with the database encoding.
などとエラーになってしまいました。
# 本来は、半角文字のみの項目なのですが、旧バージョンで運用しているときに
# 誤ってマルチバイト文字が混入していたようです。
そこで、メッセージにしたがって
initdb --locale=ja_JP.eucJP -E EUC-JP
としたところエラーがでなくなりました。日本語の比較も問題なさそうです。
PostgreSQL 8.0 では、この設定で正しいでしょうか?
いままでと違うのでちょっと不安があります。
もし何か問題があれば教えてください。
確認した環境は、
RedHat Enterprise Linux 3.0 + PostgreSQL 8.0
です。
以上、よろしくお願いします。
--
株式会社チャンスイット システム制作部
沖中研心 <okinaka @ chance.com>
pgsql-jp メーリングリストの案内