<!--
-$PostgreSQL: pgsql/doc/src/sgml/ref/pg_dump.sgml,v 1.70 2004/05/31 13:37:52 momjian Exp $
+$PostgreSQL: pgsql/doc/src/sgml/ref/pg_dump.sgml,v 1.71 2004/06/07 20:35:57 momjian Exp $
PostgreSQL documentation
-->
<para>
Specifies verbose mode. This will cause
<application>pg_dump</application> to output detailed object
- comments in the dump file, and progress messages to standard error.
+ comments and start/stop times to the dump file, and progress
+ messages to standard error.
</para>
</listitem>
</varlistentry>
<!--
-$PostgreSQL: pgsql/doc/src/sgml/ref/pg_dumpall.sgml,v 1.43 2003/11/29 19:51:39 pgsql Exp $
+$PostgreSQL: pgsql/doc/src/sgml/ref/pg_dumpall.sgml,v 1.44 2004/06/07 20:35:57 momjian Exp $
PostgreSQL documentation
-->
<listitem>
<para>
Specifies verbose mode. This will cause
- <application>pg_dumpall</application> to print progress
- messages to standard error.
+ <application>pg_dumpall</application> to output start/stop
+ times to the dump file, and progress messages to standard error.
+ It will also enable verbose output in <application>pg_dump</>.
</para>
</listitem>
</varlistentry>
* by PostgreSQL
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/bin/pg_dump/pg_dump.c,v 1.373 2004/06/03 00:07:36 momjian Exp $
+ * $PostgreSQL: pgsql/src/bin/pg_dump/pg_dump.c,v 1.374 2004/06/07 20:35:57 momjian Exp $
*
*-------------------------------------------------------------------------
*/
#ifdef HAVE_TERMIOS_H
#include <termios.h>
#endif
+#include <time.h>
#ifndef HAVE_STRDUP
#include "strdup.h"
static const char *fmtQualifiedId(const char *schema, const char *id);
static int dumpBlobs(Archive *AH, void *arg);
static void dumpDatabase(Archive *AH);
+static void dumpTimestamp(Archive *AH, char *msg);
static void dumpEncoding(Archive *AH);
static const char *getAttrName(int attrnum, TableInfo *tblInfo);
static const char *fmtCopyColumnList(const TableInfo *ti);
* in a safe order.
*/
+ if (g_fout->verbose)
+ dumpTimestamp(g_fout, "Started on");
+
/* First the special encoding entry. */
dumpEncoding(g_fout);
dumpDumpableObject(g_fout, dobjs[i]);
}
+ if (g_fout->verbose)
+ dumpTimestamp(g_fout, "Completed on");
+
/*
* And finally we can do the actual output.
*/
}
+/*
+ * dumpTimestamp
+ */
+static void
+dumpTimestamp(Archive *AH, char *msg)
+{
+ char buf[256];
+ time_t now = time(NULL);
+
+ if (strftime(buf, 256, "%Y-%m-%d %H:%M:%S %Z", localtime(&now)) != 0)
+ {
+ PQExpBuffer qry = createPQExpBuffer();
+
+ appendPQExpBuffer(qry, "-- ");
+ appendPQExpBuffer(qry, msg);
+ appendPQExpBuffer(qry, " ");
+ appendPQExpBuffer(qry, buf);
+ appendPQExpBuffer(qry, "\n");
+
+ ArchiveEntry(AH, nilCatalogId, createDumpId(),
+ "DUMP TIMESTAMP", NULL, "",
+ false, "DUMP TIMESTAMP", qry->data, "", NULL,
+ NULL, 0,
+ NULL, NULL);
+ destroyPQExpBuffer(qry);
+ }
+}
+
+
/*
* dumpEncoding: put the correct encoding into the archive
*/
* Portions Copyright (c) 1994, Regents of the University of California
*
*
- * $PostgreSQL: pgsql/src/bin/pg_dump/pg_dumpall.c,v 1.37 2004/06/05 04:27:48 momjian Exp $
+ * $PostgreSQL: pgsql/src/bin/pg_dump/pg_dumpall.c,v 1.38 2004/06/07 20:35:57 momjian Exp $
*
*-------------------------------------------------------------------------
*/
static void dumpUserConfig(PGconn *conn, const char *username);
static void makeAlterConfigCommand(const char *arrayitem, const char *type, const char *name);
static void dumpDatabases(PGconn *conn);
+static void dumpTimestamp(char *msg);
static int runPgDump(const char *dbname);
static PGconn *connectDatabase(const char *dbname, const char *pghost, const char *pgport,
conn = connectDatabase("template1", pghost, pgport, pguser, force_password);
printf("--\n-- PostgreSQL database cluster dump\n--\n\n");
+ if (verbose)
+ dumpTimestamp("Started on");
+
printf("\\connect \"template1\"\n\n");
if (!data_only)
PQfinish(conn);
+ if (verbose)
+ dumpTimestamp("Completed on");
printf("--\n-- PostgreSQL database cluster dump complete\n--\n\n");
exit(0);
return res;
}
+
+
+/*
+ * dumpTimestamp
+ */
+static void
+dumpTimestamp(char *msg)
+{
+ char buf[256];
+ time_t now = time(NULL);
+
+ if (strftime(buf, 256, "%Y-%m-%d %H:%M:%S %Z", localtime(&now)) != 0)
+ printf("-- %s %s\n\n", msg, buf);
+}