diff options
author | Bruce Momjian <bruce@momjian.us> | 2014-05-05 20:27:16 -0400 |
---|---|---|
committer | Bruce Momjian <bruce@momjian.us> | 2014-05-05 20:27:16 -0400 |
commit | 14ea89366fe321609afc5838ff9fe2ded1cd707d (patch) | |
tree | 16e038cf94b05cdcb505cfe54939bb37c2f146f2 /src/bin/pg_dump/pg_backup_null.c | |
parent | 768fb0032655e37810ab37a22f870af85ab1108c (diff) | |
download | postgresql-14ea89366fe321609afc5838ff9fe2ded1cd707d.tar.gz postgresql-14ea89366fe321609afc5838ff9fe2ded1cd707d.zip |
Properly detect read and write errors in pg_dump/dumpall, and pg_restore
Previously some I/O errors were ignored.
Diffstat (limited to 'src/bin/pg_dump/pg_backup_null.c')
-rw-r--r-- | src/bin/pg_dump/pg_backup_null.c | 21 |
1 files changed, 10 insertions, 11 deletions
diff --git a/src/bin/pg_dump/pg_backup_null.c b/src/bin/pg_dump/pg_backup_null.c index c321068b4ef..3bce5885d09 100644 --- a/src/bin/pg_dump/pg_backup_null.c +++ b/src/bin/pg_dump/pg_backup_null.c @@ -30,12 +30,11 @@ #include "libpq/libpq-fs.h" - -static size_t _WriteData(ArchiveHandle *AH, const void *data, size_t dLen); -static size_t _WriteBlobData(ArchiveHandle *AH, const void *data, size_t dLen); +static void _WriteData(ArchiveHandle *AH, const void *data, size_t dLen); +static void _WriteBlobData(ArchiveHandle *AH, const void *data, size_t dLen); static void _EndData(ArchiveHandle *AH, TocEntry *te); static int _WriteByte(ArchiveHandle *AH, const int i); -static size_t _WriteBuf(ArchiveHandle *AH, const void *buf, size_t len); +static void _WriteBuf(ArchiveHandle *AH, const void *buf, size_t len); static void _CloseArchive(ArchiveHandle *AH); static void _PrintTocData(ArchiveHandle *AH, TocEntry *te, RestoreOptions *ropt); static void _StartBlobs(ArchiveHandle *AH, TocEntry *te); @@ -84,19 +83,19 @@ InitArchiveFmt_Null(ArchiveHandle *AH) /* * Called by dumper via archiver from within a data dump routine */ -static size_t +static void _WriteData(ArchiveHandle *AH, const void *data, size_t dLen) { - /* Just send it to output */ + /* Just send it to output, ahwrite() already errors on failure */ ahwrite(data, 1, dLen, AH); - return dLen; + return; } /* * Called by dumper via archiver from within a data dump routine * We substitute this for _WriteData while emitting a BLOB */ -static size_t +static void _WriteBlobData(ArchiveHandle *AH, const void *data, size_t dLen) { if (dLen > 0) @@ -112,7 +111,7 @@ _WriteBlobData(ArchiveHandle *AH, const void *data, size_t dLen) destroyPQExpBuffer(buf); } - return dLen; + return; } static void @@ -220,11 +219,11 @@ _WriteByte(ArchiveHandle *AH, const int i) return 0; } -static size_t +static void _WriteBuf(ArchiveHandle *AH, const void *buf, size_t len) { /* Don't do anything */ - return len; + return; } static void |