Re: A micro-optimisation for walkdir()
Thomas Munro <thomas.munro@gmail.com>
From: Thomas Munro <thomas.munro@gmail.com>
To: Magnus Hagander <magnus@hagander.net>
Cc: Juan José Santamaría Flecha <juanjo.santamaria@gmail.com>, Andres Freund <andres@anarazel.de>, Tom Lane <tgl@sss.pgh.pa.us>, pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2020-09-07T11:40:47Z
Lists: pgsql-hackers
On Mon, Sep 7, 2020 at 9:42 PM Magnus Hagander <magnus@hagander.net> wrote: > On Mon, Sep 7, 2020 at 12:27 AM Thomas Munro <thomas.munro@gmail.com> wrote: >> I think the following is a little mysterious, but it does seem to be >> what people do for this in other projects. It is the documented way >> to detect mount points, and I guess IO_REPARSE_TAG_MOUNT_POINT is >> either overloaded also for junctions, or junctions are the same thing >> as mount points. It would be nice to see a Win32 documentation page >> that explicitly said that. > > The wikipedia page on it is actually fairly decent: https://en.wikipedia.org/wiki/NTFS_reparse_point. It's not the documentation of course, but it's easier to read :) The core difference is whether you mount a whole filesystem (mount point) or just a directory off something mounted elsehwere (junction). > > And yes, the wikipedia page confirms that junctions also use IO_REPARSE_TAG_MOUNT_POINT. Thanks for confirming. I ran the Windows patch through pgindent, fixed a small typo, and pushed.
Commits
-
Add d_type to our Windows dirent emulation.
- 87e6ed7c8c6a 14.0 landed
-
Skip unnecessary stat() calls in walkdir().
- 861c6e7c8e4d 14.0 landed