Hi,
There're lots of places in the code which uses either pg_tolower()
or just tolower() - without aware of MB characters; or some
on-their-own implementations of pg_tolower(). (Actually, AFAIK,
whole MB case conversion is broken in -rHEAD.)
For instance, consider backend/utils/adt/{like.c, like_match.c}
file. Some lines of iwchareq() are a duplication of pg_tolower().
Another example: backend/parser/scansup.c 152 else if (ch >= 0x80 && isupper(ch)) 153 ch = tolower(ch);
Is this an intended behaviour or they're waiting for somebody to
clean them up.
Regards.