Thread: BUG #6214: can't change Column COLLATE

BUG #6214: can't change Column COLLATE

From
"yulin liu"
Date:
The following bug has been logged online:

Bug reference:      6214
Logged by:          yulin liu
Email address:      e9320.tw@gmail.com
PostgreSQL version: PostgreSQL 9.1
Operating system:   CentOS release 5.4
Description:        can't change Column COLLATE
Details:

can't change Column COLLATE pg_catalog."default" to pg_catalog."zh_TW.euctw"

Re: BUG #6214: can't change Column COLLATE

From
Tom Lane
Date:
"yulin liu" <e9320.tw@gmail.com> writes:
> can't change Column COLLATE pg_catalog."default" to pg_catalog."zh_TW.euctw"

Use ALTER TABLE ... ALTER COLUMN ... TYPE ... COLLATE ...

            regards, tom lane

Re: BUG #6214: can't change Column COLLATE

From
小豕
Date:
Use   ALTER TABLE item  ALTER COLUMN title TYPE character varying(2000) COLLATE pg_catalog."zh_TW.euctw";
but, SQL state: 42704  "UTF8" "pg_catalog.zh_TW.euctw" not found

2011/9/19 Tom Lane <tgl@sss.pgh.pa.us>
"yulin liu" <e9320.tw@gmail.com> writes:
> can't change Column COLLATE pg_catalog."default" to pg_catalog."zh_TW.euctw"

Use ALTER TABLE ... ALTER COLUMN ... TYPE ... COLLATE ...

                       regards, tom lane

Re: BUG #6214: can't change Column COLLATE

From
Tom Lane
Date:
小豕 <e9320.tw@gmail.com> writes:
> Use   ALTER TABLE item  ALTER COLUMN title TYPE character varying(2000)
> COLLATE pg_catalog."zh_TW.euctw";
> but, SQL state: 42704  "UTF8" "pg_catalog.zh_TW.euctw" not found

I hope that's not the exact phrasing of the error message ... but
what it's probably trying to tell you is that you can't use an EUC_TW
based locale in a database with UTF8 encoding.  Try zh_TW.utf8.
        regards, tom lane


Re: BUG #6214: can't change Column COLLATE

From
Peter Eisentraut
Date:
On tis, 2011-09-20 at 00:32 -0400, Tom Lane wrote:
> 小豕 <e9320.tw@gmail.com> writes:
> > Use   ALTER TABLE item  ALTER COLUMN title TYPE character varying(2000)
> > COLLATE pg_catalog."zh_TW.euctw";
> > but, SQL state: 42704  "UTF8" "pg_catalog.zh_TW.euctw" not found
>
> I hope that's not the exact phrasing of the error message ... but
> what it's probably trying to tell you is that you can't use an EUC_TW
> based locale in a database with UTF8 encoding.  Try zh_TW.utf8.

It's usually easier to just use COLLATE "zh_TW", and it will pick up the
right encoding.