Re: How to add new Collation language

From: Rob Northcott <Rob(dot)Northcott(at)compilator(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: "pgsql-general(at)postgresql(dot)org" <pgsql-general(at)postgresql(dot)org>
Subject: Re: How to add new Collation language
Date: 2017-09-14 16:07:37
Message-ID: AM3PR08MB0610BD181A54F22C2A548A6A9B6F0@AM3PR08MB0610.eurprd08.prod.outlook.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

-----Original Message-----
From: Tom Lane [mailto:tgl(at)sss(dot)pgh(dot)pa(dot)us]
Sent: 14 September 2017 14:53
To: Rob Northcott <Rob(dot)Northcott(at)compilator(dot)com>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: [GENERAL] How to add new Collation language

Rob Northcott <Rob(dot)Northcott(at)compilator(dot)com> writes:
> From: rob stone [mailto:floriparob(at)gmail(dot)com]
>> On Thu, 2017-09-14 at 11:30 +0000, Rob Northcott wrote:
>>> How can I add a collation language to a Postgres server?
>>> Specifically, I want to create a new database with collation of
>>> English_United Kingdom.1252 but the only options are C, Posix and
>>> United States.
>>> This is Postgres 9.6 on Windows server 2012. The server is Swedish,
>>> and my user login is set to UK.

>> initdb --locale=en_GB.UTF-8 . . . plus other init options as required.

> Thanks for the reply. When I try that I get the message "invalid locale name"

>>en_GB.UTF-8 is a Unix-style locale name, it won't help you on Windows.
>>You need something like "English_United Kingdom.1252" on Windows.

>>I'm not sure what you mean by "the only options are" ... are you using some GUI that >>only offers those options? If so, this is a shortcoming in that GUI. Postgres itself >>should take whatever ctype/collation settings the underlying system accepts. You >>could try manually invoking initdb as above, but with a Windows-style locale name. >>Or if you want to make a new database within an existing installation, use CREATE >>DATABASE directly, setting the LC_COLLATE and LC_CTYPE options (and selecting a >>matching ENCODING).

>> regards, tom lane

Thanks Tom, using initdb to create a new data directory (cluster?) worked, using "English_United..." rather than en_GB as you suggested.

I've never had to do that before - always just used the default Postgres installation and selected "English United Kingdom" during the install. That didn't seem to work on this server - it insisted on being United States. Anyway, learning how to use the command line is no bad thing.

Thanks for your help.

Rob

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Rafal Pietrak 2017-09-14 17:11:19 Re: looking for a globally unique row ID
Previous Message Steve Atkins 2017-09-14 16:03:30 Re: looking for a globally unique row ID