Commit e7873b74 authored by Heikki Linnakangas's avatar Heikki Linnakangas

Open output file before sleeping in pg_recvlogical.

Let's complain about e.g an invalid path or permission problem sooner rather
than later. Before this patch, we would only try to open the output file
after receiving the first decoded message from the server.
parent 07a4a93a
......@@ -315,6 +315,23 @@ StreamLog(void)
}
output_reopen = false;
/* open the output file, if not open yet */
if (outfd == -1)
{
if (strcmp(outfile, "-") == 0)
outfd = fileno(stdout);
else
outfd = open(outfile, O_CREAT | O_APPEND | O_WRONLY | PG_BINARY,
S_IRUSR | S_IWUSR);
if (outfd == -1)
{
fprintf(stderr,
_("%s: could not open log file \"%s\": %s\n"),
progname, outfile, strerror(errno));
goto error;
}
}
r = PQgetCopyData(conn, &copybuf, 1);
if (r == 0)
{
......@@ -479,23 +496,6 @@ StreamLog(void)
output_written_lsn = Max(temp, output_written_lsn);
}
/* open the output file, if not open yet */
if (outfd == -1)
{
if (strcmp(outfile, "-") == 0)
outfd = fileno(stdout);
else
outfd = open(outfile, O_CREAT | O_APPEND | O_WRONLY | PG_BINARY,
S_IRUSR | S_IWUSR);
if (outfd == -1)
{
fprintf(stderr,
_("%s: could not open log file \"%s\": %s\n"),
progname, outfile, strerror(errno));
goto error;
}
}
bytes_left = r - hdr_len;
bytes_written = 0;
......
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