Re: Case Insensitive Comparison with Postgres 12
| От | Igal @ Lucee.org |
|---|---|
| Тема | Re: Case Insensitive Comparison with Postgres 12 |
| Дата | |
| Msg-id | 9803fc4d-7fe4-33f3-014e-defdfcc59873@lucee.org обсуждение исходный текст |
| Ответ на | Re: Case Insensitive Comparison with Postgres 12 (Laurenz Albe <laurenz.albe@cybertec.at>) |
| Ответы |
Re: Case Insensitive Comparison with Postgres 12
|
| Список | pgsql-general |
On 10/9/2019 12:34 AM, Laurenz Albe wrote: > Igal Sapir wrote: >> I am trying to test a simple case insensitive comparison. Most likely the >> collation that I chose is wrong, but I'm not sure how to choose the correct >> one (for English/US?). Here is my snippet: >> >> create collation case_insensitive( >> provider=icu, locale='en-US-x-icu', deterministic=false >> ); >> select 'Abc' = 'abc' collate case_insensitive; >> >> I expected true but am getting false. >> >> Any thoughts? > Yes, the LOCALE is wrong. Use > > create collation case_insensitive ( > provider=icu, locale='en-US-u-ks-level2', deterministic=false > ); > > The name of the locale defines it. > > My blog post can give a simple introduction: > https://www.cybertec-postgresql.com/en/icu-collations-against-glibc-2-28-data-corruption/ Thank you all for replying. I tried to use the locale suggested by both Laurenz and Pavel, en-US-u-ks-level2, but I'm still getting false for a simple comparison of 'Abc' = 'abc'. I tried the locale both as a 'string' and as an "identifier": > select version(); version | -------------------------------------------------------------------------------------------------------| PostgreSQL 12.0 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-39), 64-bit| > drop collation if exists case_insensitive; > create collation case_insensitive ( provider=icu, locale="en-US-u-ks-level2", deterministic=false ); > select 'Abc' = 'abc' collate case_insensitive as is_equal; is_equal| --------| false | What am I doing wrong here? Thanks, Igal
В списке pgsql-general по дате отправления: