On Sat, 11 Jan 2025 at 11:19, jian he <jian.universal...@gmail.com> wrote: >
Thanks Jian for the review and testing. > 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. Okay. I will add an error check before connectDatabase call in the next version. > > 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. Thanks. I am also working on test cases. I will add all error test cases in the next version and will include these two also. > > 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. Okay. I will fix it. -- Thanks and Regards Mahendra Singh Thalor EnterpriseDB: http://www.enterprisedb.com