Further tweaks to stuck_on_old_timeline recovery test
authorAndrew Dunstan <andrew@dunslane.net>
Sun, 13 Jun 2021 11:10:41 +0000 (07:10 -0400)
committerAndrew Dunstan <andrew@dunslane.net>
Sun, 13 Jun 2021 11:19:38 +0000 (07:19 -0400)
Translate path slashes on target directory path. This was confusing old
branches, but is applied to all branches for the sake of uniformity.
Perl is perfectly able to understand paths with forward slashes.

Along the way, restore the previous archive_wait query, for the sake of
uniformity with other tests, per gripe from Tom Lane.

src/test/recovery/t/025_stuck_on_old_timeline.pl

index 7a6d7a8062b4490758ae7af4716bca647e0cbeb7..3a7af3eb4ce63ce97ae10fc2c9511eedd3d1db3d 100644 (file)
@@ -31,6 +31,7 @@ if ($^O eq 'msys')
 }
 $perlbin =~ s!\\!/!g if $TestLib::windows_os;
 my $archivedir_primary = $node_primary->archive_dir;
+$archivedir_primary =~ s!\\!/!g if $TestLib::windows_os;
 $node_primary->append_conf('postgresql.conf', qq(
 archive_command = '"$perlbin" "$FindBin::RealBin/cp_history_files" "%p" "$archivedir_primary/%f"'
 wal_keep_segments=8
@@ -81,8 +82,7 @@ $node_standby->safe_psql('postgres', 'SELECT pg_switch_wal()');
 # WAL segment, this is enough to guarantee that the history file was
 # archived.
 my $archive_wait_query =
-  "SELECT coalesce('$walfile_to_be_archived' <= last_archived_wal, false) " .
-  "FROM pg_stat_archiver";
+  "SELECT '$walfile_to_be_archived' <= last_archived_wal FROM pg_stat_archiver";
 $node_standby->poll_query_until('postgres', $archive_wait_query)
   or die "Timed out while waiting for WAL segment to be archived";
 my $last_archived_wal_file = $walfile_to_be_archived;