Re: pg_tablespace_location() failure with allow_in_place_tablespaces

Kyotaro Horiguchi <horikyota.ntt@gmail.com>

From: Kyotaro Horiguchi <horikyota.ntt@gmail.com>
To: michael@paquier.xyz
Cc: pgsql-hackers@lists.postgresql.org
Date: 2022-03-04T07:54:49Z
Lists: pgsql-hackers
At Fri, 04 Mar 2022 16:41:03 +0900 (JST), Kyotaro Horiguchi <horikyota.ntt@gmail.com> wrote in 
> At Fri, 4 Mar 2022 15:44:22 +0900, Michael Paquier <michael@paquier.xyz> wrote in 
> > The use may be limited to any automated testing and
> > allow_in_place_tablespaces is a developer GUC, still it seems to me
> > that there is an argument to allow the case rather than tweak any
> > tests to hardcode a path with the tablespace OID.  And any other code
> > paths are able to handle such tablespaces, be they in recovery or in
> > tablespace create/drop.
> 
> +1

By the way, regardless of the patch, I got an error from pg_basebackup
for an in-place tablespace.  pg_do_start_backup calls readlink
believing pg_tblspc/* is always a symlink.

# Running: pg_basebackup -D /home/horiguti/work/worktrees/tsp_replay_2/src/test/recovery/tmp_check/t_029_replay_tsp_drops_primary1_data/backup/my_backup -h /tmp/X8E4nbF4en -p 51584 --checkpoint fast --no-sync
WARNING:  could not read symbolic link "pg_tblspc/16384": Invalid argument

regards.

-- 
Kyotaro Horiguchi
NTT Open Source Software Center



Commits

  1. Remove unnecessary Windows-specific basebackup code.

  2. Fix get_dirent_type() for Windows junction points.

  3. doc: Remove mention to in-place tablespaces for pg_tablespace_location()

  4. Fix pg_tablespace_location() with in-place tablespaces

  5. Fix pg_basebackup with in-place tablespaces.