aboutsummaryrefslogtreecommitdiff
path: root/src/bin/pg_dump/pg_backup_archiver.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/bin/pg_dump/pg_backup_archiver.c')
-rw-r--r--src/bin/pg_dump/pg_backup_archiver.c52
1 files changed, 28 insertions, 24 deletions
diff --git a/src/bin/pg_dump/pg_backup_archiver.c b/src/bin/pg_dump/pg_backup_archiver.c
index 0236a54478f..61397ab3ab1 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.47 2002/05/28 22:26:56 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/bin/pg_dump/pg_backup_archiver.c,v 1.48 2002/05/29 01:38:56 tgl Exp $
*
* Modifications - 28-Jun-2000 - pjw@rhyme.com.au
*
@@ -525,14 +525,15 @@ _disableTriggersIfNecessary(ArchiveHandle *AH, TocEntry *te, RestoreOptions *rop
ahprintf(AH, "-- Disable triggers\n");
/*
- * Just update the AFFECTED table, if known.
+ * Just update the AFFECTED table, if known. Otherwise update all
+ * non-system tables.
*/
if (te && te->name && strlen(te->name) > 0)
- ahprintf(AH, "UPDATE pg_class SET reltriggers = 0 "
- "WHERE oid = '%s'::regclass;\n\n",
+ ahprintf(AH, "UPDATE pg_catalog.pg_class SET reltriggers = 0 "
+ "WHERE oid = '%s'::pg_catalog.regclass;\n\n",
fmtId(te->name, false));
else
- ahprintf(AH, "UPDATE pg_class SET reltriggers = 0 FROM pg_namespace "
+ ahprintf(AH, "UPDATE pg_catalog.pg_class SET reltriggers = 0 FROM pg_catalog.pg_namespace "
"WHERE relnamespace = pg_namespace.oid AND nspname !~ '^pg_';\n\n");
/*
@@ -591,17 +592,18 @@ _enableTriggersIfNecessary(ArchiveHandle *AH, TocEntry *te, RestoreOptions *ropt
ahprintf(AH, "-- Enable triggers\n");
/*
- * Just update the AFFECTED table, if known.
+ * Just update the AFFECTED table, if known. Otherwise update all
+ * non-system tables.
*/
if (te && te->name && strlen(te->name) > 0)
- ahprintf(AH, "UPDATE pg_class SET reltriggers = "
- "(SELECT count(*) FROM pg_trigger where pg_class.oid = tgrelid) "
- "WHERE oid = '%s'::regclass;\n\n",
+ ahprintf(AH, "UPDATE pg_catalog.pg_class SET reltriggers = "
+ "(SELECT count(*) FROM pg_catalog.pg_trigger where pg_class.oid = tgrelid) "
+ "WHERE oid = '%s'::pg_catalog.regclass;\n\n",
fmtId(te->name, false));
else
- ahprintf(AH, "UPDATE pg_class SET reltriggers = "
- "(SELECT count(*) FROM pg_trigger where pg_class.oid = tgrelid) "
- "FROM pg_namespace "
+ ahprintf(AH, "UPDATE pg_catalog.pg_class SET reltriggers = "
+ "(SELECT count(*) FROM pg_catalog.pg_trigger where pg_class.oid = tgrelid) "
+ "FROM pg_catalog.pg_namespace "
"WHERE relnamespace = pg_namespace.oid AND nspname !~ '^pg_';\n\n");
/*
@@ -856,18 +858,20 @@ StartRestoreBlob(ArchiveHandle *AH, Oid oid)
void
EndRestoreBlob(ArchiveHandle *AH, Oid oid)
{
- if(AH->lo_buf_used > 0) {
- /* Write remaining bytes from the LO buffer */
- int res;
- res = lo_write(AH->connection, AH->loFd, (void *) AH->lo_buf, AH->lo_buf_used);
+ if (AH->lo_buf_used > 0)
+ {
+ /* Write remaining bytes from the LO buffer */
+ int res;
+
+ res = lo_write(AH->connection, AH->loFd, (void *) AH->lo_buf, AH->lo_buf_used);
- ahlog(AH, 5, "wrote remaining %d bytes of large object data (result = %d)\n",
- (int)AH->lo_buf_used, res);
- if (res != AH->lo_buf_used)
- die_horribly(AH, modulename, "could not write to large object (result: %d, expected: %d)\n",
- res, AH->lo_buf_used);
- AH->lo_buf_used = 0;
- }
+ ahlog(AH, 5, "wrote remaining %d bytes of large object data (result = %d)\n",
+ (int)AH->lo_buf_used, res);
+ if (res != AH->lo_buf_used)
+ die_horribly(AH, modulename, "could not write to large object (result: %d, expected: %d)\n",
+ res, AH->lo_buf_used);
+ AH->lo_buf_used = 0;
+ }
lo_close(AH->connection, AH->loFd);
AH->writingBlob = 0;
@@ -1444,7 +1448,7 @@ WriteInt(ArchiveHandle *AH, int i)
for (b = 0; b < AH->intSize; b++)
{
(*AH->WriteBytePtr) (AH, i & 0xFF);
- i = i / 256;
+ i >>= 8;
}
return AH->intSize + 1;