Subject: Re: ICU Collations and Collation Updates

From: Paul Foerster <[email-masked]>
Date: Mon, 14 Apr 2025 19:24:29 +0200

Hi Tom, hi Laurenz

> On 14 Apr 2025, at 16:36, Tom Lane <[email-masked]> wrote:
> 
> Laurenz Albe <[email-masked]> writes:
>> You would have to build PostgreSQL yourself with a fixed version of ICU
>> that you never upgrade if you want to avoid the problem.
[...]
> 2. It's at least *possible* to use your own fixed-version ICU
> library if you're desperate enough.  I don't think that would work
> too well for libc; you're stuck with what the platform provides.

That topic is interesting because I have a huge problem finding a downtime window for our applications to rebuild after the SLES upgrades. I am in the process of slowly changing everything to ICU. But limiting downtime is essential for me.

We always build the PostgreSQL software from source, so if there's a way to bake the libicu directly into the software to never change it again (beside from recompiling of course), even when building new PostgreSQL versions, I'd very much appreciate if if you could let me know how I would do that.

The necessity for reindex is a huge problem for us.

Cheers,
Paul

---

From: Laurenz Albe <[email-masked]>
Date: Mon, 14 Apr 2025 19:36:36 +0200

On Mon, 2025-04-14 at 19:24 +0200, Paul Foerster wrote:
> That topic is interesting because I have a huge problem finding a downtime
> window for our applications to rebuild after the SLES upgrades. I am in the
> process of slowly changing everything to ICU. But limiting downtime is
> essential for me.
> 
> We always build the PostgreSQL software from source, so if there's a way
> to bake the libicu directly into the software to never change it again
> (beside from recompiling of course), even when building new PostgreSQL
> versions, I'd very much appreciate if if you could let me know how I would
> do that.
> 

You cannot "bake in into" PostgreSQL, but you can grab the ICU source,
install it in /usr/local or similar and build PostgreSQL against that.
You will have to fiddle with CFLAGS and LDFLAGS so that the build process
uses the C headers and libraries from your build of the ICU library.

Yours,
Laurenz Albe