From b25d23e1e60429f960d4e0ca951d87c1ffe737cb Mon Sep 17 00:00:00 2001 From: Neil Conway 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 0224877e60..6b128682b6 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)));