diff options
author | Tom Lane | 2008-05-04 21:13:36 +0000 |
---|---|---|
committer | Tom Lane | 2008-05-04 21:13:36 +0000 |
commit | 600da67fbe5e5a96fb08eea115ad58ad4990cfea (patch) | |
tree | 213423edd4afd170cccbbb4fd48d79153290750d | |
parent | 45173ae24e308061c008f77996f3edbebe0e4dc2 (diff) |
Add pg_conf_load_time() function to report when the Postgres configuration
files were last loaded.
George Gensure
-rw-r--r-- | doc/src/sgml/func.sgml | 28 | ||||
-rw-r--r-- | src/backend/postmaster/postmaster.c | 5 | ||||
-rw-r--r-- | src/backend/utils/adt/timestamp.c | 12 | ||||
-rw-r--r-- | src/backend/utils/misc/guc-file.l | 5 | ||||
-rw-r--r-- | src/include/catalog/catversion.h | 4 | ||||
-rw-r--r-- | src/include/catalog/pg_proc.h | 7 | ||||
-rw-r--r-- | src/include/utils/timestamp.h | 7 |
7 files changed, 54 insertions, 14 deletions
diff --git a/doc/src/sgml/func.sgml b/doc/src/sgml/func.sgml index d017179867..47727a1f41 100644 --- a/doc/src/sgml/func.sgml +++ b/doc/src/sgml/func.sgml @@ -1,4 +1,4 @@ -<!-- $PostgreSQL: pgsql/doc/src/sgml/func.sgml,v 1.434 2008/04/28 14:48:57 alvherre Exp $ --> +<!-- $PostgreSQL: pgsql/doc/src/sgml/func.sgml,v 1.435 2008/05/04 21:13:35 tgl Exp $ --> <chapter id="functions"> <title>Functions and Operators</title> @@ -10892,6 +10892,12 @@ postgres=# select * from unnest2(array[[1,2],[3,4]]); </row> <row> + <entry><literal><function>pg_conf_load_time</function>()</literal></entry> + <entry><type>timestamp with time zone</type></entry> + <entry>configuration load time</entry> + </row> + + <row> <entry><literal><function>session_user</function></literal></entry> <entry><type>name</type></entry> <entry>session user name</entry> @@ -11031,9 +11037,23 @@ SET search_path TO <replaceable>schema</> <optional>, <replaceable>schema</>, .. </indexterm> <para> - <function>pg_postmaster_start_time</function> returns the - <type>timestamp with time zone</type> when the - server started. + <function>pg_postmaster_start_time</function> returns the + <type>timestamp with time zone</type> when the + server started. + </para> + + <indexterm> + <primary>pg_conf_load_time</primary> + </indexterm> + + <para> + <function>pg_conf_load_time</function> returns the + <type>timestamp with time zone</type> when the + server configuration files were last loaded. + (If the current session was alive at the time, this will be the time + when the session itself re-read the configuration files, so the + reading will vary a little in different sessions. Otherwise it is + the time when the postmaster process re-read the configuration files.) </para> <indexterm> diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 54e9173f6c..ba9e32627c 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -37,7 +37,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/postmaster/postmaster.c,v 1.556 2008/04/26 22:47:40 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/postmaster/postmaster.c,v 1.557 2008/05/04 21:13:35 tgl Exp $ * * NOTES * @@ -390,6 +390,7 @@ typedef struct InheritableSocket pgStatSock; pid_t PostmasterPid; TimestampTz PgStartTime; + TimestampTz PgReloadTime; bool redirection_done; #ifdef WIN32 HANDLE PostmasterHandle; @@ -4263,6 +4264,7 @@ save_backend_variables(BackendParameters * param, Port *port, param->PostmasterPid = PostmasterPid; param->PgStartTime = PgStartTime; + param->PgReloadTime = PgReloadTime; param->redirection_done = redirection_done; @@ -4468,6 +4470,7 @@ restore_backend_variables(BackendParameters * param, Port *port) PostmasterPid = param->PostmasterPid; PgStartTime = param->PgStartTime; + PgReloadTime = param->PgReloadTime; redirection_done = param->redirection_done; diff --git a/src/backend/utils/adt/timestamp.c b/src/backend/utils/adt/timestamp.c index 8a0f37292d..25d95b60ef 100644 --- a/src/backend/utils/adt/timestamp.c +++ b/src/backend/utils/adt/timestamp.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/utils/adt/timestamp.c,v 1.187 2008/03/25 22:42:44 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/utils/adt/timestamp.c,v 1.188 2008/05/04 21:13:35 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -42,6 +42,8 @@ /* Set at postmaster start */ TimestampTz PgStartTime; +/* Set at configuration reload */ +TimestampTz PgReloadTime; static TimeOffset time2t(const int hour, const int min, const int sec, const fsec_t fsec); @@ -1157,11 +1159,17 @@ clock_timestamp(PG_FUNCTION_ARGS) } Datum -pgsql_postmaster_start_time(PG_FUNCTION_ARGS) +pg_postmaster_start_time(PG_FUNCTION_ARGS) { PG_RETURN_TIMESTAMPTZ(PgStartTime); } +Datum +pg_conf_load_time(PG_FUNCTION_ARGS) +{ + PG_RETURN_TIMESTAMPTZ(PgReloadTime); +} + /* * GetCurrentTimestamp -- get the current operating system time * diff --git a/src/backend/utils/misc/guc-file.l b/src/backend/utils/misc/guc-file.l index 6abf1196f1..8380b4fa62 100644 --- a/src/backend/utils/misc/guc-file.l +++ b/src/backend/utils/misc/guc-file.l @@ -4,7 +4,7 @@ * * Copyright (c) 2000-2008, PostgreSQL Global Development Group * - * $PostgreSQL: pgsql/src/backend/utils/misc/guc-file.l,v 1.53 2008/01/01 19:45:54 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/utils/misc/guc-file.l,v 1.54 2008/05/04 21:13:35 tgl Exp $ */ %{ @@ -309,6 +309,9 @@ ProcessConfigFile(GucContext context) PGC_S_FILE, GUC_ACTION_SET, true); } + /* Remember when we last successfully loaded the config file. */ + PgReloadTime = GetCurrentTimestamp(); + cleanup_list: free_name_value_list(head); if (cvc) diff --git a/src/include/catalog/catversion.h b/src/include/catalog/catversion.h index 67b71f09f0..751cb8e8f7 100644 --- a/src/include/catalog/catversion.h +++ b/src/include/catalog/catversion.h @@ -37,7 +37,7 @@ * Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/catalog/catversion.h,v 1.453 2008/04/29 14:59:17 alvherre Exp $ + * $PostgreSQL: pgsql/src/include/catalog/catversion.h,v 1.454 2008/05/04 21:13:35 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -53,6 +53,6 @@ */ /* yyyymmddN */ -#define CATALOG_VERSION_NO 200804292 +#define CATALOG_VERSION_NO 200805041 #endif diff --git a/src/include/catalog/pg_proc.h b/src/include/catalog/pg_proc.h index acc60cf7f5..8f9954692b 100644 --- a/src/include/catalog/pg_proc.h +++ b/src/include/catalog/pg_proc.h @@ -7,7 +7,7 @@ * Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/catalog/pg_proc.h,v 1.494 2008/04/29 13:00:22 alvherre Exp $ + * $PostgreSQL: pgsql/src/include/catalog/pg_proc.h,v 1.495 2008/05/04 21:13:36 tgl Exp $ * * NOTES * The script catalog/genbki.sh reads this file and generates .bki @@ -3922,8 +3922,11 @@ DATA(insert OID = 2559 ( lastval PGNSP PGUID 12 1 0 f f t f v 0 20 "" _null DESCR("current value from last used sequence"); /* start time function */ -DATA(insert OID = 2560 ( pg_postmaster_start_time PGNSP PGUID 12 1 0 f f t f s 0 1184 "" _null_ _null_ _null_ pgsql_postmaster_start_time - _null_ _null_ )); +DATA(insert OID = 2560 ( pg_postmaster_start_time PGNSP PGUID 12 1 0 f f t f s 0 1184 "" _null_ _null_ _null_ pg_postmaster_start_time - _null_ _null_ )); DESCR("postmaster start time"); +/* config reload time function */ +DATA(insert OID = 2034 ( pg_conf_load_time PGNSP PGUID 12 1 0 f f t f s 0 1184 "" _null_ _null_ _null_ pg_conf_load_time - _null_ _null_ )); +DESCR("configuration load time"); /* new functions for Y-direction rtree opclasses */ DATA(insert OID = 2562 ( box_below PGNSP PGUID 12 1 0 f f t f i 2 16 "603 603" _null_ _null_ _null_ box_below - _null_ _null_ )); diff --git a/src/include/utils/timestamp.h b/src/include/utils/timestamp.h index 8950979b94..31ad788ebf 100644 --- a/src/include/utils/timestamp.h +++ b/src/include/utils/timestamp.h @@ -6,7 +6,7 @@ * Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/utils/timestamp.h,v 1.76 2008/03/21 01:31:43 tgl Exp $ + * $PostgreSQL: pgsql/src/include/utils/timestamp.h,v 1.77 2008/05/04 21:13:36 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -195,6 +195,8 @@ typedef struct /* Set at postmaster start */ extern TimestampTz PgStartTime; +/* Set at configuration reload */ +extern TimestampTz PgReloadTime; /* @@ -303,7 +305,8 @@ extern Datum now(PG_FUNCTION_ARGS); extern Datum statement_timestamp(PG_FUNCTION_ARGS); extern Datum clock_timestamp(PG_FUNCTION_ARGS); -extern Datum pgsql_postmaster_start_time(PG_FUNCTION_ARGS); +extern Datum pg_postmaster_start_time(PG_FUNCTION_ARGS); +extern Datum pg_conf_load_time(PG_FUNCTION_ARGS); /* Internal routines (not fmgr-callable) */ |