mirror of
https://github.com/postgres/postgres.git
synced 2025-04-29 13:56:47 +03:00
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.
This commit is contained in:
parent
07a4a93a0e
commit
e7873b74d9
@ -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, ©buf, 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;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user