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.
v7-0001-misc-tests-for-pg_dumpall.no-cfbot
Description: Binary data