OSDN Git Service

Don't allow pg_start_backup() to be invoked if archive_command has not
authorNeil Conway <neilc@samurai.com>
Wed, 17 Nov 2004 02:22:54 +0000 (02:22 +0000)
committerNeil Conway <neilc@samurai.com>
Wed, 17 Nov 2004 02:22:54 +0000 (02:22 +0000)
been defined. Patch from Gavin Sherry, editorializing by Neil Conway.

src/backend/access/transam/xlog.c

index 0224877..6b12868 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2004, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/backend/access/transam/xlog.c,v 1.176 2004/11/05 17:10:56 petere Exp $
+ * $PostgreSQL: pgsql/src/backend/access/transam/xlog.c,v 1.177 2004/11/17 02:22:54 neilc Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -5266,6 +5266,14 @@ pg_start_backup(PG_FUNCTION_ARGS)
                ereport(ERROR,
                                (errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
                                 (errmsg("must be superuser to run a backup"))));
+
+       if (!XLogArchivingActive())
+               ereport(ERROR,
+                               (errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
+                                (errmsg("WAL archiving is not configured"),
+                                (errhint("archive_command must be defined before "
+                                                 "online backups can be safely made.")))));
+
        backupidstr = DatumGetCString(DirectFunctionCall1(textout,
                                                                                         PointerGetDatum(backupid)));