*** a/doc/src/sgml/ref/pg_dumpall.sgml --- b/doc/src/sgml/ref/pg_dumpall.sgml *************** *** 196,201 **** PostgreSQL documentation --- 196,217 ---- + + + + Do not wait forever to acquire shared table locks at the beginning of + the dump. Instead fail if unable to lock a table within the specified + timeout. The timeout may be + specified in any of the formats accepted by SET + statement_timeout. (Allowed values vary depending on the server + version you are dumping from, but an integer number of milliseconds + is accepted by all versions since 7.3. This option is ignored when + dumping from a pre-7.3 server.) + + + + + *** a/src/bin/pg_dump/pg_dumpall.c --- b/src/bin/pg_dump/pg_dumpall.c *************** *** 120,125 **** main(int argc, char *argv[]) --- 120,126 ---- {"disable-triggers", no_argument, &disable_triggers, 1}, {"no-tablespaces", no_argument, &no_tablespaces, 1}, {"use-set-session-authorization", no_argument, &use_setsessauth, 1}, + {"lock-wait-timeout", required_argument, NULL, 2}, {NULL, 0, NULL, 0} }; *************** *** 305,310 **** main(int argc, char *argv[]) --- 306,316 ---- case 0: break; + case 2: + appendPQExpBuffer(pgdumpopts, " --lock-wait-timeout="); + appendPQExpBuffer(pgdumpopts, optarg); + break; + default: fprintf(stderr, _("Try \"%s --help\" for more information.\n"), progname); exit(1); *************** *** 488,493 **** help(void) --- 494,500 ---- printf(_(" -f, --file=FILENAME output file name\n")); printf(_(" --help show this help, then exit\n")); printf(_(" --version output version information, then exit\n")); + printf(_(" --lock-wait-timeout=TIMEOUT fail after waiting TIMEOUT for a table lock\n")); printf(_("\nOptions controlling the output content:\n")); printf(_(" -a, --data-only dump only the data, not the schema\n")); printf(_(" -c, --clean clean (drop) databases prior to create\n"));