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};