mirror of
https://github.com/postgres/postgres.git
synced 2025-05-05 09:19:17 +03:00
Change pg_restore -f- to dump to stdout instead of to ./-
Starting with PostgreSQL 12, pg_restore refuses to run when neither -d nor -f are specified (c.f. commit 413ccaa74d9a), and it also makes "-f -" mean the old implicit behavior of dumping to stdout. However, older branches write to a file called ./- when invoked like that, making it impossible to write pg_restore scripts that work across versions. This is a partial backpatch of the aforementioned commit to all older supported branches, providing an upgrade path. Discussion: https://postgr.es/m/20191006190839.GE18030@telsasoft.com
This commit is contained in:
parent
648f17879e
commit
12a51e2ebe
@ -165,8 +165,8 @@
|
|||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Specify output file for generated script, or for the listing
|
Specify output file for generated script, or for the listing
|
||||||
when used with <option>-l</option>. Default is the standard
|
when used with <option>-l</option>. Use <literal>-</literal>
|
||||||
output.
|
for the standard output, which is also the default.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
@ -1513,7 +1513,12 @@ SetOutput(ArchiveHandle *AH, const char *filename, int compression)
|
|||||||
int fn;
|
int fn;
|
||||||
|
|
||||||
if (filename)
|
if (filename)
|
||||||
fn = -1;
|
{
|
||||||
|
if (strcmp(filename, "-") == 0)
|
||||||
|
fn = fileno(stdout);
|
||||||
|
else
|
||||||
|
fn = -1;
|
||||||
|
}
|
||||||
else if (AH->FH)
|
else if (AH->FH)
|
||||||
fn = fileno(AH->FH);
|
fn = fileno(AH->FH);
|
||||||
else if (AH->fSpec)
|
else if (AH->fSpec)
|
||||||
|
@ -445,7 +445,7 @@ usage(const char *progname)
|
|||||||
|
|
||||||
printf(_("\nGeneral options:\n"));
|
printf(_("\nGeneral options:\n"));
|
||||||
printf(_(" -d, --dbname=NAME connect to database name\n"));
|
printf(_(" -d, --dbname=NAME connect to database name\n"));
|
||||||
printf(_(" -f, --file=FILENAME output file name\n"));
|
printf(_(" -f, --file=FILENAME output file name (- for stdout)\n"));
|
||||||
printf(_(" -F, --format=c|d|t backup file format (should be automatic)\n"));
|
printf(_(" -F, --format=c|d|t backup file format (should be automatic)\n"));
|
||||||
printf(_(" -l, --list print summarized TOC of the archive\n"));
|
printf(_(" -l, --list print summarized TOC of the archive\n"));
|
||||||
printf(_(" -v, --verbose verbose mode\n"));
|
printf(_(" -v, --verbose verbose mode\n"));
|
||||||
|
Loading…
x
Reference in New Issue
Block a user