I'm working through the code coverage challenges for pg_dump and thought
I'd take on an easy one- pg_backup_tar.c.  Unfortunately, that turned
out to be not quite so simple as I had hoped.

As far as I can see, pg_dump's tar format doesn't support either writing
out or reading in compressed files, however, there's a bunch of

#ifdef HAVE_LIBZ

code in pg_backup_tar.c.

Trying to create a compressed tar backup using:

pg_dump -Ft -Z5 -f test.tar.gz

Results in:

pg_dump: [tar archiver] compression is not supported by tar archive format

Running it without -Z5, then compressing the file and giving it to
pg_restore (even with -Ft) results in:

pg_restore -Ft test.tar.gz
pg_restore: [tar archiver] corrupt tar header found in�'W (expected 0, computed 
63963) file position 512

(without -Ft, you get:

pg_restore test.tar.gz
pg_restore: [archiver] input file does not appear to be a valid archive


So, am I missing something here?  The comments at the top of
pg_backup_tar.c indicate that it was copied from pg_backup_file.c, but
if we're not going to support compressed tar files, then we should
really rip that code out, otherwise it's just confusing.

If I'm not missing anything and this is really just dead code, then I'm
willing to look at ripping that code out once I'm through the current
project of providing decent test coverage to pg_dump, but this does seem
like it'd be perfect project for a relative newcomer to hacking on PG..



Attachment: signature.asc
Description: Digital signature

Reply via email to