Commit 11e9caff authored by Andrew Dunstan's avatar Andrew Dunstan

In PostgresNode.pm, don't pass SQL to psql on the command line

The Msys shell mangles certain patterns in its command line, so avoid
handing arbitrary SQL to psql on the command line and instead use
IPC::Run's redirection facility for stdin. This pattern is already
mostly whats used, but query_poll_until() was not doing the right thing.

Problem discovered on the buildfarm when a new TAP test failed on msys.
parent 3590680b
......@@ -2127,7 +2127,7 @@ sub poll_query_until
my $cmd = [
$self->installed_command('psql'),
'-XAt', '-c', $query, '-d', $self->connstr($dbname)
'-XAt', '-d', $self->connstr($dbname)
];
my ($stdout, $stderr);
my $max_attempts = 180 * 10;
......@@ -2135,7 +2135,8 @@ sub poll_query_until
while ($attempts < $max_attempts)
{
my $result = IPC::Run::run $cmd, '>', \$stdout, '2>', \$stderr;
my $result = IPC::Run::run $cmd, '<', \$query,
'>', \$stdout, '2>', \$stderr;
$stdout =~ s/\r\n/\n/g if $Config{osname} eq 'msys';
chomp($stdout);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment