Обсуждение: pgsql: Properly detect read and write errors in pg_dump/dumpall, and pg
Properly detect read and write errors in pg_dump/dumpall, and pg_restore Previously some I/O errors were ignored. Branch ------ master Details ------- http://git.postgresql.org/pg/commitdiff/14ea89366fe321609afc5838ff9fe2ded1cd707d Modified Files -------------- src/bin/pg_dump/compress_io.c | 82 +++++++++++++++++++----------- src/bin/pg_dump/compress_io.h | 4 +- src/bin/pg_dump/pg_backup.h | 4 +- src/bin/pg_dump/pg_backup_archiver.c | 83 ++++++++++++++----------------- src/bin/pg_dump/pg_backup_archiver.h | 26 ++++++++-- src/bin/pg_dump/pg_backup_custom.c | 88 ++++++++++++++------------------- src/bin/pg_dump/pg_backup_db.c | 2 +- src/bin/pg_dump/pg_backup_directory.c | 51 +++++++++---------- src/bin/pg_dump/pg_backup_null.c | 21 ++++---- src/bin/pg_dump/pg_backup_tar.c | 83 ++++++++++++++++++------------- 10 files changed, 237 insertions(+), 207 deletions(-)
On 2014-05-06 00:27:21 +0000, Bruce Momjian wrote:
> Properly detect read and write errors in pg_dump/dumpall, and pg_restore
>
> Previously some I/O errors were ignored.
My compiler complains about this with:
/home/andres/src/postgresql/src/bin/pg_dump/pg_backup_tar.c: In function ‘_tarReadRaw’:
/home/andres/src/postgresql/src/bin/pg_dump/pg_backup_archiver.h:48:19: warning: passing argument 1 of ‘gzeof’ from
incompatiblepointer type
#define GZEOF(fh) gzeof(fh)
^
/home/andres/src/postgresql/src/bin/pg_dump/pg_backup_tar.c:561:24: note: in expansion of macro ‘GZEOF’
if (res != len && !GZEOF(fh))
^
In file included from /home/andres/src/postgresql/src/bin/pg_dump/pg_backup_archiver.h:44:0,
from /home/andres/src/postgresql/src/bin/pg_dump/pg_backup_tar.c:32:
/usr/include/zlib.h:1475:21: note: expected ‘gzFile’ but argument is of type ‘struct FILE *’
ZEXTERN int ZEXPORT gzeof OF((gzFile file));
^
You're passing fh to GZEOF instead of th->zFH if I see that correctly.
Greetings,
Andres Freund
--
Andres Freund http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services
On Tue, May 6, 2014 at 05:52:59PM +0200, Andres Freund wrote: > On 2014-05-06 00:27:21 +0000, Bruce Momjian wrote: > > Properly detect read and write errors in pg_dump/dumpall, and pg_restore > > > > Previously some I/O errors were ignored. > > My compiler complains about this with: > > /home/andres/src/postgresql/src/bin/pg_dump/pg_backup_tar.c: In function ‘_tarReadRaw’: > /home/andres/src/postgresql/src/bin/pg_dump/pg_backup_archiver.h:48:19: warning: passing argument 1 of ‘gzeof’ from incompatiblepointer type > #define GZEOF(fh) gzeof(fh) > ^ > /home/andres/src/postgresql/src/bin/pg_dump/pg_backup_tar.c:561:24: note: in expansion of macro ‘GZEOF’ > if (res != len && !GZEOF(fh)) > ^ > In file included from /home/andres/src/postgresql/src/bin/pg_dump/pg_backup_archiver.h:44:0, > from /home/andres/src/postgresql/src/bin/pg_dump/pg_backup_tar.c:32: > /usr/include/zlib.h:1475:21: note: expected ‘gzFile’ but argument is of type ‘struct FILE *’ > ZEXTERN int ZEXPORT gzeof OF((gzFile file)); > ^ > You're passing fh to GZEOF instead of th->zFH if I see that correctly. There were a few bugs, all fixed. Thanks. -- Bruce Momjian <bruce@momjian.us> http://momjian.us EnterpriseDB http://enterprisedb.com + Everyone has their own god. +