Thread
-
BUG #19004: Incorrect lowercasing of word-final Greek capital Sigma (Σ)
PG Bug reporting form <noreply@postgresql.org> — 2025-07-31T03:06:10Z
The following bug has been logged on the website: Bug reference: 19004 Logged by: Bosheng Peng Email address: 221250180@smail.nju.edu.cn PostgreSQL version: 17.5 Operating system: windows with docker Description: When applying UPPER() to the Greek word 'κόσμος', PostgreSQL returns 'ΚΌΣΜΟΣ'. However, applying LOWER() to that result returns 'κόσμοσ' instead of the original 'κόσμος'. According to wikipedia (https://en.wikipedia.org/wiki/Sigma), there are two forms of lowercase for Greek capital Sigma (Σ): - If Σ is at the end of a word, it should lowercase to ς - If Σ is in the middle of a word, it should lowercase to σ How to repeat: ```sql SELECT LOWER(UPPER('κόσμος')); -- Expected: 'κόσμος' -- Actual: 'κόσμοσ' ``` -
Re: BUG #19004: Incorrect lowercasing of word-final Greek capital Sigma (Σ)
John Naylor <johncnaylorls@gmail.com> — 2025-07-31T07:39:12Z
On Thu, Jul 31, 2025 at 1:50 PM PG Bug reporting form <noreply@postgresql.org> wrote: > When applying UPPER() to the Greek word 'κόσμος', PostgreSQL returns > 'ΚΌΣΜΟΣ'. However, applying LOWER() to that result returns 'κόσμοσ' instead > of the original 'κόσμος'. Hi, For built-in collations, context-sensitive case mappings are a forthcoming feature which will be available in PG18 later this year, with the pg_unicode_fast collation: CREATE TABLE example ( a text COLLATE PG_UNICODE_FAST, b text COLLATE PG_C_UTF8 ); INSERT INTO example VALUES ('κόσμος', 'κόσμος'); SELECT LOWER(UPPER(a)), LOWER(UPPER(b)) FROM example; lower | lower --------+-------- κόσμος | κόσμοσ (1 row) -- John Naylor Amazon Web Services