diff -cprN head/src/bin/pg_dump/pg_backup_archiver.c work/src/bin/pg_dump/pg_backup_archiver.c *** head/src/bin/pg_dump/pg_backup_archiver.c Thu Jan 21 09:21:19 2010 --- work/src/bin/pg_dump/pg_backup_archiver.c Wed Feb 10 13:05:26 2010 *************** restore_toc_entry(ArchiveHandle *AH, Toc *** 540,553 **** te->tag); /* ! * In parallel restore, if we created the table earlier in ! * the run then we wrap the COPY in a transaction and ! * precede it with a TRUNCATE. If archiving is not on ! * this prevents WAL-logging the COPY. This obtains a ! * speedup similar to that from using single_txn mode in ! * non-parallel restores. */ ! if (is_parallel && te->created) { /* * Parallel restore is always talking directly to a --- 540,552 ---- te->tag); /* ! * If we created the table earlier in the run then we ! * wrap the COPY in a transaction and precede it with a ! * TRUNCATE. If archiving is not on this prevents WAL- ! * logging the COPY. The wrap is not needed in single_txn ! * mode because it has own transaction. */ ! if (!ropt->single_txn && te->created) { /* * Parallel restore is always talking directly to a *************** restore_toc_entry(ArchiveHandle *AH, Toc *** 586,592 **** AH->writingCopyData = false; /* close out the transaction started above */ ! if (is_parallel && te->created) CommitTransaction(AH); _enableTriggersIfNecessary(AH, te, ropt); --- 585,591 ---- AH->writingCopyData = false; /* close out the transaction started above */ ! if (!ropt->single_txn && te->created) CommitTransaction(AH); _enableTriggersIfNecessary(AH, te, ropt);