Add parameter "connstr" to PostgreSQL::Test::Cluster::background_psql
authorMichael Paquier <michael@paquier.xyz>
Fri, 20 Sep 2024 00:49:43 +0000 (09:49 +0900)
committerMichael Paquier <michael@paquier.xyz>
Fri, 20 Sep 2024 00:59:22 +0000 (09:59 +0900)
Like for Cluster::psql, this can be handy to force the use of a
connection string with some values overriden, like a "host".

Author: Aidar Imamov
Discussion: https://postgr.es/m/ecacb079efc533aed3c234cbcb5b07b6@postgrespro.ru

src/test/perl/PostgreSQL/Test/Cluster.pm

index 143dc8c10153d70885c024d5a6de51c82f46d99a..90a842f96ab0bee16d5912a162e8a38f1a36615c 100644 (file)
@@ -2181,6 +2181,11 @@ returned.  Set B<on_error_stop> to 0 to ignore errors instead.
 Set a timeout for a background psql session. By default, timeout of
 $PostgreSQL::Test::Utils::timeout_default is set up.
 
+=item connstr => B<value>
+
+If set, use this as the connection string for the connection to the
+backend.
+
 =item replication => B<value>
 
 If set, add B<replication=value> to the conninfo string.
@@ -2204,14 +2209,21 @@ sub background_psql
        my $replication = $params{replication};
        my $timeout = undef;
 
+       # Build the connection string.
+       my $psql_connstr;
+       if (defined $params{connstr})
+       {
+               $psql_connstr = $params{connstr};
+       }
+       else
+       {
+               $psql_connstr = $self->connstr($dbname);
+       }
+       $psql_connstr .= defined $replication ? " replication=$replication" : "";
+
        my @psql_params = (
                $self->installed_command('psql'),
-               '-XAtq',
-               '-d',
-               $self->connstr($dbname)
-                 . (defined $replication ? " replication=$replication" : ""),
-               '-f',
-               '-');
+               '-XAtq', '-d', $psql_connstr, '-f', '-');
 
        $params{on_error_stop} = 1 unless defined $params{on_error_stop};
        $timeout = $params{timeout} if defined $params{timeout};