diff --git a/src/bin/pg_dump/pg_backup.h b/src/bin/pg_dump/pg_backup.h index 07b4e61..fbe4aef 100644 *** a/src/bin/pg_dump/pg_backup.h --- /bsrc/bin/pg_dump/pg_backup.h *************** typedef struct _restoreOptions *** 87,92 **** --- 87,93 ---- * restore */ int use_setsessauth;/* Use SET SESSION AUTHORIZATION commands * instead of OWNER TO */ + bool disable_statement_timeout; /* Do we disable statement_timeout? */ char *superuser; /* Username to use as superuser */ int dataOnly; int dropSchema; diff --git a/src/bin/pg_dump/pg_backup_archiver.c b/src/bin/pg_dump/pg_backup_archiver.c index a4b442e..8ce6a43 100644 *** a/src/bin/pg_dump/pg_backup_archiver.c --- /bsrc/bin/pg_dump/pg_backup_archiver.c *************** RestoreArchive(Archive *AHX, RestoreOpti *** 220,225 **** --- 220,230 ---- } /* + * Disable statement_timeout in archive for pg_restore/psql + */ + if (ropt->disable_statement_timeout) + ahprintf(AH, "SET statement_timeout = 0;\n"); + /* * Establish important parameter values right away. */ _doSetFixedOutputState(AH); *************** NewRestoreOptions(void) *** 465,470 **** --- 470,476 ---- opts->format = archUnknown; opts->suppressDumpWarnings = false; opts->exit_on_error = false; + opts->disable_statement_timeout = true; return opts; } diff --git a/src/bin/pg_dump/pg_dump.c b/src/bin/pg_dump/pg_dump.c index ed1b33d..bf9365a 100644 *** a/src/bin/pg_dump/pg_dump.c --- /bsrc/bin/pg_dump/pg_dump.c *************** main(int argc, char **argv) *** 225,230 **** --- 225,231 ---- int outputNoOwner = 0; static int use_setsessauth = 0; static int disable_triggers = 0; + static int use_statement_timeout = 0; char *outputSuperuser = NULL; RestoreOptions *ropt; *************** main(int argc, char **argv) *** 267,272 **** --- 268,274 ---- {"disable-dollar-quoting", no_argument, &disable_dollar_quoting, 1}, {"disable-triggers", no_argument, &disable_triggers, 1}, {"use-set-session-authorization", no_argument, &use_setsessauth, 1}, + {"use-statement-timeout", no_argument, &use_statement_timeout, 1}, {NULL, 0, NULL, 0} }; *************** main(int argc, char **argv) *** 419,424 **** --- 421,428 ---- disable_triggers = 1; else if (strcmp(optarg, "use-set-session-authorization") == 0) use_setsessauth = 1; + else if (strcmp(optarg, "use-statement-timeout") == 0) + use_statement_timeout = 1; else { fprintf(stderr, *************** main(int argc, char **argv) *** 571,576 **** --- 575,583 ---- */ do_sql_command(g_conn, "BEGIN"); + if (!use_statement_timeout) + do_sql_command(g_conn, "SET statement_timeout = 0;"); + do_sql_command(g_conn, "SET TRANSACTION ISOLATION LEVEL SERIALIZABLE"); /* Select the appropriate subquery to convert user IDs to names */ *************** help(const char *progname) *** 771,776 **** --- 778,784 ---- printf(_(" --use-set-session-authorization\n" " use SESSION AUTHORIZATION commands instead of\n" " ALTER OWNER commands to set ownership\n")); + printf(_(" --use-statement-timeout respect statement_timeout\n")); printf(_("\nConnection options:\n")); printf(_(" -h, --host=HOSTNAME database server host or socket directory\n")); diff --git a/src/bin/pg_dump/pg_restore.c b/src/bin/pg_dump/pg_restore.c index 0e8433f..b1367c5 100644 *** a/src/bin/pg_dump/pg_restore.c --- /bsrc/bin/pg_dump/pg_restore.c *************** main(int argc, char **argv) *** 77,82 **** --- 77,83 ---- static int use_setsessauth = 0; static int disable_triggers = 0; static int no_data_for_failed_tables = 0; + static int use_statement_timeout = 0; struct option cmdopts[] = { {"clean", 0, NULL, 'c'}, *************** main(int argc, char **argv) *** 113,118 **** --- 114,120 ---- {"use-set-session-authorization", no_argument, &use_setsessauth, 1}, {"disable-triggers", no_argument, &disable_triggers, 1}, {"no-data-for-failed-tables", no_argument, &no_data_for_failed_tables, 1}, + {"use-statement-timeout", no_argument, &use_statement_timeout, 1}, {NULL, 0, NULL, 0} }; *************** main(int argc, char **argv) *** 245,250 **** --- 247,254 ---- use_setsessauth = 1; else if (strcmp(optarg, "disable-triggers") == 0) disable_triggers = 1; + else if (strcmp(optarg, "use-statement-timeout") == 0) + use_statement_timeout = 1; else { fprintf(stderr, *************** main(int argc, char **argv) *** 292,297 **** --- 296,302 ---- opts->disable_triggers = disable_triggers; opts->use_setsessauth = use_setsessauth; opts->noDataForFailedTables = no_data_for_failed_tables; + opts->disable_statement_timeout = !!use_statement_timeout; if (opts->formatName) { *************** usage(const char *progname) *** 403,408 **** --- 408,414 ---- " created\n")); printf(_(" -1, --single-transaction\n" " restore as a single transaction\n")); + printf(_(" --use-statement-timeout respect statement_timeout\n")); printf(_("\nConnection options:\n")); printf(_(" -h, --host=HOSTNAME database server host or socket directory\n"));