]> git.ipfire.org Git - thirdparty/postgresql.git/commitdiff
Allow PostgresNode.pm's backup method to accept backup_options.
authorRobert Haas <rhaas@postgresql.org>
Wed, 9 Jun 2021 16:30:28 +0000 (12:30 -0400)
committerRobert Haas <rhaas@postgresql.org>
Wed, 9 Jun 2021 16:30:28 +0000 (12:30 -0400)
Partial back-port of commit 081876d75ea15c3bd2ee5ba64a794fd8ea46d794.
A test case for a pending bug fix needs this capability, but the code
on 9.6 is significantly different, so I'm only back-patching this
change as far as v10. We'll have to work around the problem another
way in v9.6.

Discussion: http://postgr.es/m/CAFiTN-tcivNvL0Rg6rD7_CErNfE75H7+gh9WbMxjbgsattja1Q@mail.gmail.com

src/test/perl/PostgresNode.pm

index 72a1fe36779b5887e5fe151e995d3eae6b5409eb..de07277f0f3bf9cef1519aeb9ca338ab677a8fcb 100644 (file)
@@ -546,8 +546,11 @@ sub append_conf
 =item $node->backup(backup_name)
 
 Create a hot backup with B<pg_basebackup> in subdirectory B<backup_name> of
-B<< $node->backup_dir >>, including the WAL. WAL files
-fetched at the end of the backup, not streamed.
+B<< $node->backup_dir >>, including the WAL.
+
+By default, WAL files are fetched at the end of the backup, not streamed.
+You can adjust that and other things by passing an array of additional
+B<pg_basebackup> command line options in the keyword parameter backup_options.
 
 You'll have to configure a suitable B<max_wal_senders> on the
 target server since it isn't done by default.
@@ -556,7 +559,7 @@ target server since it isn't done by default.
 
 sub backup
 {
-       my ($self, $backup_name) = @_;
+       my ($self, $backup_name, %params) = @_;
        my $backup_path = $self->backup_dir . '/' . $backup_name;
        my $name        = $self->name;
 
@@ -564,7 +567,8 @@ sub backup
        TestLib::system_or_bail(
                'pg_basebackup', '-D', $backup_path, '-h',
                $self->host,     '-p', $self->port,  '--checkpoint',
-               'fast',          '--no-sync');
+               'fast',          '--no-sync',
+               @{ $params{backup_options} });
        print "# Backup finished\n";
        return;
 }