pgsql: Fix get_dirent_type() for Windows junction points. - Mailing list pgsql-committers

From Thomas Munro
Subject pgsql: Fix get_dirent_type() for Windows junction points.
Date
Msg-id E1oEkny-000gSZ-Jd@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
Fix get_dirent_type() for Windows junction points.

Commit 87e6ed7c8 added code that intended to report Windows "junction
points" as DT_LNK (the same way we report symlinks on Unix).  Windows
junction points are *also* directories according to the Windows
attributes API, and we were reporting them as as DT_DIR.  Change the
order we check the attribute flags, to prioritize DT_LNK.

If at some point we start using Windows' recently added real symlinks
and need to distinguish them from junction points, we may need to
rethink this, but for now this continues the tradition of wrapper
functions that treat junction points as symlinks.

Back-patch to 14, where get_dirent_type() landed.

Reviewed-by: Michael Paquier <michael@paquier.xyz>
Reviewed-by: Alvaro Herrera <alvherre@alvh.no-ip.org>
Discussion: https://postgr.es/m/CA%2BhUKGLzLK4PUPx0_AwXEWXOYAejU%3D7XpxnYE55Y%2Be7hB2N3FA%40mail.gmail.com
Discussion: https://postgr.es/m/20220721111751.x7hod2xgrd76xr5c%40alvherre.pgsql

Branch
------
REL_14_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/fee0165fc1cfaf4ac0052c4554810e46c02dd70c

Modified Files
--------------
src/port/dirent.c | 16 ++++++++++------
1 file changed, 10 insertions(+), 6 deletions(-)


pgsql-committers by date:

Previous
From: Thomas Munro
Date:
Subject: pgsql: Fix get_dirent_type() for Windows junction points.
Next
From: Thomas Munro
Date:
Subject: pgsql: Remove unnecessary Windows-specific basebackup code.