Subject: Default compression level for custom format in pg_dump ?

From: Grzegorz Szpetkowski <[email-masked]>
Date: Mon, 18 Apr 2011 02:26:02 +0200

Hi,

I can't find in documentation what is implicit default compression
level for pg_dump format. There
(http://www.postgresql.org/docs/9.0/static/app-pgdump.html) is only:

"This format is also compressed by default."

"For the custom archive format, this specifies compression of
individual table-data segments, and the default is to compress at a
moderate level."

 After some some reaserching I found it actually depends on zlib
library behaviour. In other words pg_dump is "zlib aware" and actually
it is 6 and it's constant value:

pg_dump someDB -Fc -f dump
pg_dump someDB -Fc -Z-1 dump (I know that -1 is not "legal", but it works)
pg_dump someDB -Fc -Z6 -f dump

In pg_dump.c there is (main function):

int compressLevel = -1;
...
else if (pg_strcasecmp(format, "c") == 0 || pg_strcasecmp(format,
"custom") == 0)
   g_fout = CreateArchive(filename, archCustom, compressLevel, archModeWrite);

Then "it goes to" zlib library. According to http://www.zlib.net/manual.html:

"The compression level must be Z_DEFAULT_COMPRESSION, or between 0 and
9: 1 gives best speed, 9 gives best compression, 0 gives no
compression at all (the input data is simply copied a block at a
time). Z_DEFAULT_COMPRESSION requests a default compromise between
speed and compression (currently equivalent to level 6)."

#define Z_DEFAULT_COMPRESSION  (-1) (zlib.h)

What do you think about adding some clarification in PostgreSQL doc ?

Regads,
Grzegorz Szpetkowski

---

From: Alvaro Herrera <[email-masked]>
Date: Mon, 18 Apr 2011 13:46:06 -0300

> What do you think about adding some clarification in PostgreSQL doc ?

Can this behavior be tuned externally? Say by an environment var or
something.  If it can, then maybe it's worth documenting it a bit more
fully (including the tuning option).  Otherwise I think the current docs
are enough.

-- 
Álvaro Herrera <[email-masked]>
The PostgreSQL Company - Command Prompt, Inc.
PostgreSQL Replication, Consulting, Custom Development, 24x7 support