aboutsummaryrefslogtreecommitdiff
path: root/src/backend/bootstrap/bootstrap.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/bootstrap/bootstrap.c')
-rw-r--r--src/backend/bootstrap/bootstrap.c43
1 files changed, 27 insertions, 16 deletions
diff --git a/src/backend/bootstrap/bootstrap.c b/src/backend/bootstrap/bootstrap.c
index 6a0a1306e21..76d4d0252d2 100644
--- a/src/backend/bootstrap/bootstrap.c
+++ b/src/backend/bootstrap/bootstrap.c
@@ -8,7 +8,7 @@
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/bootstrap/bootstrap.c,v 1.116 2001/09/27 16:29:12 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/bootstrap/bootstrap.c,v 1.117 2001/09/29 04:02:22 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -33,6 +33,7 @@
#include "catalog/pg_type.h"
#include "libpq/pqsignal.h"
#include "miscadmin.h"
+#include "storage/proc.h"
#include "tcop/tcopprot.h"
#include "utils/builtins.h"
#include "utils/exc.h"
@@ -360,29 +361,39 @@ BootstrapMain(int argc, char *argv[])
* XLOG operations
*/
SetProcessingMode(NormalProcessing);
- if (xlogop == BS_XLOG_NOP)
- StartupXLOG();
- else if (xlogop == BS_XLOG_BOOTSTRAP)
- {
- BootStrapXLOG();
- StartupXLOG();
- }
- else
+
+ switch (xlogop)
{
- if (xlogop == BS_XLOG_CHECKPOINT)
- {
+ case BS_XLOG_NOP:
+ StartupXLOG();
+ break;
+
+ case BS_XLOG_BOOTSTRAP:
+ BootStrapXLOG();
+ StartupXLOG();
+ break;
+
+ case BS_XLOG_CHECKPOINT:
+ if (IsUnderPostmaster)
+ InitDummyProcess(); /* needed to get LWLocks */
CreateDummyCaches();
CreateCheckPoint(false);
SetRedoRecPtr();
- }
- else if (xlogop == BS_XLOG_STARTUP)
+ proc_exit(0); /* done */
+
+ case BS_XLOG_STARTUP:
StartupXLOG();
- else if (xlogop == BS_XLOG_SHUTDOWN)
+ proc_exit(0); /* done */
+
+ case BS_XLOG_SHUTDOWN:
ShutdownXLOG();
- else
+ proc_exit(0); /* done */
+
+ default:
elog(STOP, "Unsupported XLOG op %d", xlogop);
- proc_exit(0);
+ proc_exit(0);
}
+
SetProcessingMode(BootstrapProcessing);
/*