Jon Jensen wrote: > On Fri, 28 May 2004, Christopher Kings-Lynne wrote: > > > > I've encountered a situation where I'd like to store some information > > > about the database when I do a pg_dump. For instance, the timestamp of > > > the dump. And some other information that I pull from the database. > > > > I think every dump should dump the timestamp regardless... > > That would cause me a lot of trouble. Every night I do a pg_dump on all my > databases to a temporary file. Then I use cmp to compare that dump to last > night's dump. If they're identical I just delete the new dump so that only > the old one remains, with its original timestamp. That way rsync doesn't > see any change, and doesn't waste any time comparing it when we do > backups. It's also handy to see the last day the dump changed by looking > at the file's timestamp. > > Granted, this is only of interest on databases that don't change at all, > but on a multi-user system we have a surprising number of databases that > don't change at all for days (alongside the ones that change all the time, > of course). > > However, I would like to see an option to include the timestamp if someone > wants it.
The following patch adds start/stop times for pg_dump and pg_dumpall when verbose output is selected: -- -- PostgreSQL database cluster dump -- Started on 2004-06-04 01:01:35 EDT -- -- -- PostgreSQL database dump -- Started on 2004-06-04 01:01:36 EDT -- -- -- PostgreSQL database dump complete -- Completed on 2004-06-04 01:01:36 EDT -- -- -- PostgreSQL database cluster dump complete -- Completed on 2004-06-04 01:01:36 EDT -- -- Bruce Momjian | http://candle.pha.pa.us [EMAIL PROTECTED] | (610) 359-1001 + If your life is a hard drive, | 13 Roberts Road + Christ can be your backup. | Newtown Square, Pennsylvania 19073
Index: doc/src/sgml/ref/pg_dump.sgml =================================================================== RCS file: /cvsroot/pgsql-server/doc/src/sgml/ref/pg_dump.sgml,v retrieving revision 1.70 diff -c -c -r1.70 pg_dump.sgml *** doc/src/sgml/ref/pg_dump.sgml 31 May 2004 13:37:52 -0000 1.70 --- doc/src/sgml/ref/pg_dump.sgml 4 Jun 2004 04:58:18 -0000 *************** *** 403,409 **** <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. </para> </listitem> </varlistentry> --- 403,410 ---- <para> Specifies verbose mode. This will cause <application>pg_dump</application> to output detailed object ! comments in the dump file, start and stop times, and progress ! messages to standard error. </para> </listitem> </varlistentry> Index: doc/src/sgml/ref/pg_dumpall.sgml =================================================================== RCS file: /cvsroot/pgsql-server/doc/src/sgml/ref/pg_dumpall.sgml,v retrieving revision 1.43 diff -c -c -r1.43 pg_dumpall.sgml *** doc/src/sgml/ref/pg_dumpall.sgml 29 Nov 2003 19:51:39 -0000 1.43 --- doc/src/sgml/ref/pg_dumpall.sgml 4 Jun 2004 04:58:18 -0000 *************** *** 192,199 **** <listitem> <para> Specifies verbose mode. This will cause ! <application>pg_dumpall</application> to print progress ! messages to standard error. </para> </listitem> </varlistentry> --- 192,200 ---- <listitem> <para> Specifies verbose mode. This will cause ! <application>pg_dumpall</application> to output start and stop ! times in the dump file, and progress messages to standard error. ! It will also enable verbose output in <application>pg_dump</>. </para> </listitem> </varlistentry> Index: src/bin/pg_dump/pg_backup_archiver.c =================================================================== RCS file: /cvsroot/pgsql-server/src/bin/pg_dump/pg_backup_archiver.c,v retrieving revision 1.87 diff -c -c -r1.87 pg_backup_archiver.c *** src/bin/pg_dump/pg_backup_archiver.c 19 May 2004 21:21:26 -0000 1.87 --- src/bin/pg_dump/pg_backup_archiver.c 4 Jun 2004 04:58:21 -0000 *************** *** 28,33 **** --- 28,34 ---- #include <ctype.h> #include <errno.h> + #include <time.h> #include <unistd.h> #include "pqexpbuffer.h" *************** *** 202,208 **** if (ropt->filename || ropt->compression) sav = SetOutput(AH, ropt->filename, ropt->compression); ! ahprintf(AH, "--\n-- PostgreSQL database dump\n--\n\n"); /* * Establish important parameter values right away. --- 203,218 ---- if (ropt->filename || ropt->compression) sav = SetOutput(AH, ropt->filename, ropt->compression); ! ahprintf(AH, "--\n-- PostgreSQL database dump\n"); ! if (AH->public.verbose) ! { ! char buf[256]; ! time_t now = time(NULL); ! ! if (strftime(buf, 256, "%Y-%m-%d %H:%M:%S %Z", localtime(&now)) != 0) ! ahprintf(AH, "-- Started on %s\n", buf); ! } ! ahprintf(AH, "--\n\n"); /* * Establish important parameter values right away. *************** *** 385,391 **** } } ! ahprintf(AH, "--\n-- PostgreSQL database dump complete\n--\n\n"); } /* --- 395,410 ---- } } ! ahprintf(AH, "--\n-- PostgreSQL database dump complete\n"); ! if (AH->public.verbose) ! { ! char buf[256]; ! time_t now = time(NULL); ! ! if (strftime(buf, 256, "%Y-%m-%d %H:%M:%S %Z", localtime(&now)) != 0) ! ahprintf(AH, "-- Completed on %s\n", buf); ! } ! ahprintf(AH, "--\n\n"); } /* Index: src/bin/pg_dump/pg_dumpall.c =================================================================== RCS file: /cvsroot/pgsql-server/src/bin/pg_dump/pg_dumpall.c,v retrieving revision 1.36 diff -c -c -r1.36 pg_dumpall.c *** src/bin/pg_dump/pg_dumpall.c 3 Jun 2004 00:07:36 -0000 1.36 --- src/bin/pg_dump/pg_dumpall.c 4 Jun 2004 04:58:22 -0000 *************** *** 21,26 **** --- 21,27 ---- #include "strdup.h" #endif #include <errno.h> + #include <time.h> #include "getopt_long.h" *************** *** 219,226 **** conn = connectDatabase("template1", pghost, pgport, pguser, force_password); ! printf("--\n"); ! printf("-- PostgreSQL database cluster dump\n"); printf("--\n\n"); printf("\\connect \"template1\"\n\n"); --- 220,234 ---- conn = connectDatabase("template1", pghost, pgport, pguser, force_password); ! printf("--\n-- PostgreSQL database cluster dump\n"); ! if (verbose) ! { ! char buf[256]; ! time_t now = time(NULL); ! ! if (strftime(buf, 256, "%Y-%m-%d %H:%M:%S %Z", localtime(&now)) != 0) ! printf("-- Started on %s\n", buf); ! } printf("--\n\n"); printf("\\connect \"template1\"\n\n"); *************** *** 239,246 **** PQfinish(conn); ! printf("--\n"); ! printf("-- PostgreSQL database cluster dump complete\n"); printf("--\n\n"); exit(0); --- 247,261 ---- PQfinish(conn); ! printf("--\n-- PostgreSQL database cluster dump complete\n"); ! if (verbose) ! { ! char buf[256]; ! time_t now = time(NULL); ! ! if (strftime(buf, 256, "%Y-%m-%d %H:%M:%S %Z", localtime(&now)) != 0) ! printf("-- Completed on %s\n", buf); ! } printf("--\n\n"); exit(0);
---------------------------(end of broadcast)--------------------------- TIP 4: Don't 'kill -9' the postmaster