Re: EDB builds Postgres 13 with an obsolete ICU version

From: Magnus Hagander <magnus(at)hagander(dot)net>
To: Bruce Momjian <bruce(at)momjian(dot)us>
Cc: Dave Page <dpage(at)pgadmin(dot)org>, Daniel Verite <daniel(at)manitou-mail(dot)org>, PostgreSQL Developers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: Re: EDB builds Postgres 13 with an obsolete ICU version
Date: 2020-08-17 10:19:13
Message-ID: CABUevEwe58Rgy7=WVKx81iK=6uZUSQH-LBtJ=8TbtOqOfT9ApA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Fri, Aug 14, 2020 at 3:00 PM Bruce Momjian <bruce(at)momjian(dot)us> wrote:

> On Tue, Aug 11, 2020 at 02:58:30PM +0200, Magnus Hagander wrote:
> > On Tue, Aug 4, 2020 at 11:42 AM Dave Page <dpage(at)pgadmin(dot)org> wrote:
> > That would require fairly large changes to the installer to allow it
> to
> > login to the database server (whether that would work would
> be dependent on
> > how pg_hba.conf is configured), and also assumes that the ICU ABI
> hasn't
> > changed between releases. It would also require some hacky renaming
> of
> > DLLs, as they have the version number in them.
> >
> > I assumed it had code for that stuff already. Mainly because I assumed it
> > supported doing pg_upgrade, which requires similar things no?
>
> While pg_upgrade requires having the old and new cluster software in
> place, I don't think it helps allowing different ICU versions for each
> cluster.

Depends on where they are installed (and disclaimer, I don't know how the
windows installers do that). But as long as the ICU libraries are installed
in separate locations for the two versions, which I *think* they are or at
least used to be, it shouldn't have an effect on this in either direction.

That argument really only holds for different versions, not for different
clusters of the same version. But I don't think the installers (natively)
supports multiple clusters of the same version anyway.

The tricky thing is if you want to allow the user to *choose* which ICU
version should be used with postgres version <x>. Because then the user
might also expect an upgrade-path wherein they only upgrade the icu library
on an existing install...

> I guess you can argue that if you know the user is _not_ going
> to be using pg_upgrade, then a new ICU version should be used for the
> new cluster.
>

Yes, that's exactly the argument I meant :) If the user got the option to
"pick version of ICU: <old>, <new>", with a comment saying "pick old only
if you plan to do a pg_upgrade based upgrade of a different cluster, or if
this instance should participate in replication with a node using <old>",
that would probably help for the vast majority of cases. And of course, if
the installer through other options can determine with certainty that it's
going to be running pg_upgrade for the user, then it can reword the dialog
based on that (that is, it should still allow the user to pick the new
version, as long as they know that their indexes are going to need
reindexing)

--
Magnus Hagander
Me: https://www.hagander.net/ <http://www.hagander.net/>
Work: https://www.redpill-linpro.com/ <http://www.redpill-linpro.com/>

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Thomas Munro 2020-08-17 11:00:34 Optimising compactify_tuples()
Previous Message Hamid Akhtar 2020-08-17 09:34:18 Re: track_planning causing performance regression