Re: Understanding, testing and improving our Windows filesystem code
Thomas Munro <thomas.munro@gmail.com>
From: Thomas Munro <thomas.munro@gmail.com>
To: Ian Lawrence Barwick <barwick@gmail.com>
Cc: pgsql-hackers <pgsql-hackers@postgresql.org>,
Andres Freund <andres@anarazel.de>
Date: 2022-11-28T08:53:59Z
Lists: pgsql-hackers
On Mon, Nov 28, 2022 at 8:58 PM Ian Lawrence Barwick <barwick@gmail.com> wrote: > For my understanding, does this entry supersede the proposal in > https://commitfest.postgresql.org/40/3347/ ? I think so (Victor hasn't commented). Patch 0004 derives from Victor's patch and has him as primary author still, but I made some changes: * remove obsolete version check code * provide fallback code for systems where it doesn't work (after some research to determine that there are such systems, and what they do) * test that it's really more POSIX-like and demonstrate what that means (building on 0003) Patch 0003 is a set of file system semantics tests that work on Unix, but also exercise those src/port/*.c wrappers on Windows and show differences from Unix semantics. Some of these tests also verify various bugfixes already committed, so they've been pretty useful to me already even though they aren't in the tree yet. Patches 0001 and 0002 are generic, unrelated to this Windows stuff, and provide a simple way to write unit tests for small bits of C code without a whole PostgreSQL server. That's something that has been proposed in the abstract many times before by many people. Here I've tried to be minimalist about it, just what I needed for the higher-numbered patches, building on existing technologies (TAP).
Commits
-
Update obsolete multixact.c comments.
- 5212d447fa53 16.0 cited
-
Fix unlink() for STATUS_DELETE_PENDING on Windows.
- e109e43921d2 16.0 landed
-
Fix readlink() for non-PostgreSQL junction points on Windows.
- f71007fbb3b8 16.0 landed
-
Fix stat() for recursive junction points on Windows.
- 4517358ee782 16.0 landed
-
Fix lstat() for broken junction points on Windows.
- 387803d81d62 16.0 landed
-
Fix readlink() return value on Windows.
- 4650036f5ab8 16.0 landed