Re: Fixing pg_basebackup with tablespaces found in $PGDATA - Mailing list pgsql-hackers

From Magnus Hagander
Subject Re: Fixing pg_basebackup with tablespaces found in $PGDATA
Date
Msg-id CABUevEyeOzSCASc2ZYshZ-k-8Sg-Cmt2FrdYmQob4-_LkaGOMQ@mail.gmail.com
Whole thread Raw
In response to Re: Fixing pg_basebackup with tablespaces found in $PGDATA  (Dimitri Fontaine <dimitri@2ndQuadrant.fr>)
Responses Re: Fixing pg_basebackup with tablespaces found in $PGDATA
List pgsql-hackers
On Thu, Jan 2, 2014 at 2:06 PM, Dimitri Fontaine <dimitri@2ndquadrant.fr> wrote:
Magnus Hagander <magnus@hagander.net> writes:
> We can't get away with just comparing the relative part of the pathname.
> Because it will fail if there is another path with exactly the same length,
> containing the tablespace.

Actually… yeah.

> I think we might want to store a value in the tablespaceinfo struct
> indicating whether it's actually inside PGDATA (since we have the full path
> at that point), and then skip it based on that instead. Or store and pass
> the value of getcwd() perhaps.

I think it's best to stuff in the tablespaceinfo struct either NIL or
the relative path of the tablespace when found in $PGDATA, as done in
the attached.

> I've attached a slightly updated patch - I changed around a bit of logic
> order and updated some comments during my review. And added error-checking.

Thanks! I started again from your version for v3.


Applied a fairly heavily edited version of this one. I also backpatched it to 9.1 and up.

Thanks!
 
--
 Magnus Hagander
 Me: http://www.hagander.net/
 Work: http://www.redpill-linpro.com/

pgsql-hackers by date:

Previous
From: Kevin Grittner
Date:
Subject: Re: How to reproduce serialization failure for a read only transaction.
Next
From: Ronan Dunklau
Date:
Subject: Re: Triggers on foreign tables