]> granicus.if.org Git - postgresql/commitdiff
Cleanup Win32 COPY handling, and move archive examples to SGML.
authorBruce Momjian <bruce@momjian.us>
Thu, 12 Aug 2004 19:03:44 +0000 (19:03 +0000)
committerBruce Momjian <bruce@momjian.us>
Thu, 12 Aug 2004 19:03:44 +0000 (19:03 +0000)
doc/src/sgml/runtime.sgml
src/backend/access/transam/xlog.c
src/backend/postmaster/pgarch.c
src/backend/utils/misc/postgresql.conf.sample
src/port/path.c

index 117a0eb21b38198110044c7841a1b39a1b21f571..438b58d9f5a66de28c060bb5fd7189ce61617b87 100644 (file)
@@ -1,5 +1,5 @@
 <!--
-$PostgreSQL: pgsql/doc/src/sgml/runtime.sgml,v 1.275 2004/08/08 20:17:33 tgl Exp $
+$PostgreSQL: pgsql/doc/src/sgml/runtime.sgml,v 1.276 2004/08/12 19:03:17 momjian Exp $
 -->
 
 <Chapter Id="runtime">
@@ -1435,16 +1435,24 @@ SET ENABLE_SEQSCAN TO OFF;
       <term><varname>archive_command</varname> (<type>string</type>)</term>
       <listitem>
        <para>
-        The shell command to execute to archive a completed segment of the
-       WAL file series.  If this is an empty string (which is the default),
-       WAL archiving is disabled.  Any <literal>%p</> in the string is
-       replaced 
-       by the absolute path of the file to archive, while any <literal>%f</>
-       is replaced by the file name only.  Write <literal>%%</> if you need
-       to embed an actual <literal>%</> character in the command.  For more
-       information see <xref linkend="backup-archiving-wal">.  This option
-       can only be set at server start or in the
-       <filename>postgresql.conf</filename> file.
+        The shell command to execute to archive a completed segment of
+        the WAL file series. If this is an empty string (the default),
+        WAL archiving is disabled. Any <literal>%p</> in the string is
+        replaced by the absolute path of the file to archive, and any
+        <literal>%f</> is replaced by the file name only. Use
+        <literal>%%</> to embed an actual <literal>%</> character in the
+        command. For more information see <xref
+        linkend="backup-archiving-wal">. This option can only be set at
+        server start or in the <filename>postgresql.conf</filename>
+        file.
+       </para>
+       <para>
+        It is important for the command to return a zero exit status only if
+       it succeeds.  Examples:
+<programlisting>
+archive_command = 'cp "%p" /mnt/server/archivedir/"%f"'
+archive_command = 'copy "%p" /mnt/server/archivedir/"%f"'  # Win32
+</programlisting>
        </para>
       </listitem>
      </varlistentry>
index 50ba2156e0863e6b72232064e3f9d30e4399c383..b9d0398b621188fe2eee1ecb14de6662efddf8d1 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2003, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/backend/access/transam/xlog.c,v 1.161 2004/08/12 18:34:45 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/access/transam/xlog.c,v 1.162 2004/08/12 19:03:23 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -1962,18 +1962,6 @@ RestoreArchivedFile(char *path, const char *xlogfname,
                                        /* %p: full path of target file */
                                        sp++;
                                        StrNCpy(dp, xlogpath, endp-dp);
-                                       /*
-                                        *      make_native_path() is required because WIN32 COPY is
-                                        *      an internal CMD.EXE command and doesn't process
-                                        *      forward slashes in the same way as external commands.
-                                        *      Quoting the first argument to COPY does not convert
-                                        *      forward to backward slashes, but COPY does properly
-                                        *      process quoted forward slashes in the second argument.
-                                        *
-                                        *      COPY works with quoted forward slashes in the first argument
-                                        *      only if the current directory is the same as the directory
-                                        *      of the first argument.
-                                        */
                                        make_native_path(dp);
                                        dp += strlen(dp);
                                        break;
index 83587551c9b0ac364fc745e1282d0ac5bb39518d..d11bf17a2b46d2412000c466f5c19cb27ddd2486 100644 (file)
@@ -19,7 +19,7 @@
  *
  *
  * IDENTIFICATION
- *       $PostgreSQL: pgsql/src/backend/postmaster/pgarch.c,v 1.6 2004/08/09 16:26:06 tgl Exp $
+ *       $PostgreSQL: pgsql/src/backend/postmaster/pgarch.c,v 1.7 2004/08/12 19:03:34 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -436,17 +436,8 @@ pgarch_archiveXlog(char *xlog)
                                        /* %p: full path of source file */
                                        sp++;
                                        StrNCpy(dp, pathname, endp-dp);
-#ifndef WIN32
+                                       make_native_path(dp);
                                        dp += strlen(dp);
-#else
-                                       /* On Windows, change / to \ in the substituted path */
-                                       while (*dp)
-                                       {
-                                               if (*dp == '/')
-                                                       *dp = '\\';
-                                               dp++;
-                                       }
-#endif
                                        break;
                                case 'f':
                                        /* %f: filename of source file */
index 28463c6ae9b4990bf320e39b6e85ffde767c1b5b..cdd427f04b670a70aebe415574591c73937caf36 100644 (file)
 # - Archiving -
 
 #archive_command = ''          # command to use to archive a logfile segment
-#
-# If archive_command is '' then archiving is disabled.  Otherwise, set it
-# to a command to copy a file to the proper place.  Any %p in the string 
-# is replaced by the absolute path of the file to archive, while any %f is 
-# replaced by the file name only.  NOTE: it is important for the command to 
-# return zero exit status only if it succeeds.
-#
-# Examples:
-#      archive_command = 'cp "%p" /mnt/server/archivedir/"%f"'
-#      archive_command = 'copy "%p" /mnt/server/archivedir/"%f"'  # Win32
 
 
 #---------------------------------------------------------------------------
index 2a7428d0ba64ee349f94f33d3ca6878af23ec328..50f6476f427c86674ba3683da59516b29279ff70 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *       $PostgreSQL: pgsql/src/port/path.c,v 1.28 2004/08/12 18:32:52 momjian Exp $
+ *       $PostgreSQL: pgsql/src/port/path.c,v 1.29 2004/08/12 19:03:44 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -88,8 +88,17 @@ last_dir_separator(const char *filename)
 
 
 /*
- *     make_native_path
- *     On WIN32, change / to \ in the path.
+ *     make_native_path - on WIN32, change / to \ in the path
+ *
+ *     This is required because WIN32 COPY is an internal CMD.EXE
+ *     command and doesn't process forward slashes in the same way
+ *     as external commands.  Quoting the first argument to COPY
+ *     does not convert forward to backward slashes, but COPY does
+ *     properly process quoted forward slashes in the second argument.
+ *
+ *     COPY works with quoted forward slashes in the first argument
+ *     only if the current directory is the same as the directory
+ *     of the first argument.
  */
 void
 make_native_path(char *filename)