Fix pg_dumpall with in-place tablespaces

Michael Paquier <michael@paquier.xyz>

Commit: a72d613b4c91462d9405c4e1b05c42d33013c333
Author: Michael Paquier <michael@paquier.xyz>
Date: 2023-08-08T23:56:05Z
Releases: 17.0
Fix pg_dumpall with in-place tablespaces

In-place tablespaces would be dumped with the path produced by
pg_tablespace_location(), which is in this case a relative path built as
pg_tblspc/OID, but this would fail to restore as such tablespaces need
to use an empty string as location.  In order to detect if an in-place
tablespace is used, this commit checks if the path returned is relative
and adapts the dump contents in consequence.

Like the other changes related to in-place tablespaces, no backpatch is
done as these are only intended for development purposes.  Rui Zhao has
fixed the code, while the test is from me.

Author: Rui Zhao, Michael Paquier
Discussion: https://postgr.es/m/80c80b4a-b87b-456f-bd46-1ae326601d79.xiyuan.zr@alibaba-inc.com

Files

PathChange+/−
src/bin/pg_dump/pg_dumpall.c modified +10 −1
src/bin/pg_dump/t/002_pg_dump.pl modified +16 −0

Discussion