15
15
*
16
16
*
17
17
* IDENTIFICATION
18
- * $PostgreSQL: pgsql/src/bin/pg_dump/pg_backup_archiver.c,v 1.124 2006/02/13 21 :30:19 tgl Exp $
18
+ * $PostgreSQL: pgsql/src/bin/pg_dump/pg_backup_archiver.c,v 1.125 2006/02/14 23 :30:43 tgl Exp $
19
19
*
20
20
*-------------------------------------------------------------------------
21
21
*/
@@ -214,7 +214,12 @@ RestoreArchive(Archive *AHX, RestoreOptions *ropt)
214
214
dumpTimestamp (AH , "Started on" , AH -> createDate );
215
215
216
216
if (ropt -> single_txn )
217
- ahprintf (AH , "BEGIN;\n\n" );
217
+ {
218
+ if (AH -> connection )
219
+ StartTransaction (AH );
220
+ else
221
+ ahprintf (AH , "BEGIN;\n\n" );
222
+ }
218
223
219
224
/*
220
225
* Establish important parameter values right away.
@@ -377,7 +382,12 @@ RestoreArchive(Archive *AHX, RestoreOptions *ropt)
377
382
}
378
383
379
384
if (ropt -> single_txn )
380
- ahprintf (AH , "COMMIT;\n\n" );
385
+ {
386
+ if (AH -> connection )
387
+ CommitTransaction (AH );
388
+ else
389
+ ahprintf (AH , "COMMIT;\n\n" );
390
+ }
381
391
382
392
if (AH -> public .verbose )
383
393
dumpTimestamp (AH , "Completed on" , time (NULL ));
@@ -652,10 +662,13 @@ EndBlob(Archive *AHX, Oid oid)
652
662
void
653
663
StartRestoreBlobs (ArchiveHandle * AH )
654
664
{
655
- if (AH -> connection )
656
- StartTransaction (AH );
657
- else
658
- ahprintf (AH , "BEGIN;\n\n" );
665
+ if (!AH -> ropt -> single_txn )
666
+ {
667
+ if (AH -> connection )
668
+ StartTransaction (AH );
669
+ else
670
+ ahprintf (AH , "BEGIN;\n\n" );
671
+ }
659
672
660
673
AH -> blobCount = 0 ;
661
674
}
@@ -666,10 +679,13 @@ StartRestoreBlobs(ArchiveHandle *AH)
666
679
void
667
680
EndRestoreBlobs (ArchiveHandle * AH )
668
681
{
669
- if (AH -> connection )
670
- CommitTransaction (AH );
671
- else
672
- ahprintf (AH , "COMMIT;\n\n" );
682
+ if (!AH -> ropt -> single_txn )
683
+ {
684
+ if (AH -> connection )
685
+ CommitTransaction (AH );
686
+ else
687
+ ahprintf (AH , "COMMIT;\n\n" );
688
+ }
673
689
674
690
ahlog (AH , 1 , "restored %d large objects\n" , AH -> blobCount );
675
691
}
0 commit comments