On Mon, Apr 22, 2019 at 09:19:33PM +0900, Kyotaro HORIGUCHI wrote: > The attached exercises this sequence, needing some changes in > PostgresNode.pm and RecursiveCopy.pm to allow tablespaces.
+ # Check for symlink -- needed only on source dir + # (note: this will fall through quietly if file is already gone) + if (-l $srcpath) + { + croak "Cannot operate on symlink \"$srcpath\"" + if ($srcpath !~ /\/(pg_tblspc\/[0-9]+)$/); + + # We have mapped tablespaces. Copy them individually + my $linkname = $1; + my $tmpdir = TestLib::tempdir; + my $dstrealdir = TestLib::real_dir($tmpdir); + my $srcrealdir = readlink($srcpath); + + opendir(my $dh, $srcrealdir); + while (readdir $dh) + { + next if (/^\.\.?$/); + my $spath = "$srcrealdir/$_"; + my $dpath = "$dstrealdir/$_"; + + copypath($spath, $dpath); + } + closedir $dh; + + symlink $dstrealdir, $destpath; + return 1; + } The same stuff is proposed here: https://www.postgresql.org/message-id/cagrczquxd9yofifokxofj+fp3jdpoekczt+zh_prmnaadae...@mail.gmail.com So there is a lot of demand for making the recursive copy more skilled at handling symlinks for tablespace tests, and I'd like to propose to do something among those lines for the tests on HEAD, presumably for v12 and not v13 as we are talking about a bug fix here? I am not sure yet which one of the proposals is better than the other though. -- Michael
signature.asc
Description: PGP signature