diff options
Diffstat (limited to 'src/bin/pg_dump/pg_backup_archiver.c')
-rw-r--r-- | src/bin/pg_dump/pg_backup_archiver.c | 52 |
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; |