]> granicus.if.org Git - postgresql/commitdiff
pg_restore failed to restore blobs if -X disable-triggers is specified.
authorTom Lane <tgl@sss.pgh.pa.us>
Sun, 9 Mar 2003 19:38:59 +0000 (19:38 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Sun, 9 Mar 2003 19:38:59 +0000 (19:38 +0000)
src/bin/pg_dump/pg_backup_archiver.c

index c89b53bc500bd480db19372d891b29f99d7cee9a..3a045e830b8af597a603d3d85b83a2f50b94effb 100644 (file)
@@ -15,7 +15,7 @@
  *
  *
  * IDENTIFICATION
- *             $Header: /cvsroot/pgsql/src/bin/pg_dump/pg_backup_archiver.c,v 1.62.2.2 2003/02/01 22:07:14 tgl Exp $
+ *             $Header: /cvsroot/pgsql/src/bin/pg_dump/pg_backup_archiver.c,v 1.62.2.3 2003/03/09 19:38:59 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -293,7 +293,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");
 
@@ -445,6 +446,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);
 
@@ -508,6 +513,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);