]> granicus.if.org Git - postgresql/commit
Fix pg_dump's errno checking for zlib I/O
authorAlvaro Herrera <alvherre@alvh.no-ip.org>
Wed, 2 Aug 2017 22:26:26 +0000 (18:26 -0400)
committerAlvaro Herrera <alvherre@alvh.no-ip.org>
Wed, 2 Aug 2017 22:26:59 +0000 (18:26 -0400)
commit4d57e83816778c6f61ea35c697f937a6f9c3c3de
treeb1cebe54a1823f771d2fe00aa52499e360272ebb
parent80215156f9a10dfcacfcef15be35ebb0d79300b5
Fix pg_dump's errno checking for zlib I/O

Some error reports were reporting strerror(errno), which for some error
conditions coming from zlib are wrong, resulting in confusing reports
such as
  pg_restore: [compress_io] could not read from input file: Success
which makes no sense.  To correctly extract the error message we need to
use gzerror(), so let's do that.

This isn't as comprehensive or as neat as I would like, but at least it
should improve things in many common cases.  The zlib abstraction in
compress_io does not seem to be applied consistently enough; we could
perhaps improve that, but it seems master-only material, not a bug fix
for back-patching.

This problem goes back all the way, but I decided to apply back to 9.4
only, because older branches don't contain commit 14ea89366 which this
change depends on.

Authors: Vladimir Kunschikov, Álvaro Herrera
Discussion: https://postgr.es/m/1498120508308.9826@infotecs.ru
src/bin/pg_dump/compress_io.c
src/bin/pg_dump/compress_io.h
src/bin/pg_dump/pg_backup_directory.c
src/bin/pg_dump/pg_backup_tar.c