Re: BUG #18196: Databases Created in Turkish Language Will Not Run on the Latest Version of Windows

From: Laurenz Albe <laurenz(dot)albe(at)cybertec(dot)at>
To: halilhanbadem(at)gmail(dot)com, pgsql-bugs(at)lists(dot)postgresql(dot)org
Subject: Re: BUG #18196: Databases Created in Turkish Language Will Not Run on the Latest Version of Windows
Date: 2023-11-15 17:48:47
Message-ID: f41b857b00c92254e55a0e3486d76ad7ae1bde18.camel@cybertec.at
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: 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

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Laurenz Albe 2023-11-15 18:08:51 Re: LIMIT clause extremely slow
Previous Message Christophe Pettus 2023-11-15 17:48:37 Re: LIMIT clause extremely slow