]> granicus.if.org Git - postgresql/commitdiff
Add pg_basebackup -z option for compression with default level
authorPeter Eisentraut <peter_e@gmx.net>
Sun, 29 May 2011 22:02:02 +0000 (01:02 +0300)
committerPeter Eisentraut <peter_e@gmx.net>
Sun, 29 May 2011 22:02:02 +0000 (01:02 +0300)
doc/src/sgml/ref/pg_basebackup.sgml
src/bin/pg_basebackup/pg_basebackup.c

index 32fa9f858ca8da8f59d60306f1d2b885cc30d125..47dce43b1948e2b53860b2be73fc2acb25386ea3 100644 (file)
@@ -168,13 +168,27 @@ PostgreSQL documentation
       </listitem>
      </varlistentry>
 
+     <varlistentry>
+      <term><option>-z</option></term>
+      <term><option>--gzip</option></term>
+      <listitem>
+       <para>
+        Enables gzip compression of tar file output, with the default
+        compression level. Compression is only available when using
+        the tar format.
+       </para>
+      </listitem>
+     </varlistentry>
+
      <varlistentry>
       <term><option>-Z <replaceable class="parameter">level</replaceable></option></term>
       <term><option>--compress=<replaceable class="parameter">level</replaceable></option></term>
       <listitem>
        <para>
-        Enables gzip compression of tar file output. Compression is only
-        available when using the tar format.
+        Enables gzip compression of tar file output, and specifies the
+        compression level (1 through 9, 9 being best
+        compression). Compression is only available when using the tar
+        format.
        </para>
       </listitem>
      </varlistentry>
@@ -393,11 +407,11 @@ PostgreSQL documentation
   </para>
 
   <para>
-   To create a backup of the local server with one maximum compressed
+   To create a backup of the local server with one compressed
    tar file for each tablespace, and store it in the directory
    <filename>backup</filename>, showing a progress report while running:
 <screen>
-<prompt>$</prompt> <userinput>pg_basebackup -D backup -Ft -Z9 -P</userinput>
+<prompt>$</prompt> <userinput>pg_basebackup -D backup -Ft -z -P</userinput>
 </screen>
   </para>
 
index 2af7b50586f0a0b5efd94e4bb954f280a6e9fa0e..036d3ae762775e9d7ff652e4500801d5830289ce 100644 (file)
@@ -126,7 +126,8 @@ usage(void)
        printf(_("  -D, --pgdata=DIRECTORY   receive base backup into directory\n"));
        printf(_("  -F, --format=p|t         output format (plain, tar)\n"));
        printf(_("  -x, --xlog               include required WAL files in backup\n"));
-       printf(_("  -Z, --compress=0-9       compress tar output\n"));
+       printf(_("  -z, --gzip               compress tar output\n"));
+       printf(_("  -Z, --compress=0-9       compress tar output with given compression level\n"));
        printf(_("\nGeneral options:\n"));
        printf(_("  -c, --checkpoint=fast|spread\n"
                         "                           set fast or spread checkpointing\n"));
@@ -941,6 +942,7 @@ main(int argc, char **argv)
                {"format", required_argument, NULL, 'F'},
                {"checkpoint", required_argument, NULL, 'c'},
                {"xlog", no_argument, NULL, 'x'},
+               {"gzip", no_argument, NULL, 'z'},
                {"compress", required_argument, NULL, 'Z'},
                {"label", required_argument, NULL, 'l'},
                {"host", required_argument, NULL, 'h'},
@@ -1000,6 +1002,13 @@ main(int argc, char **argv)
                        case 'l':
                                label = xstrdup(optarg);
                                break;
+                       case 'z':
+#ifdef HAVE_LIBZ
+                               compresslevel = Z_DEFAULT_COMPRESSION;
+#else
+                               compresslevel = 1; /* will be rejected below */
+#endif
+                               break;
                        case 'Z':
                                compresslevel = atoi(optarg);
                                if (compresslevel <= 0 || compresslevel > 9)