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
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 |