Re: BUG #18196: Databases Created in Turkish Language Will Not Run on the Latest Version of Windows - Mailing list pgsql-bugs

From Laurenz Albe
Subject Re: BUG #18196: Databases Created in Turkish Language Will Not Run on the Latest Version of Windows
Date
Msg-id f41b857b00c92254e55a0e3486d76ad7ae1bde18.camel@cybertec.at
Whole thread Raw
In response to BUG #18196: Databases Created in Turkish Language Will Not Run on the Latest Version of Windows  (PG Bug reporting form <noreply@postgresql.org>)
Responses Re: BUG #18196: Databases Created in Turkish Language Will Not Run on the Latest Version of Windows  (Tom Lane <tgl@sss.pgh.pa.us>)
Re: BUG #18196: Databases Created in Turkish Language Will Not Run on the Latest Version of Windows  (Halil Han Badem <halilhanbadem@gmail.com>)
List pgsql-bugs
On Wed, 2023-11-15 at 09:04 +0000, PG Bug reporting form wrote:
> Operating system:   Windows 11 22H2 22621.2715
>
> This morning, I noticed that my computer at the office and my computer at
> home had received automatic updates. Subsequently, I received reports of
> some errors. Upon investigation, I found that the PostgreSQL service was not
> running, and the error indicated that it was due to a problem in the
> postgresql.conf file. After extensive research, I discovered that in the
> Windows 11 22H2 22621.2715 update, the term "Turkey" had been changed to
> "Türkiye." As a result, Turkish_Turkey.1254 is no longer present in the
> operating system. Instead of Turkish_Turkey.1254, the Windows system now
> uses Turkish_Türkiye.1254.
>
> Databases created with Turkish_Turkey.1254 cannot find the corresponding
> locale, resulting in errors and service disruptions. After a fresh
> installation, I observed the following expressions in the postgresql.conf
> file.
>
> # These settings are initialized by initdb, but they can be changed.
> lc_messages = 'Turkish_Türkiye.1254'            # locale for system error message
>                     # strings
> lc_monetary = 'Turkish_Türkiye.1254'            # locale for monetary formatting
> lc_numeric = 'Turkish_Türkiye.1254'            # locale for number formatting
> lc_time = 'Turkish_Türkiye.1254'                # locale for time formatting
>
> Therefore, there is a conflict, and I request your assistance in addressing
> this matter.

This has been reported before [1], but your report explains the problem clearly.

Can you show the exact error message?

This seems to be a really nasty problem that Microsoft has created for us.
Even if the server started, you could not connect to the database if the
collation persisted in pg_database is no longer accepted by the operating
system.

I cannot think of a possible solution except a hard-coded hack specifically
for Turkish locale names...

Yours,
Laurenz Albe


 [1]: https://postgr.es/m/18181-fa5143d18a467fe5%40postgresql.org



pgsql-bugs by date:

Previous
From: Christophe Pettus
Date:
Subject: Re: LIMIT clause extremely slow
Next
From: Laurenz Albe
Date:
Subject: Re: LIMIT clause extremely slow