diff options
| author | Bruce Momjian | 2003-05-06 23:34:56 +0000 |
|---|---|---|
| committer | Bruce Momjian | 2003-05-06 23:34:56 +0000 |
| commit | d9fd7d12f6c08f1502e8d57d222797e86198b1a6 (patch) | |
| tree | 82dfc7235bfeaa5f790af91e4ec302c2f07ddee6 /src/backend/bootstrap | |
| parent | e8f4f2f92d0b6ea94d9ab13eaf5b2483f7e1f6b3 (diff) | |
Pass shared memory id and socket descriptor number on command line for
fork/exec.
Diffstat (limited to 'src/backend/bootstrap')
| -rw-r--r-- | src/backend/bootstrap/bootstrap.c | 28 |
1 files changed, 21 insertions, 7 deletions
diff --git a/src/backend/bootstrap/bootstrap.c b/src/backend/bootstrap/bootstrap.c index 4a995889c8e..215e165cf72 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.154 2003/05/06 05:15:45 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/bootstrap/bootstrap.c,v 1.155 2003/05/06 23:34:55 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -36,6 +36,7 @@ #include "miscadmin.h" #include "storage/freespace.h" #include "storage/ipc.h" +#include "storage/pg_shmem.h" #include "storage/proc.h" #include "tcop/tcopprot.h" #include "utils/builtins.h" @@ -252,7 +253,7 @@ BootstrapMain(int argc, char *argv[]) * variable */ } - while ((flag = getopt(argc, argv, "B:d:D:Fo:px:")) != -1) + while ((flag = getopt(argc, argv, "B:d:D:Fo:p:x:")) != -1) { switch (flag) { @@ -283,8 +284,19 @@ BootstrapMain(int argc, char *argv[]) xlogop = atoi(optarg); break; case 'p': + { /* indicates fork from postmaster */ + char *p; +#ifdef EXEC_BACKEND + sscanf(optarg, "%d,", &UsedShmemSegID); + p = strchr(optarg, ','); + if (p) + dbname = strdup(p+1); +#else + dbname = strdup(optarg); +#endif break; + } case 'B': SetConfigOption("shared_buffers", optarg, PGC_POSTMASTER, PGC_S_ARGV); break; @@ -292,14 +304,16 @@ BootstrapMain(int argc, char *argv[]) usage(); break; } - } /* while */ + } - if (argc - optind != 1) + if (!dbname && argc - optind == 1) + { + dbname = argv[optind]; + optind++; + } + if (!dbname || argc != optind) usage(); - dbname = argv[optind]; - - Assert(dbname); if (IsUnderPostmaster && ExecBackend && MyProc /* ordinary backend */) { |
