|
37 | 37 | *
|
38 | 38 | *
|
39 | 39 | * IDENTIFICATION
|
40 |
| - * $PostgreSQL: pgsql/src/backend/postmaster/postmaster.c,v 1.452 2005/06/09 22:01:12 tgl Exp $ |
| 40 | + * $PostgreSQL: pgsql/src/backend/postmaster/postmaster.c,v 1.453 2005/06/14 21:04:39 momjian Exp $ |
41 | 41 | *
|
42 | 42 | * NOTES
|
43 | 43 | *
|
@@ -222,6 +222,9 @@ static bool FatalError = false; /* T if recovering from backend crash */
|
222 | 222 | boolClientAuthInProgress= false;/* T during new-client
|
223 | 223 | * authentication */
|
224 | 224 |
|
| 225 | +/* Backend startup time */ |
| 226 | +TimestampTzStartTime; |
| 227 | + |
225 | 228 | /*
|
226 | 229 | * State for assigning random salts and cancel keys.
|
227 | 230 | * Also, the global MyCancelKey passes the cancel key assigned to a given
|
@@ -330,6 +333,7 @@ typedef struct
|
330 | 333 | InheritableSocketpgStatPipe0;
|
331 | 334 | InheritableSocketpgStatPipe1;
|
332 | 335 | pid_tPostmasterPid;
|
| 336 | +TimestampTzStartTime; |
333 | 337 | #ifdefWIN32
|
334 | 338 | HANDLEPostmasterHandle;
|
335 | 339 | HANDLEinitial_signal_pipe;
|
@@ -372,6 +376,9 @@ PostmasterMain(int argc, char *argv[])
|
372 | 376 | char*userDoption=NULL;
|
373 | 377 | inti;
|
374 | 378 |
|
| 379 | +AbsoluteTimeStartTimeSec;/* integer part */ |
| 380 | +intStartTimeUSec;/* microsecond part */ |
| 381 | + |
375 | 382 | /* This will call exit() if strdup() fails. */
|
376 | 383 | progname=get_progname(argv[0]);
|
377 | 384 |
|
@@ -914,6 +921,12 @@ PostmasterMain(int argc, char *argv[])
|
914 | 921 | */
|
915 | 922 | StartupPID=StartupDataBase();
|
916 | 923 |
|
| 924 | +/* |
| 925 | + * Get start up time |
| 926 | + */ |
| 927 | +StartTimeSec=GetCurrentAbsoluteTimeUsec(&StartTimeUSec); |
| 928 | +StartTime=AbsoluteTimeUsecToTimestampTz(StartTimeSec,StartTimeUSec); |
| 929 | + |
917 | 930 | status=ServerLoop();
|
918 | 931 |
|
919 | 932 | /*
|
@@ -3603,6 +3616,7 @@ save_backend_variables(BackendParameters *param, Port *port,
|
3603 | 3616 | write_inheritable_socket(¶m->pgStatPipe1,pgStatPipe[1],childPid);
|
3604 | 3617 |
|
3605 | 3618 | param->PostmasterPid=PostmasterPid;
|
| 3619 | +param->StartTime=StartTime; |
3606 | 3620 |
|
3607 | 3621 | #ifdefWIN32
|
3608 | 3622 | param->PostmasterHandle=PostmasterHandle;
|
@@ -3805,6 +3819,7 @@ restore_backend_variables(BackendParameters *param, Port *port)
|
3805 | 3819 | read_inheritable_socket(&pgStatPipe[1],¶m->pgStatPipe1);
|
3806 | 3820 |
|
3807 | 3821 | PostmasterPid=param->PostmasterPid;
|
| 3822 | +StartTime=param->StartTime; |
3808 | 3823 |
|
3809 | 3824 | #ifdefWIN32
|
3810 | 3825 | PostmasterHandle=param->PostmasterHandle;
|
|