Un-break compression of plain-text output format in pg_dump.
authorTom Lane <tgl@sss.pgh.pa.us>
Sun, 25 Sep 2011 17:59:17 +0000 (13:59 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Sun, 25 Sep 2011 17:59:17 +0000 (13:59 -0400)
pg_dump has historically understood -Z with no -F switch to mean that
it should emit a gzip-compressed version of its plain text output.
This got broken through a misunderstanding in the 9.1 patch that added
directory output format.  Restore the former behavior.

Per complaint from Roger Niederland and diagnosis by Adrian Klaver.

src/bin/pg_dump/pg_dump.c

index 56db6e54c143b00def57b0892331f9124f9cdd69..b4ab19d5e050ff624d78151ad8d94561dd92843d 100644 (file)
@@ -528,20 +528,14 @@ main(int argc, char **argv)
        exit(1);
    }
 
+   /* Identify archive format to emit */
    archiveFormat = parseArchiveFormat(format, &archiveMode);
 
    /* archiveFormat specific setup */
    if (archiveFormat == archNull)
        plainText = 1;
 
-   /*
-    * Ignore compression level for plain format. XXX: This is a bit
-    * inconsistent, tar-format throws an error instead.
-    */
-   if (archiveFormat == archNull)
-       compressLevel = 0;
-
-   /* Custom and directory formats are compressed by default */
+   /* Custom and directory formats are compressed by default, others not */
    if (compressLevel == -1)
    {
        if (archiveFormat == archCustom || archiveFormat == archDirectory)
@@ -550,7 +544,7 @@ main(int argc, char **argv)
            compressLevel = 0;
    }
 
-   /* open the output file */
+   /* Open the output file */
    g_fout = CreateArchive(filename, archiveFormat, compressLevel, archiveMode);
 
    if (g_fout == NULL)