From b9e8ffcd5d1a3d45b2f697ea944931f56367c86b Mon Sep 17 00:00:00 2001
From: Tom Lane <tgl@sss.pgh.pa.us>
Date: Sun, 9 Mar 2003 19:38:52 +0000
Subject: [PATCH] pg_restore failed to restore blobs if -X disable-triggers is
 specified.

---
 src/bin/pg_dump/pg_backup_archiver.c | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/src/bin/pg_dump/pg_backup_archiver.c b/src/bin/pg_dump/pg_backup_archiver.c
index 08666584299..d91f630b709 100644
--- a/src/bin/pg_dump/pg_backup_archiver.c
+++ b/src/bin/pg_dump/pg_backup_archiver.c
@@ -15,7 +15,7 @@
  *
  *
  * IDENTIFICATION
- *		$Header: /cvsroot/pgsql/src/bin/pg_dump/pg_backup_archiver.c,v 1.68 2003/02/14 19:40:42 momjian Exp $
+ *		$Header: /cvsroot/pgsql/src/bin/pg_dump/pg_backup_archiver.c,v 1.69 2003/03/09 19:38:52 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -294,7 +294,8 @@ RestoreArchive(Archive *AHX, RestoreOptions *ropt)
 					 * Maybe we can't do BLOBS, so check if this node is
 					 * for BLOBS
 					 */
-					if ((strcmp(te->desc, "BLOBS") == 0) && !_canRestoreBlobs(AH))
+					if ((strcmp(te->desc, "BLOBS") == 0) &&
+						!_canRestoreBlobs(AH))
 					{
 						ahprintf(AH, "--\n-- SKIPPED \n--\n\n");
 
@@ -446,6 +447,10 @@ _disableTriggersIfNecessary(ArchiveHandle *AH, TocEntry *te, RestoreOptions *rop
 	if (!ropt->dataOnly || !ropt->disable_triggers)
 		return;
 
+	/* Don't do it for the BLOBS TocEntry, either */
+	if (te && strcmp(te->desc, "BLOBS") == 0)
+		return;
+
 	oldUser = strdup(AH->currUser);
 	oldSchema = strdup(AH->currSchema);
 
@@ -509,6 +514,10 @@ _enableTriggersIfNecessary(ArchiveHandle *AH, TocEntry *te, RestoreOptions *ropt
 	if (!ropt->dataOnly || !ropt->disable_triggers)
 		return;
 
+	/* Don't do it for the BLOBS TocEntry, either */
+	if (te && strcmp(te->desc, "BLOBS") == 0)
+		return;
+
 	oldUser = strdup(AH->currUser);
 	oldSchema = strdup(AH->currSchema);
 
-- 
GitLab