Thread

  1. 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:   'κόσμοσ'
    ```
    
    
  2. 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