On Sun, Aug 27, 2006 at 12:58:00PM +0000, Robert Siemer wrote:
> Bug reference: 2592
> Logged by: Robert Siemer
> Email address: Robert.Siemer-postgresql.org@backsla.sh
> PostgreSQL version: 8.1.4
> Operating system: Linux
> Description: ILIKE does not care about locales
> Details:
>
> Hi!
>
> As I don't want to risk getting things mixed up here in this very report,
> lets assume:
> s and t are strings with one 'international' character, one having the lower
> case the other upper
>
> lower(s) LIKE lower(t) yields True, as it should
>
> s ILIKE t yields False --> I expect True
>
>
> I tried this with LC_COLLATE=C and the rest LC_...=es_ES.utf8
>
> dennisb from irc reported LC_everything=sv_SE.UTF-8 with version 8.1.0
> having the same problems.
>
> Some "non-normative" examples for s and t:
> http://rafb.net/paste/results/bMRfez77.html
> and ä Ä, ñ Ñ, ö Ö
I can confirm this with de_DE.utf8. We currently initialize all our
PostgreSQL database clusters like this:
unset LANG
export LC_ALL=POSIX
initdb --encoding="UNICODE" --lc-collate="de_DE.utf8" --lc-ctype="de_DE@euro"
Only this way, ILIKE and "ORDER BY" work as expected. I don't know about
upper() and lower() though; I only tested ILIKE and ORDER BY.
Tino.
PS: Is there a place to search bugs? I couldn't find one (apart from the
mailing list) last time I was troubleshooting some problem.