Thread: lc_ctype and lower()

lc_ctype and lower()

From
"Gábor Farkas"
Date:
hi,

i have a postgresql-8.2 database instance,
which contained in the past a latin9 database.

this database was later converted to utf8 (by dumping and reloading it).

everything works fine, except that

SELECT lower("Gábor")

returns "gbor" (the 'á' is dropped).

the problem seems to be that

"SHOW lc_ctype" returns "de_AT@euro".

(on a testing db-instance, "SHOW lc_ctype" returns "en_US.UTF-8", and
everything is ok)

based on this, i assume that when the database instance was created
(by "initdb"),
it was created with this locale, and because of this, lower() is not working
correctly with utf8 data.

my question is:

is this a correct assumption?

if yes, is there any way to change this locale-setting somehow?

is the only solution to create a new database-instance? (initdb, new
port, etc.) ? or is there a simpler way?

thanks,
gabor

Re: lc_ctype and lower()

From
Peter Eisentraut
Date:
Am Freitag, 11. Juli 2008 schrieb Gábor Farkas:
> is the only solution to create a new database-instance? (initdb, new
> port, etc.) ?

You analysis is entirely correct.  You have to re-initdb with a correct
locale.