Re: Windows installation problem at post-install step

From: Sandeep Thakkar <sandeep(dot)thakkar(at)enterprisedb(dot)com>
To: Dave Page <dave(dot)page(at)enterprisedb(dot)com>
Cc: Thomas Munro <thomas(dot)munro(at)gmail(dot)com>, Ertan Küçükoglu <ertan(dot)kucukoglu(at)gmail(dot)com>, Adrian Klaver <adrian(dot)klaver(at)aklaver(dot)com>, pgsql-general(at)lists(dot)postgresql(dot)org
Subject: Re: Windows installation problem at post-install step
Date: 2024-07-23 09:53:12
Message-ID: CANFyU96aQ5VTzLJJ6OEs4g0rGWkBt_twCws+N15k7opjv1dy9g@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On Tue, Jul 23, 2024 at 1:58 PM Dave Page <dave(dot)page(at)enterprisedb(dot)com>
wrote:

>
>
> On Tue, Jul 23, 2024 at 1:27 AM Thomas Munro <thomas(dot)munro(at)gmail(dot)com>
> wrote:
>
>> On Mon, Jul 22, 2024 at 11:51 PM Sandeep Thakkar
>> <sandeep(dot)thakkar(at)enterprisedb(dot)com> wrote:
>> > EDB's windows installer gets the locales on the system using the
>> https://github.com/EnterpriseDB/edb-installers/blob/REL-16/server/scripts/windows/getlocales/getlocales.cpp
>> and then substitute some patterns (
>> https://github.com/EnterpriseDB/edb-installers/blob/REL-16/server/pgserver.xml.in#L2850)
>> I'm not sure why we do that but that is the old code and probably @Dave
>> Page may know but I'm not sure if that piece of code is responsible for
>> this change in encoding in this case.
>>
>> Ah, so it's calling EnumSystemLocales(). Interestingly, the
>> documentation for that function says:
>>
>> "Note For interoperability reasons, the application should prefer the
>> EnumSystemLocalesEx function to EnumSystemLocales because Microsoft is
>> migrating toward the use of locale names instead of locale identifiers
>> for new locales. Any application that will be run only on Windows
>> Vista and later should use EnumSystemLocalesEx."
>>
>> That seems to be talking about this exact issue, that we're supposed
>> to be using "locale names". I'm a little confused about the
>> terminology for the various types of names and identifiers but if you
>> follow the link to a example program[1] you can see that it's talking
>> about the BCP47 "en-US" kind, that we want. (That quote makes it
>> sound like a new thing, but Vista came out ~17 years ago.)
>>
>
> Vista is when they added support for BCP47, but of course, back when that
> code was written we were primarily supporting older versions of Windows
> still, back to Windows 2000 iirc.
>
>
yes, that's right. In existing branches, will replacing
the EnumSystemLocales()
with EnumSystemLocalesEx() plus the source code path being worked upon by
Thomas fix the issue? Can give it a try

>
>> So one idea would be that in v18, we not only change initdb.exe to
>> pick a BCP47 locale name by default as I proposed in that other
>> thread[2], but also in the v18 version of the EDB installer you
>> consider switching that code over to EnumSystemLocalesEx(). Then we
>> can start to kiss goodbye to the bad old names. People would still
>> propagate them into the future with pg_upgrade I guess, and it'd be up
>> to users to replace them by updating their catalogs manually. Does
>> that make sense?
>>
>
> Yes, it does (spitballing: might be nice if we could automatically update
> the catalogs as well).
>
> --
> Dave Page
> VP, Chief Architect, Database Infrastructure
> EDB: https://www.enterprisedb.com
>
>

--
Sandeep Thakkar

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Greg Sabino Mullane 2024-07-23 14:38:54 Re: Planet Postgres and the curse of AI
Previous Message Dave Page 2024-07-23 08:28:11 Re: Windows installation problem at post-install step