On Thu, Dec 29, 2016 at 12:35 AM, Michael Paquier <michael.paqu...@gmail.com
> On Wed, Dec 28, 2016 at 9:31 PM, Magnus Hagander <mag...@hagander.net>
> > Conditional tests? It probably wouldn't hurt to have them, but that
> would be
> > something more generic (like we'd need something to actually validate it
> > but it would make sense to have a test that, with compression enabled,
> > verify if the uncompressed file turns out to be exactly 16Mb for
> Looking at if the build is compiled with libz via SQL or using
> pg_config is the way to go here. A minimum is doable.
> >> A couple of things to be aware of though:
> >> - gzopen, gzwrite and gzclose are used to handle the gz files. That's
> >> unconsistent with the tar method that is based on mainly deflate() and
> >> more low level routines.
> > But chosen for simplicity, I assume?
> Yep. That's quite in-line with the current code.
> >> - I have switched the directory method to use a file pointer instead
> >> of a file descriptor as gzwrite returns int as the number of
> >> uncompressed bytes written.
> > I don't really follow that reasoning :) Why does the directory method
> > to change to use a filepointer because of that?
> The only reason is that write() returns size_t and fwrite returns int,
> while gzwrite() returns int. It seems more consistent to use fwrite()
> in this case. Or we don't bother about my nitpicking and just cast
I can at least partially see that argument, but your patch doesn't actually
use fwrite(), it uses write() with fileno()...
But also, on my platform (debian jessie), fwrite() returns size_t, and
write() returns ssize_t. So those are apparently both different from what
your platform does - which one did you get that one?
(gzwrite does return int)