The following bug has been logged online:
Bug reference: 2402
Logged by: Balázs Klein
Email address: balazs.klein@t-online.hu
PostgreSQL version: 8.1
Operating system: Gentoo Linux
Description: case insensitive match for unicode doesn't work
Details:
case conversion and case insensitive match (with or without regular
expression) does not work with non standard (Greek, Turkish, Hungarian,
etc.) characters
Examples:
Select 'a' ILIKE 'A'
--True
Select 'á' ILIKE 'Ã'
--False
Select 'a' ~* 'A'
--True
Select 'á' ~* 'Ã'
--False
Select upper('a')='A'
--True
Select upper('á')='Ã'
--False
You would get the same result with é,ó,ü,ű,ó or with many Greek
characters that I tried.
I raised this issue on pgsql.general -
http://groups.google.com/group/pgsql.general/browse_frm/thread/20aed89ab0e19
e3d/4771fb1be397afea#4771fb1be397afea
but there didn't seem to be an easy workaround for this
On a sidenote SQLServer2000 and Access also make mistakes with the
equivalent of upper/lower function but they give correct result with more
characters than PG. Which at least consistently fails:)
Regards.
Balázs