diff --git a/src/bin/pg_dump/pg_restore.c b/src/bin/pg_dump/pg_restore.c index fb08e6bb8e..41137a1b7d 100644 --- a/src/bin/pg_dump/pg_restore.c +++ b/src/bin/pg_dump/pg_restore.c @@ -325,6 +325,22 @@ main(int argc, char **argv) exit_nicely(1); } + if (numWorkers <= 0) + { + fprintf(stderr, _("%s: invalid number of parallel jobs\n"), progname); + exit(1); + } + + /* See comments in pg_dump.c */ +#ifdef WIN32 + if (numWorkers > MAXIMUM_WAIT_OBJECTS) + { + fprintf(stderr, _("%s: maximum number of parallel jobs is %d\n"), + progname, MAXIMUM_WAIT_OBJECTS); + exit(1); + } +#endif + /* Can't do single-txn mode with multiple connections */ if (opts->single_txn && numWorkers > 1) { @@ -397,16 +413,6 @@ main(int argc, char **argv) if (opts->tocFile) SortTocFromFile(AH); - /* See comments in pg_dump.c */ -#ifdef WIN32 - if (numWorkers > MAXIMUM_WAIT_OBJECTS) - { - fprintf(stderr, _("%s: maximum number of parallel jobs is %d\n"), - progname, MAXIMUM_WAIT_OBJECTS); - exit(1); - } -#endif - AH->numWorkers = numWorkers; if (opts->tocSummary)