On Jul 7, 2008, at 13:59, Gregory Stark wrote:

Of course the obvious case of two equivalent strings with different bytes would be two strings which differ only in case in a collation which doesn't distinguish based on case. So you obviously can't take this route for citext.

Well, to be fair, citext isn't imposing a collation. It's just calling str_tolower() on strings before passing them on to varstr_cmp() or strncmp() to compare.

I don't think you have to worry about the problem that cause Postgres to make this change. IIRC it was someone comparing strings like paths and usernames and getting false positives because they were in a Turkish locale which found certain sequences of characters to be insignificant for ordering. Someone who's using a citext data type has obviously decided that's precisely the kind
of behaviour they want.

Hrm. So in your opinion, strncmp() could be used for all comparisons by citext, rather than varstr_cmp()?

Thanks,

David


--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to