Re: lower() silently fails for 9.5.3 on Windows, but works on Mac, Linux - Mailing list pgsql-general

From Charles Clavadetscher
Subject Re: lower() silently fails for 9.5.3 on Windows, but works on Mac, Linux
Date
Msg-id 017601d1f146$aa7341e0$ff59c5a0$@swisspug.org
Whole thread Raw
In response to Re: lower() silently fails for 9.5.3 on Windows, but works on Mac, Linux  (Alexander Farber <alexander.farber@gmail.com>)
Responses Re: lower() silently fails for 9.5.3 on Windows, but works on Mac, Linux  ("Charles Clavadetscher" <clavadetscher@swisspug.org>)
List pgsql-general
Hello

> From: pgsql-general-owner@postgresql.org [mailto:pgsql-general-owner@postgresql.org] On Behalf Of Alexander Farber
> Sent: Montag, 8. August 2016 09:10
> To: pgsql-general <pgsql-general@postgresql.org>
> Subject: Re: [GENERAL] lower() silently fails for 9.5.3 on Windows, but works on Mac, Linux
>
> More info:
>
> # \l+
>
>   Name    |  Owner  | Encoding | Collate | Ctype |
> -----------+---------+----------+---------+-------+
> postgres  | user1   | UTF8     | C       | C     |
> template0 | user1   | UTF8     | C       | C     |
>           |         |          |         |       |
> template1 | user1   | UTF8     | C       | C     |
>           |         |          |         |       |
> words     | user1   | UTF8     | C       | C     |


I cannot test on 9.5, which you are using, but I was able to reproduce the problem on 9.3:

kofadmin@kofdb.localhost=> CREATE DATABASE test TEMPLATE template0 ENCODING 'UTF8' LC_COLLATE 'C' LC_CTYPE 'C';
CREATE DATABASE
kofadmin@kofdb.localhost=> \l
                                                 List of databases
   Name    |  Owner   | Encoding |          Collate           |           Ctype            |   Access privileges
-----------+----------+----------+----------------------------+----------------------------+-----------------------
 kofdb     | kofadmin | UTF8     | English_United States.1252 | English_United States.1252 |
 test      | kofadmin | UTF8     | C                          | C                          |

kofadmin@kofdb.localhost=> \c test
psql (9.6devel, server 9.3.6)
You are now connected to database "test" as user "kofadmin".
kofadmin@test.localhost=> select lower('P');  <-- This works (latin letters)
 lower
-------
 p
(1 row)

kofadmin@test.localhost=> select lower('И'); <-- This does not work (cyrillic)
 lower
-------
 И
(1 row)

kofadmin@test.localhost=> \c kofdb
psql (9.6devel, server 9.3.6)
You are now connected to database "kofdb" as user "kofadmin".
kofadmin@kofdb.localhost=> select lower('И'); <-- This works on a DB with another collation and ctype
 lower
-------
 и
(1 row)

It seems to be a problem with collation and or ctype.

What are the settings of the database on your Linux system where all works correct?

Bye
Charles




pgsql-general by date:

Previous
From: Alexander Farber
Date:
Subject: Re: lower() silently fails for 9.5.3 on Windows, but works on Mac, Linux
Next
From: "Charles Clavadetscher"
Date:
Subject: Re: lower() silently fails for 9.5.3 on Windows, but works on Mac, Linux