lc_collate issue
От | Cody Pisto |
---|---|
Тема | lc_collate issue |
Дата | |
Msg-id | 46CF16F9.5020807@rvweb.com обсуждение исходный текст |
Ответы |
Re: lc_collate issue
|
Список | pgsql-general |
Hi All, I'm looking for any kind of a reason (and potential workarounds), be it bug or otherwise, why the following two queries produce different results under a database encoding of UTF8 and lc_collate of en_US.UTF-8: SELECT x FROM (SELECT 'Something else' AS x UNION SELECT '-SOMETHING ELSE-' AS x UNION SELECT 'Somethang' AS x) y ORDER BY LOWER(x) x ------------------ Somethang -SOMETHING ELSE- Something else (3 rows) *AND* SELECT x FROM (SELECT 'Somethingelse' AS x UNION SELECT '-SOMETHINGELSE-' AS x UNION SELECT 'Somethang' AS x) y ORDER BY LOWER(x) x ----------------- Somethang Somethingelse -SOMETHINGELSE- The removal of spaces from the strings gives "more correct" sorting results, with the spaces and '-' characters, '-SOMETHING ELSE-' is strangely sorted in the middle? It does not matter if you use LOWER or UPPER, and the "problem" does not occur on databases with encoding SQL_ASCII and lc_collate of C I have tested this on Postgres 8.1.9, 8.2, 8.2.4 with database encoding of UTF8 and lc_collate of en_US.UTF8 and on 7.4.16 with database encoding of SQL_ASCII and lc_collate of C Thank in advance for any consideration! -Cody
В списке pgsql-general по дате отправления: