Re: Collation again here
Dominique Devienne <ddevienne@gmail.com>
From: Dominique Devienne <ddevienne@gmail.com>
To: Rihad <grihad@gmail.com>
Cc: pgsql-general General <pgsql-general@postgresql.org>
Date: 2026-01-08T12:48:58Z
Lists: pgsql-general
On Thu, Jan 8, 2026 at 1:39 PM Rihad <grihad@gmail.com> wrote: > Hi, guys. Just pg_upgraded our PG from 13.x to 18.1, rebuilt all indexes concurrently and issued ALTER DATABASE foo REFRESH COLLATION VERSION > Everything's fine on the master server, no warnings etc. Then I set up a replica using pg_basebackup, and there when trying to access the DB using psql I get: > > WARNING: database "foo" has a collation version mismatch > DETAIL: The database was created using collation version 43.0, but the operating system provides version 34.0. > HINT: Rebuild all objects in this database that use the default collation and run ALTER DATABASE foo REFRESH COLLATION VERSION, or build PostgreSQL with the right library version. > The OS are both FreeBSD, but the master runs 14.3, the replica runs 13.5. PostgreSQL packages are built with ICU support by default, the versions used are identical: icu-76.1 > Could it be that the OS (libc) needs to be the same version? I hoped it would be enough to use the same ICU. Depends what Provider you used in those DBs: https://www.postgresql.org/docs/current/locale.html#LOCALE-PROVIDERS Having the same ICU is good, but do your DBs use that provider? If not, and you're using the libc one, then yes, the libc version matters. Myself I use the new builtin provider to avoid OS portability issues. --DD