Atomic rename feature for Windows.

From: Victor Spirin <v(dot)spirin(at)postgrespro(dot)ru>
To: pgsql-hackers(at)lists(dot)postgresql(dot)org
Subject: Atomic rename feature for Windows.
Date: 2021-07-05 13:53:06
Message-ID: a529b660-da15-5b62-21a0-9936768210fd@postgrespro.ru
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi

I used the SetFileInformationByHandle function with the
FILE_RENAME_FLAG_POSIX_SEMANTICS flag for the file rename function..

1) The _WIN32_WINNT variable needs to be increased to 0x0A00 (Windows
10).  Fixed conflict with #undef CHECKSUM_TYPE_NONE

2) The SetFileInformationByHandle function works correctly only on
Windows 10 and higher.

The app must have a manifest to check the Windows version using the
IsWindows10OrGreater() function. I added a manifest to all postgres
projects and disabled the GenerateManifest option on windows projects.

This patch related to this post:
https://www.postgresql.org/message-id/CAEepm%3D0FV-k%2B%3Dd9z08cW%3DZXoR1%3Dkw9wdpkP6WAuOrKJdz-8ujg%40mail.gmail.com

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

Attachment Content-Type Size
rename_atomic.patch text/plain 8.0 KB

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Stephen Frost 2021-07-05 13:57:41 Re: Disable WAL logging to speed up data loading
Previous Message David Rowley 2021-07-05 13:48:52 Re: Removed extra memory allocations from create_list_bounds