Re: Atomic rename feature for Windows. - Mailing list pgsql-hackers

From Victor Spirin
Subject Re: Atomic rename feature for Windows.
Date
Msg-id 90029b88-9b71-22d5-d3c6-64aeb2ed19be@postgrespro.ru
Whole thread Raw
In response to Re: Atomic rename feature for Windows.  (Juan José Santamaría Flecha <juanjo.santamaria@gmail.com>)
Responses Re: Atomic rename feature for Windows.  (Juan José Santamaría Flecha <juanjo.santamaria@gmail.com>)
List pgsql-hackers
Thanks.

IsWindowsVersionOrGreater(10,0,1607) always returns false

Only IsWindowsVersionOrGreater(10,0,0) is a valid call. (There are no service packs in Windows 10.)

I haven't found a way to determine the Windows 10 release ID.
The RtlGetVersion function returns dwBuildNumber = 19042 on my Windows.

I heard that Microsoft does not support older versions of Windows 10 and requires a mandatory update.


Victor Spirin
Postgres Professional:http://www.postgrespro.com
The Russian Postgres Company

23.09.2021 14:18, Juan José Santamaría Flecha пишет:

On Tue, Sep 7, 2021 at 11:40 PM Victor Spirin <v.spirin@postgrespro.ru> wrote:

I checked the pgrename_windows_posix_semantics() function on Windows 7.
It returns error 87: Parameter is incorrect. Hence, it is necessary to
check the Windows version and call the old pgrename function for old
Windows.

The FILE_RENAME_FLAGs are available starting from Windows 10 Release id 1607, NTDDI_WIN10_RS1. The check should be using something like IsWindowsVersionOrGreater(10, 0, 1607). Or you could test this using RtlGetVersion(), loading it from ntdll infrastructure coming from stat() patch [1], which doesn't need a manifest.


Regards,

Juan José Santamaría Flecha

pgsql-hackers by date:

Previous
From: Robert Haas
Date:
Subject: Re: [Patch] ALTER SYSTEM READ ONLY
Next
From: Andres Freund
Date:
Subject: Re: 002_types.pl fails on some timezones on windows