Am Sun, Dec 04, 2022 at 10:09:47AM -0800 schrieb Adrian Klaver:
> >>following an ICU upgrade, collations in a stock Debian PG 15.1
> >>cluster now have divergent version information in pg_collations.
> >
> >Correction: this is following a libc upgrade 2.35 -> 2.36
>
> So to be clear this database is not using ICU, but collations from libc?
Sorry for the confusion.
This database carries collations from _both_ libc and ICU in
pg_collations.
The collation in question (br_FR@euro) is _not_ in use (as in
being depended on by any in-database object).
> How was the database installed?
stock Debian
apt-get install postgresql-15 (which gives 15.1)
followed by
CREATE DATABASE "gnumed_v22" with owner = "redacted :-)" template = "template1" encoding = 'unicode';
as "postgres".
> In first post you had:
>
> gnumed_v22=> select *, pg_encoding_to_char(collencoding) from pg_collation where
> collname = 'br_FR@euro';
> -[ RECORD 1 ]-------+-----------
> oid | 12413
> collname | br_FR@euro
> collnamespace | 11
> collowner | 10
> collprovider | c
> collisdeterministic | t
> collencoding | 16
> collcollate | br_FR@euro
> collctype | br_FR@euro
> colliculocale |
> collversion | 2.35
> pg_encoding_to_char | LATIN9
>
> where collprovider c means libc and collversion 2.35.
Yeah, that's when I figured that I misspoke about the ICU upgrade.
Yes, there was an ICU upgrade, and yes, it did affect
collations. Those I was able to fix up (the "reindex /
revalidate constraint / refresh collation version" dance).
There also was a libc upgrade which also affected locales.
Most of them were fixable by that dance but some popped up
(such as br_FR@euro) to not be "correctable" showing the
"does not exist for encoding" error.
Karsten
--
GPG 40BE 5B0E C98E 1713 AFA6 5BC0 3BEA AC80 7D4F C89B