OSDN Git Service

Make archiver process report its progress in PS display. Per
authorTom Lane <tgl@sss.pgh.pa.us>
Tue, 18 Dec 2007 00:49:34 +0000 (00:49 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Tue, 18 Dec 2007 00:49:34 +0000 (00:49 +0000)
proposal by Simon Riggs, though not exactly his patch.

src/backend/postmaster/pgarch.c

index 8b62fb6..b80fcee 100644 (file)
@@ -19,7 +19,7 @@
  *
  *
  * IDENTIFICATION
- *       $PostgreSQL: pgsql/src/backend/postmaster/pgarch.c,v 1.35 2007/12/12 16:53:14 tgl Exp $
+ *       $PostgreSQL: pgsql/src/backend/postmaster/pgarch.c,v 1.36 2007/12/18 00:49:34 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -414,6 +414,7 @@ pgarch_archiveXlog(char *xlog)
 {
        char            xlogarchcmd[MAXPGPATH];
        char            pathname[MAXPGPATH];
+       char            activitymsg[MAXFNAMELEN + 16];
        char       *dp;
        char       *endp;
        const char *sp;
@@ -471,6 +472,11 @@ pgarch_archiveXlog(char *xlog)
        ereport(DEBUG3,
                        (errmsg_internal("executing archive command \"%s\"",
                                                         xlogarchcmd)));
+
+       /* Report archive activity in PS display */
+       snprintf(activitymsg, sizeof(activitymsg), "archiving %s", xlog);
+       set_ps_display(activitymsg, false);
+
        rc = system(xlogarchcmd);
        if (rc != 0)
        {
@@ -527,11 +533,17 @@ pgarch_archiveXlog(char *xlog)
                                                           xlogarchcmd)));
                }
 
+               snprintf(activitymsg, sizeof(activitymsg), "failed on %s", xlog);
+               set_ps_display(activitymsg, false);
+
                return false;
        }
        ereport(DEBUG1,
                        (errmsg("archived transaction log file \"%s\"", xlog)));
 
+       snprintf(activitymsg, sizeof(activitymsg), "last was %s", xlog);
+       set_ps_display(activitymsg, false);
+
        return true;
 }