From: "Amit Kapila" <amit.kapila16@gmail.com>
> During my recent work on pg_basebackup, I noticed that
> -T option doesn't seem to work on Windows.
> The reason for the same is that while updating symlinks
> it doesn't consider that on Windows, junction points can
> be directories due to which it is not able to update the
> symlink location.
> Fix is to make the code work like symlink removal code
> in destroy_tablespace_directories. Attached patch fixes
> problem.
I could reproduce the problem on my Windows machine.
The code change appears correct, but the patch application failed against
the latest source code. I don't know why. Could you confirm this?
patching file src/bin/pg_basebackup/pg_basebackup.c
Hunk #1 FAILED at 1119.
1 out of 1 hunk FAILED -- saving rejects to file
src/bin/pg_basebackup/pg_basebackup.c.rej
On the following line, I think %d must be %u, because Oid is an unsigned
integer.
char *linkloc = psprintf("%s/pg_tblspc/%d", basedir, oid);
Regards
MauMau