From b25d23e1e60429f960d4e0ca951d87c1ffe737cb Mon Sep 17 00:00:00 2001
From: Neil Conway <neilc@samurai.com>
Date: Wed, 17 Nov 2004 02:22:54 +0000
Subject: [PATCH] Don't allow pg_start_backup() to be invoked if
 archive_command has not been defined. Patch from Gavin Sherry, editorializing
 by Neil Conway.

---
 src/backend/access/transam/xlog.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c
index 0224877e60e..6b128682b6b 100644
--- a/src/backend/access/transam/xlog.c
+++ b/src/backend/access/transam/xlog.c
@@ -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)));
 
-- 
GitLab