hi. some minor issues come to my mind when I look at it again. looking at set_null_conf, i think "if (archDumpFormat != archNull)" can be:
if (archDumpFormat != archNull) { OPF = fopen(toc_path, "w"); if (!OPF) pg_fatal("could not open global.dat file: \"%s\" for writing: %m", toc_path); } some places we use ``fopen(filename, PG_BINARY_W)``, some places we use ``fopen(filename, "w");`` kind of inconsistent... + printf(_(" -F, --format=c|d|t|p output file format (custom, directory, tar,\n" + " plain text (default))\n")); this indentation level is not right? if we look closely at the surrounding output of `pg_dumpall --help`. pg_dump.sgml --create option description: This option is ignored when emitting an archive (non-text) output file. For the archive formats, you can specify the option when you call pg_restore. in runPgDump, we have: /* * If this is non-plain format dump, then append file name and dump * format to the pg_dump command to get archive dump. */ if (archDumpFormat != archNull) { printfPQExpBuffer(&cmd, "\"%s\" -f %s %s", pg_dump_bin, dbfile, create_opts); ... } so in here, create_opts is not necessary per pg_dump.sgml above description. we can simplify it as: if (archDumpFormat != archNull) { printfPQExpBuffer(&cmd, "\"%s\" --file=%s", pg_dump_bin, dbfile); } ?