Re: Howto change db cluster locale on-the-fly

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Martijn van Oosterhout <kleptog(at)svana(dot)org>
Cc: Jakub Ouhrabka <kuba(at)comgate(dot)cz>, pgsql-hackers(at)postgresql(dot)org
Subject: Re: Howto change db cluster locale on-the-fly
Date: 2007-02-19 15:19:17
Message-ID: 9621.1171898357@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Martijn van Oosterhout <kleptog(at)svana(dot)org> writes:
>> But I guess something like this would work:
>> 1) drop all indexes on text/varchar columns
>> 2) change cluster locale
>> 3) create all indexes on text/varchar columns

> You're going to miss the "name" columns, ie. every string index in
> pg_catalog.

But "name" is not locale-aware --- it just uses strcmp(). AFAIR there
aren't any locale-dependent indexes in the system catalogs. So in
principle you could hack pg_control, restart the postmaster, and then
reindex every locale-dependent index. Hacking pg_control would be the
hard part; you'll never get the CRC right if you do it manually. Possibly
pg_resetxlog could be adapted to the purpose.

> I'd suggest single user mode at least, and make backups!

Yup, a filesystem backup would be a *real* good idea. Not to mention
testing the procedure on a toy installation.

regards, tom lane

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 2007-02-19 15:26:04 Re: pg_proc without oid?
Previous Message Gregory Stark 2007-02-19 15:18:59 Re: New feature request: FlashBack Query