Re: option -T in pg_basebackup doesn't work on windows - Mailing list pgsql-hackers

From Amit Kapila
Subject Re: option -T in pg_basebackup doesn't work on windows
Date
Msg-id CAA4eK1+cC9RB1S9Q4+nSOkfas1YufVFGFxUHxY_6wLBQ1ReroQ@mail.gmail.com
Whole thread Raw
In response to Re: option -T in pg_basebackup doesn't work on windows  ("MauMau" <maumau307@gmail.com>)
Responses Re: option -T in pg_basebackup doesn't work on windows
List pgsql-hackers
On Wed, Aug 13, 2014 at 9:20 PM, MauMau <maumau307@gmail.com> wrote:
>
> 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

It failed due to one of recent commits as mentioned by
Michael. Please find the rebased patch attached with this
mail

> 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);

Yeah, though this is not introduced by patch, but I think
this should be fixed and I have fixed it attached patch.

With Regards,
Amit Kapila.
EnterpriseDB: http://www.enterprisedb.com

Attachment

pgsql-hackers by date:

Previous
From: Kyotaro HORIGUCHI
Date:
Subject: Re: alter user set local_preload_libraries.
Next
From: Michael Paquier
Date:
Subject: Re: pg_shmem_allocations view