|
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 | bool ClientAuthInProgress = false; /* T during new-client
|
223 | 223 | * authentication */
|
224 | 224 |
|
| 225 | +/* Backend startup time */ |
| 226 | +TimestampTz StartTime; |
| 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 | InheritableSocket pgStatPipe0;
|
331 | 334 | InheritableSocket pgStatPipe1;
|
332 | 335 | pid_t PostmasterPid;
|
| 336 | + TimestampTz StartTime; |
333 | 337 | #ifdef WIN32
|
334 | 338 | HANDLE PostmasterHandle;
|
335 | 339 | HANDLE initial_signal_pipe;
|
@@ -372,6 +376,9 @@ PostmasterMain(int argc, char *argv[])
|
372 | 376 | char *userDoption = NULL;
|
373 | 377 | int i;
|
374 | 378 |
|
| 379 | + AbsoluteTime StartTimeSec; /* integer part */ |
| 380 | + int StartTimeUSec; /* 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 | #ifdef WIN32
|
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 | #ifdef WIN32
|
3810 | 3825 | PostmasterHandle = param->PostmasterHandle;
|
|
0 commit comments