Skip site navigation (1) Skip section navigation (2)

Re: BUG #3378: UTF-8 upper() and lower() don't work

From: "Pavel Stehule" <pavel(dot)stehule(at)gmail(dot)com>
To: "Kenneth Christensen" <kec(at)mediatorsystems(dot)com>
Cc: pgsql-bugs(at)postgresql(dot)org
Subject: Re: BUG #3378: UTF-8 upper() and lower() don't work
Date: 2007-06-10 13:36:15
Message-ID: 162867790706100636r59a126etf2fae9b17b547688@mail.gmail.com (view raw or flat)
Thread:
Lists: pgsql-bugs
Hello,

You have to well initialized database cluster with correct locales.

I don't know good danish locales, but I expect so it will be similar with czech.

my database cluster was initialised with cs_CZ.UTF-8 and default
encoding is UTF8.


 postgres=# select lower('ŽLUTÝ KŮŇ'), upper('žlutý kůň');
   lower   |   upper
-----------+-----------
 žlutý kůň | ŽLUTÝ KŮŇ


Check your locales, if is UTF8.

postgres=# SHOW lc_collate ;
 lc_collate
-------------
 cs_CZ.UTF-8
(1 row)

Regars
Pavel Stehule


2007/6/10, Kenneth Christensen <kec(at)mediatorsystems(dot)com>:
>
> The following bug has been logged online:
>
> Bug reference:      3378
> Logged by:          Kenneth Christensen
> Email address:      kec(at)mediatorsystems(dot)com
> PostgreSQL version: 8.2
> Operating system:   Mac OS 10.4.9
> Description:        UTF-8 upper() and lower() don't work
> Details:
>
> I have a DB where encoding is set to UTF-8.
>
> The DB have some tables where some of the columns (varchar) contains danish
> chars.
>
> It looks like lower() and upper() ignores the danish chars when I try to
> convert to lowercase or uppercase.
>
> E.g.
>
> Case 1:
> -------
>
> Column 'name' contains 'Æble, tørret':
>
> select upper(food_name.name) from food_name
>
> Result: ÆBLE, TøRRET
> Expected result: ÆBLE, TØRRET
>
> or
>
> select lower(food_name.name) from food_name
>
> Result: Æble, tørret
> Expected result: æble, tørret
>
> Case 2:
> -------
>
> Column 'name' contains 'æøå':
>
> select upper(food_name.name) from food_name
>
> Result: æøå
> Expected result: ÆØÅ
>
> Case 3:
> -------
>
> Column 'name' contains 'ÆØÅ':
>
> select lower(food_name.name) from food_name
>
> Result: ÆØÅ
> Expected result: æøå
>
> ---
>
> I can see I'm not alone with this kind of bug. This bug is really a big
> problem for me.
>
> I really don't want to replace PostgreSQL with MySQL !
> Will this bug be fixed very soon?
>
> Best regards
>
> Kenneth Christensen
>
> ---------------------------(end of broadcast)---------------------------
> TIP 9: In versions below 8.0, the planner will ignore your desire to
>        choose an index scan if your joining column's datatypes do not
>        match
>

In response to

Responses

pgsql-bugs by date

Next:From: Thomas H.Date: 2007-06-11 11:09:49
Subject: Re: BUG #3378: UTF-8 upper() and lower() don't work
Previous:From: Kenneth ChristensenDate: 2007-06-10 09:48:45
Subject: BUG #3378: UTF-8 upper() and lower() don't work

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group