Question about using ICU

Started by Paul Försterover 5 years ago5 messagesgeneral
Jump to latest
#1Paul Förster
paul.foerster@gmail.com

Hi,

I have a general question about the use of ICU. Currently, we have PostgreSQL compiled from source (Linux) without ICU support. All database clusters and databases are UTF8 and of course relying on glibc.

With the sooner or later upcoming glibc release 2.28, there will probably a big reindex operation be necessary. To avoid that, I'd like to use ICU.

Compiling --with-icu into the new software, is there a way to make a whole database cluster and all its databases use an ICU without having to manually change all tables or indexes?

Cheers,
Paul

#2Laurenz Albe
laurenz.albe@cybertec.at
In reply to: Paul Förster (#1)
Re: Question about using ICU

On Mon, 2020-09-28 at 10:02 +0200, Paul Förster wrote:

I have a general question about the use of ICU. Currently, we have PostgreSQL compiled
from source (Linux) without ICU support. All database clusters and databases are UTF8
and of course relying on glibc.

With the sooner or later upcoming glibc release 2.28, there will probably a big reindex
operation be necessary. To avoid that, I'd like to use ICU.

Compiling --with-icu into the new software, is there a way to make a whole database cluster
and all its databases use an ICU without having to manually change all tables or indexes?

There have been efforts to add this functionality:
/messages/by-id/5e756dd6-0e91-d778-96fd-b1bcb06c161a@2ndquadrant.com
but it didn't get done.

Your best bet is to manually change the definition of all columns to use the new collation.
psql's \gexec may help.

Yours,
Laurenz Albe
--
Cybertec | https://www.cybertec-postgresql.com

#3Paul Förster
paul.foerster@gmail.com
In reply to: Laurenz Albe (#2)
Re: Question about using ICU

Hi Laurenz,

On 28. Sep, 2020, at 11:04, Laurenz Albe <laurenz.albe@cybertec.at> wrote:

There have been efforts to add this functionality:
/messages/by-id/5e756dd6-0e91-d778-96fd-b1bcb06c161a@2ndquadrant.com
but it didn't get done.

seems to be a rather complex thing according to the thread.

Your best bet is to manually change the definition of all columns to use the new collation.
psql's \gexec may help.

but then I'd have to do a reindex anyway, right? My goal was to avoid the reindex altogether, if possible.

Cheers,
Paul

#4Laurenz Albe
laurenz.albe@cybertec.at
In reply to: Paul Förster (#3)
Re: Question about using ICU

On Mon, 2020-09-28 at 11:45 +0200, Paul Förster wrote:

Your best bet is to manually change the definition of all columns to use the new collation.
psql's \gexec may help.

but then I'd have to do a reindex anyway, right? My goal was to avoid the reindex altogether, if possible.

That couldn't be avoided anyway if you change the collation no matter
if you do it on the database or on the column level.

Yours,
Laurenz Albe
--
Cybertec | https://www.cybertec-postgresql.com

#5Paul Förster
paul.foerster@gmail.com
In reply to: Laurenz Albe (#4)
Re: Question about using ICU

Hi Laurenz,

On 28. Sep, 2020, at 13:13, Laurenz Albe <laurenz.albe@cybertec.at> wrote:

but then I'd have to do a reindex anyway, right? My goal was to avoid the reindex altogether, if possible.

That couldn't be avoided anyway if you change the collation no matter
if you do it on the database or on the column level.

ok, thanks.

Cheers,
Paul