in src/bin/pg_dump/pg_dumpall.c main
i think you need do

    archDumpFormat = parseDumpFormat(formatName);
    /*
     * Open the output file if required, otherwise use stdout.  If required,
     * then create new files with global.dat and map.dat names.
     */
    if (archDumpFormat != archNull)
    {
        char    toc_path[MAXPGPATH];
        /*
         * If directory/tar/custom format is specified then we must provide the
         * file name to create one main directory.
         */
        if (!filename || strcmp(filename, "") == 0)
            pg_fatal("no output directory specified");
        /* TODO: accept the empty existing directory. */
        if (mkdir(filename, 0700) < 0)
            pg_fatal("could not create directory \"%s\": %m",
                     filename);
        snprintf(toc_path, MAXPGPATH, "%s/global.dat", filename);
        OPF = fopen(toc_path, "w");
        if (!OPF)
            pg_fatal("could not open global.dat file: %s", strerror(errno));
    }
    else if (filename)
    {
        OPF = fopen(filename, PG_BINARY_W);
        if (!OPF)
            pg_fatal("could not open output file \"%s\": %m",
                     filename);
    }
    else
        OPF = stdout;

before connectDatabase call.

otherwise if the cluster is not setting up.
``pg_dumpall --format=d``
error would be about connection error, not
"pg_dumpall: error: no output directory specified"

we want ``pg_dumpall --format`` invalid options
to error out even if the cluster is not setting up.

attached are two invalid option test cases.

you also need change
     <varlistentry>
      <term><option>-f <replaceable
class="parameter">filename</replaceable></option></term>
      <term><option>--file=<replaceable
class="parameter">filename</replaceable></option></term>
      <listitem>
       <para>
        Send output to the specified file.  If this is omitted, the
        standard output is used.
       </para>
      </listitem>
     </varlistentry>
?

since if --format=d,
<option>--file=<replaceable class="parameter">filename</replaceable></option>
can not be omitted.

Attachment: v7-0001-misc-tests-for-pg_dumpall.no-cfbot
Description: Binary data

Reply via email to