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

Re: create a database with encoding LATIN1

From: Grzegorz Szpetkowski <gszpetkowski(at)gmail(dot)com>
To: Sébastien D'Errico <sebastien(at)hollox(dot)net>
Cc: pgsql-novice(at)postgresql(dot)org
Subject: Re: create a database with encoding LATIN1
Date: 2011-05-03 17:35:25
Message-ID: (view raw, whole thread or download thread mbox)
Lists: pgsql-novice
I see that you can only select "English, Canada" locale (and obviously
POSIX/C), which has implicitly WIN1252 encoding and you can't choose
any other variant locale from there.

However you can create new database with appropriate locale and LATIN1
encoding in such way:

  WITH OWNER = postgres
  LC_COLLATE = 'eng_canada.28591'
  LC_CTYPE = 'eng_canada.28591'
  TEMPLATE = template0;

If you want get eng_canada.28591 encoding for whole database cluster,
then you need to drop existing one and then use initdb with -locale

More information:

Grzegorz Szpetkowski

2011/5/3 Sébastien D'Errico <sebastien(at)hollox(dot)net>:
> Thank you Didier and Grzegorz!
> That clear some part.
> Curiosity, am I right now in the from of this windows installation of
> Postgres:
> I know that I need LATIN1 for the project. If I check this reference sheet:
> I get:
> LATIN1  ISO 8859-1, ECMA 94     Western European        Yes     1       ISO88591
> In the list from the printscreen, I do not see LATIN1, No ISO, No Western
> European.
> How can I know what I need to choose to get LATIN1?
> Do I look the wrong setting?
> Thanks,
> Sebastien
> -----Original Message-----
> From: Grzegorz Szpetkowski [mailto:gszpetkowski(at)gmail(dot)com]
> Sent: May-03-11 11:19 AM
> To: Didier Gasser-Morlay; sebastien(at)hollox(dot)net
> Cc: pgsql-novice(at)postgresql(dot)org
> Subject: Re: [NOVICE] create a database with encoding LATIN1
> 2011/5/3 Didier Gasser-Morlay <didiergm(at)gmail(dot)com>:
>> This is how I do it: when you setup your db cluster, chose the locale 'C'
>> this will let you select LATIN1 as a database encoding. (or as fas as I
>> understand, any other encoding)
>> If you let it at the default value, the cluster lc is defaulted to the
>> serveur local charset, in your case UTF8 - English_Canada.1252 (as would any
>> modern windows/linux server be nowadays)
>> Hope this helps
>> Didier
> That's good point. You can use C/POSIX locale with LATIN1 or any other
> encoding, but in such case you lost some (probably useful) text
> functionalities, which are provided by specific locale (upper, lower,
> and initcap functions bahaviour, sort order using ORDER BY etc.).
> "For C or POSIX locale, any character set is allowed, but for other
> locales there is only one character set that will work correctly. (On
> Windows, however, UTF-8 encoding can be used with any locale.)"
> "If you want the system to behave as if it had no locale support, use
> the special locale C or POSIX."
> "The drawback of using locales other than C or POSIX in PostgreSQL is
> its performance impact. It slows character handling and prevents
> ordinary indexes from being used by LIKE. For this reason use locales
> only if you actually need them."
> Regards,
> Grzegorz Szpetkowski

In response to

pgsql-novice by date

Next:From: Tom LaneDate: 2011-05-03 18:01:04
Subject: Re: Exponantial Function (exp) with bigger argument ?
Previous:From: Sébastien D'ErricoDate: 2011-05-03 16:33:16
Subject: Re: create a database with encoding LATIN1

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