Re: Move defaults toward ICU in 16?

From: Andres Freund <andres(at)anarazel(dot)de>
To: Jeff Davis <pgsql(at)j-davis(dot)com>
Cc: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Thomas Munro <thomas(dot)munro(at)gmail(dot)com>, Robert Haas <robertmhaas(at)gmail(dot)com>, pgsql-hackers(at)postgresql(dot)org
Subject: Re: Move defaults toward ICU in 16?
Date: 2023-02-11 02:00:42
Message-ID: 20230211020042.uthdgj72kp3xlqam@awork3.anarazel.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi,

On 2023-02-10 16:17:00 -0800, Jeff Davis wrote:
> One CI test is failing: "Windows - Server 2019, VS 2019 - Meson &
> ninja"; if I apply Andres patch (
> https://github.com/anarazel/postgres/commit/dde7c68 ), then it works.

Until something like my patch above is done more generally applicable, I think
your patch should disable ICU on windows. Can't just fail to build.

Perhaps we don't need to force ICU use to on with the meson build, given that
it defaults to auto-detection?

> I ran into one annoyance with pg_upgrade, which is that a v15 cluster
> initialized with the defaults requires that the v16 cluster is
> initialized with --locale-provider=libc, because otherwise the old and
> new cluster will have mismatching template databases. Simple to fix
> once you see the error, but I wonder how many initdb scripts might be
> broken? I suppose it's just the cost of changing a default? Would an
> environment variable help for cases where it's difficult to pass that
> extra option down through a script?

That seems problematic to me.

But, shouldn't pg_upgrade be able to deal with this? As long as the databases
are created with template0, we can create the collations at that point?

> @@ -15323,7 +15311,7 @@ else
> We can't simply define LARGE_OFF_T to be 9223372036854775807,
> since some C++ compilers masquerading as C compilers
> incorrectly reject 9223372036854775807. */
> -#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
> +#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
> int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
> && LARGE_OFF_T % 2147483647 == 1)
> ? 1 : -1];

This stuff shouldn't be in here, it's due to a debian patched autoconf.

Greetings,

Andres Freund

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Andres Freund 2023-02-11 02:09:42 Re: Time delayed LR (WAS Re: logical replication restrictions)
Previous Message Tom Lane 2023-02-11 01:18:36 Re: UUID v7