On Win32, pg_upgrade cannot sent any server log output to the log file
authorBruce Momjian <bruce@momjian.us>
Tue, 13 Jul 2010 20:03:32 +0000 (20:03 +0000)
committerBruce Momjian <bruce@momjian.us>
Tue, 13 Jul 2010 20:03:32 +0000 (20:03 +0000)
because of file access limitations on that platform.

contrib/pg_upgrade/server.c

index a9243ab75aead5a090df81b048b1d48093f2d5e5..3cc546978778f23c35783fa233d90571cd254b5c 100644 (file)
@@ -4,7 +4,7 @@
  * database server functions
  *
  * Copyright (c) 2010, PostgreSQL Global Development Group
- * $PostgreSQL: pgsql/contrib/pg_upgrade/server.c,v 1.8 2010/07/06 19:18:55 momjian Exp $
+ * $PostgreSQL: pgsql/contrib/pg_upgrade/server.c,v 1.9 2010/07/13 20:03:32 momjian Exp $
  */
 
 #include "pg_upgrade.h"
@@ -181,9 +181,9 @@ start_postmaster(migratorContext *ctx, Cluster whichCluster, bool quiet)
    }
 
    /*
-    * On Win32, we can't send both server output and pg_ctl output to the
+    * On Win32, we can't send both pg_upgrade output and pg_ctl output to the
     * same file because we get the error: "The process cannot access the file
-    * because it is being used by another process." so we have to send pg_ctl
+    * because it is being used by another process." so we have to send all other
     * output to 'nul'.
     */
    snprintf(cmd, sizeof(cmd),
@@ -191,11 +191,11 @@ start_postmaster(migratorContext *ctx, Cluster whichCluster, bool quiet)
             "-o \"-p %d -c autovacuum=off "
             "-c autovacuum_freeze_max_age=2000000000\" "
             "start >> \"%s\" 2>&1" SYSTEMQUOTE,
-            bindir, ctx->logfile, datadir, port,
+            bindir,
 #ifndef WIN32
-            ctx->logfile);
+            ctx->logfile, datadir, port, ctx->logfile);
 #else
-            DEVNULL);
+            DEVNULL, datadir, port, DEVNULL);
 #endif
    exec_prog(ctx, true, "%s", cmd);
 
@@ -235,11 +235,11 @@ stop_postmaster(migratorContext *ctx, bool fast, bool quiet)
    snprintf(cmd, sizeof(cmd),
             SYSTEMQUOTE "\"%s/pg_ctl\" -l \"%s\" -D \"%s\" %s stop >> "
             "\"%s\" 2>&1" SYSTEMQUOTE,
-            bindir, ctx->logfile, datadir, fast ? "-m fast" : "",
+            bindir,
 #ifndef WIN32
-            ctx->logfile);
+            ctx->logfile, datadir, fast ? "-m fast" : "", ctx->logfile);
 #else
-            DEVNULL);
+            DEVNULL, datadir, fast ? "-m fast" : "", DEVNULL);
 #endif
    exec_prog(ctx, fast ? false : true, "%s", cmd);