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.