Subject: Re: Collation again here

From: Rihad <[email-masked]>
Date: Thu, 8 Jan 2026 17:26:47 +0400

On 1/8/26 5:19 PM, Daniel Verite wrote:
> 	Rihad wrote:
>
>> DETAIL:  The database was created using collation version 43.0, but the
>> operating system provides version 34.0.
>> 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.
> That would be the case if the database collation provider was ICU,
> that is pg_database.datlocprovider = 'i'
> Otherwise no, it's the libc version that matters, unless using
> the binary-sorting C or C.UTF-8 collations.
> 43.0 and 34.0 don't look like ICU collation version numbers, so
> they probably refer to FreeBSD libc (pg_database.datlocprovider = 'c')
>
> As a general rule, you should indeed run the same OS version
> for the primary and physical replicas.
> Before Postgres version 15 this message did not exist, so the risks
> of mismatch were silent but they existed just the same.
>
>
> Best regards,

Thanks. Both FreeBSD 13.5 & 14.3 are "current", just from different 
major branches. I wonder why they use such different locale/collate 
versioning, meaning that they differ roughly by that much as in 34 vs. 
43. Maybe someone there mistyped 34?)

---

From: "Peter 'PMc' Much" <[email-masked]>
Date: Thu, 8 Jan 2026 23:42:43 +0100

On Thu, Jan 08, 2026 at 05:26:47PM +0400, Rihad wrote:

! > As a general rule, you should indeed run the same OS version
! > for the primary and physical replicas.
! > Before Postgres version 15 this message did not exist, so the risks
! > of mismatch were silent but they existed just the same.
! > 
! > 
! > Best regards,
! 
! Thanks. Both FreeBSD 13.5 & 14.3 are "current", just from different major
! branches. I wonder why they use such different locale/collate versioning,
! meaning that they differ roughly by that much as in 34 vs. 43. Maybe someone
! there mistyped 34?)

Hi, I ran into that same (surprizing) error when upgrading FreeBSD
13.x to 14.x.

In FreeBSD the major version switches are for exactly that purpose: to
change interfaces or libaries that may induce incompatibilities

The version numbers (34.0 vs 43.0) might mean anything, I don't
know; but they originate from these places in the OS distribution:

$ hd /usr/share/locale/en_US.UTF-8/LC_COLLATE | head -1
00000000  42 53 44 20 31 2e 30 0a  00 00 00 00 34 33 2e 30  |BSD 1.0.....43.0|

In Yor case, apparently the conclusion is that you need the same
FreeBSD major version throughout Your replication set.

-- PMc