[pgsql-jp: 37502] Re: 日本語の order について

T.Suzuki t_suzuki @ kenwood-eng.co.jp
2006年 8月 28日 (月) 18:59:33 JST


鈴木@KEGと申します。

野村さん wrote:
> 御紹介頂いた過去のMLは、initdb --no-locale に関する事ですね?
> これらは既に行っており、そこで書かれているような無秩序な並びではなくなっ
> ています。
> 問題は、文字数と文字順序のプライオリティーなんですが、7.4と8.1で違うので
> はないかと思います。7.4の方が使いやすいのですが、実際にはどのように並べ
> られる仕様なのかがわかりません。8.1 においても 7.4 と同様の結果が欲しい
> のですが、バグならば修正を待たざるを得ませんが、仕様変更ならば、こちらで
> 何か方策を考えなければなりません。
> 8.1 をお使いの方で、7.4 同様の結果を得ていらっしゃる方はおられませんか?

Cロケールでインストールした、Windows版での実行結果です。

CREATE DATABASE sample_db WITH ENCODING 'UTF8';

select version();
"PostgreSQL 8.1.3 on i686-pc-mingw32, compiled by GCC gcc.exe (GCC) 3.4.4 (mingw special)"

*テーブルの作成は省略*

select * from t order by 1;
c (text)
"あ"
"あい"
"い"

昇順に並びました。

ORDER BY問い合わせの並び順は、ロケールの設定に依存します。
お手持ちの環境を、念のため、今一度確認してみてはどうでしょうか?

確認方法と、実行結果:
select name, setting from pg_settings where name like 'lc_%';
"lc_collate";"C"
"lc_ctype";"C"
"lc_messages";"C"
"lc_monetary";"C"
"lc_numeric";"C"
"lc_time";"C"

 -----------------------------------------
      鈴木 徹 (SUZUKI Toru)
      Kenwood Engineering Corporation.
 -----------------------------------------



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