Re: PATCH: CITEXT 2.0
От | David E. Wheeler |
---|---|
Тема | Re: PATCH: CITEXT 2.0 |
Дата | |
Msg-id | DFA4BCE4-233A-435E-BA96-70D7AD7FB330@kineticode.com обсуждение исходный текст |
Ответ на | Re: PATCH: CITEXT 2.0 ("David E. Wheeler" <david@kineticode.com>) |
Ответы |
Re: PATCH: CITEXT 2.0
Re: PATCH: CITEXT 2.0 |
Список | pgsql-hackers |
Replying to myself, but I've made some local changes (see other messages) and just wanted to follow up on some of my own comments. On Jul 2, 2008, at 21:38, David E. Wheeler wrote: >> 4) Operator = citext_eq is not correct. See comment http://doxygen.postgresql.org/varlena_8c.html#8621d064d14f259c594e4df3c1a64cac > > So should citextcmp() call strncmp() instead of varst_cmp()? The > latter is what I saw in varlena.c. I'm guessing that the answer is "no," since varstr_cmp() uses strncmp() internally, as appropriate to the locale. Correct? >> There must be difference between equality and collation for example >> in Czech language 'láska' and 'laská' are different word it means >> that 'láska' != 'laská'. But there is no difference in collation >> order. See Unicode Universal Collation Algorithm for detail. > > I'll leave the collation stuff to the functions I call (*far* from > my specialty), but I'll add a test for this and make sure it works > as expected. Um, although, with what collation should it be tested? > The tests I wrote assume en_US.UTF-8. I added this test and is passes: SELECT isnt( 'láska'::citext, 'laská'::citext, 'Diffrent accented characters should not be equivalent' ); >> 5) There are several commented out lines in CREATE OPERATOR >> statement mostly related to NEGATOR. Is there some reason for that? > > I copied it from the original citext.sql. Not sure what effect it has. I restored these (and one of them was wrong anyway). >> Also OPERATOR || has probably wrong negator. > > Right, good catch. Stupid question: What would the negation of || actually be? There isn't one is, there? Thanks! David
В списке pgsql-hackers по дате отправления: