New arrangement to always let the bgwriter do checkpoints broke

CHECKPOINT and some other commands in the context of a standalone
backend.  Allow a standalone backend to do its own checkpoints.
This commit is contained in:
Tom Lane 2005-02-19 23:16:15 +00:00
parent 9650d6c7e6
commit 617d16f4ff
1 changed files with 18 additions and 1 deletions

View File

@ -37,7 +37,7 @@
*
*
* IDENTIFICATION
* $PostgreSQL: pgsql/src/backend/postmaster/bgwriter.c,v 1.13 2005/01/10 20:02:20 tgl Exp $
* $PostgreSQL: pgsql/src/backend/postmaster/bgwriter.c,v 1.14 2005/02/19 23:16:15 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@ -509,6 +509,23 @@ RequestCheckpoint(bool waitforit)
sig_atomic_t old_failed = bgs->ckpt_failed;
sig_atomic_t old_started = bgs->ckpt_started;
/*
* If in a standalone backend, just do it ourselves.
*/
if (!IsPostmasterEnvironment)
{
CreateCheckPoint(false, true);
/*
* After any checkpoint, close all smgr files. This is so we
* won't hang onto smgr references to deleted files
* indefinitely.
*/
smgrcloseall();
return;
}
/*
* Send signal to request checkpoint. When waitforit is false, we
* consider failure to send the signal to be nonfatal.