Don't allow pg_start_backup() to be invoked if archive_command has not

been defined. Patch from Gavin Sherry, editorializing by Neil Conway.
This commit is contained in:
Neil Conway 2004-11-17 02:22:54 +00:00
parent 0021ae06be
commit b25d23e1e6
1 changed files with 9 additions and 1 deletions

View 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)));