diff options
author | Bruce Momjian <bruce@momjian.us> | 2004-01-06 23:15:22 +0000 |
---|---|---|
committer | Bruce Momjian <bruce@momjian.us> | 2004-01-06 23:15:22 +0000 |
commit | 488f2785d025a6cc04685cfee4ca3eac0086e2fd (patch) | |
tree | b21e8ead6a04bef7a128d2b2307b2e68efba2ce9 /src/backend/bootstrap/bootstrap.c | |
parent | 06288d4e2256ec2f458baa07f337cddd9c915b03 (diff) | |
download | postgresql-488f2785d025a6cc04685cfee4ca3eac0086e2fd.tar.gz postgresql-488f2785d025a6cc04685cfee4ca3eac0086e2fd.zip |
Final rearrangement of main postgresql child process (ie.
BackendFork/SSDataBase/pgstat) startup, to allow fork/exec calls to
closely mimic (the soon to be provided) Win32 CreateProcess equivalent
calls.
Claudio Natoli
Diffstat (limited to 'src/backend/bootstrap/bootstrap.c')
-rw-r--r-- | src/backend/bootstrap/bootstrap.c | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/src/backend/bootstrap/bootstrap.c b/src/backend/bootstrap/bootstrap.c index f42c071195f..b21f4cc8065 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 - * $PostgreSQL: pgsql/src/backend/bootstrap/bootstrap.c,v 1.172 2003/12/25 03:52:50 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/bootstrap/bootstrap.c,v 1.173 2004/01/06 23:15:22 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -51,7 +51,7 @@ #ifdef EXEC_BACKEND typedef struct Port Port; extern void SSDataBaseInit(int); -extern void read_backend_variables(pid_t, Port*); +extern void read_backend_variables(unsigned long, Port*); #endif extern int Int_yyparse(void); @@ -231,6 +231,9 @@ BootstrapMain(int argc, char *argv[]) int flag; int xlogop = BS_XLOG_NOP; char *potential_DataDir = NULL; +#ifdef EXEC_BACKEND + unsigned long backendID = 0; +#endif /* * initialize globals @@ -291,10 +294,15 @@ BootstrapMain(int argc, char *argv[]) break; case 'p': #ifdef EXEC_BACKEND - IsUnderPostmaster = true; + { + char buf[MAXPGPATH]; + IsUnderPostmaster = true; + sscanf(optarg,"%lu,%s",&backendID,buf); + dbname = strdup(buf); + } #endif dbname = strdup(optarg); - break; + break; case 'B': SetConfigOption("shared_buffers", optarg, PGC_POSTMASTER, PGC_S_ARGV); break; @@ -363,7 +371,7 @@ BootstrapMain(int argc, char *argv[]) { #ifdef EXEC_BACKEND read_nondefault_variables(); - read_backend_variables(getpid(),NULL); + read_backend_variables(backendID,NULL); SSDataBaseInit(xlogop); #endif @@ -431,11 +439,11 @@ BootstrapMain(int argc, char *argv[]) switch (xlogop) { case BS_XLOG_BGWRITER: - InitDummyProcess(DUMMY_PROC_BGWRITER); + InitDummyProcess(DUMMY_PROC_BGWRITER); break; - + default: - InitDummyProcess(DUMMY_PROC_DEFAULT); + InitDummyProcess(DUMMY_PROC_DEFAULT); break; } } |