[pgsql-jp: 38288] Re: 主キーの重複登録とそれに伴うlikeと=の検索結果の相違について

ITAGAKI Takahiro itagaki.takahiro @ oss.ntt.co.jp
2007年 4月 4日 (水) 15:48:56 JST


岩藤 謙一郎 <iwafuji.kenichiro @ toshiba-sol.co.jp> wrote:

> 1.上記で登録されたものは=では出てこないが、
>   ワイルドカード未使用でlikeを使用した場合データが呼び出される。

これは、現在の "=" 演算子 と LIKE 演算子 の挙動に関連します。
"=" ではロケール考慮した比較が行われますが、LIKE では考慮されません。
そのため、誤ったロケール設定の環境では、"=" での結果は間違い、
LIKE では正しい結果が得られたのではないかと思います。

ドキュメントには http://www.postgresql.jp/document/current/html/indexes-opclass.html
『ロケールは <snip> LIKEで通常のインデックスが使用されなくなります。』
とありますが、実際には比較結果そのものも変化する場合があります。


> 2.2文字目以降が同様の文字であっても化けないこと
> の2点についてなぜそうなるのかがよく分かりません。

ロケールが考慮されるのは、基本的には比較のときだけですので、
文字化けはしないのではないでしょうか。




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