Add pg_conf_load_time() function to report when the Postgres configuration
files were last loaded. George Gensure
This commit is contained in:
parent
45173ae24e
commit
600da67fbe
@ -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">
|
<chapter id="functions">
|
||||||
<title>Functions and Operators</title>
|
<title>Functions and Operators</title>
|
||||||
@ -10891,6 +10891,12 @@ postgres=# select * from unnest2(array[[1,2],[3,4]]);
|
|||||||
<entry>server start time</entry>
|
<entry>server start time</entry>
|
||||||
</row>
|
</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>
|
<row>
|
||||||
<entry><literal><function>session_user</function></literal></entry>
|
<entry><literal><function>session_user</function></literal></entry>
|
||||||
<entry><type>name</type></entry>
|
<entry><type>name</type></entry>
|
||||||
@ -11036,6 +11042,20 @@ SET search_path TO <replaceable>schema</> <optional>, <replaceable>schema</>, ..
|
|||||||
server started.
|
server started.
|
||||||
</para>
|
</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>
|
<indexterm>
|
||||||
<primary>version</primary>
|
<primary>version</primary>
|
||||||
</indexterm>
|
</indexterm>
|
||||||
|
@ -37,7 +37,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* 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
|
* NOTES
|
||||||
*
|
*
|
||||||
@ -390,6 +390,7 @@ typedef struct
|
|||||||
InheritableSocket pgStatSock;
|
InheritableSocket pgStatSock;
|
||||||
pid_t PostmasterPid;
|
pid_t PostmasterPid;
|
||||||
TimestampTz PgStartTime;
|
TimestampTz PgStartTime;
|
||||||
|
TimestampTz PgReloadTime;
|
||||||
bool redirection_done;
|
bool redirection_done;
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
HANDLE PostmasterHandle;
|
HANDLE PostmasterHandle;
|
||||||
@ -4263,6 +4264,7 @@ save_backend_variables(BackendParameters * param, Port *port,
|
|||||||
|
|
||||||
param->PostmasterPid = PostmasterPid;
|
param->PostmasterPid = PostmasterPid;
|
||||||
param->PgStartTime = PgStartTime;
|
param->PgStartTime = PgStartTime;
|
||||||
|
param->PgReloadTime = PgReloadTime;
|
||||||
|
|
||||||
param->redirection_done = redirection_done;
|
param->redirection_done = redirection_done;
|
||||||
|
|
||||||
@ -4468,6 +4470,7 @@ restore_backend_variables(BackendParameters * param, Port *port)
|
|||||||
|
|
||||||
PostmasterPid = param->PostmasterPid;
|
PostmasterPid = param->PostmasterPid;
|
||||||
PgStartTime = param->PgStartTime;
|
PgStartTime = param->PgStartTime;
|
||||||
|
PgReloadTime = param->PgReloadTime;
|
||||||
|
|
||||||
redirection_done = param->redirection_done;
|
redirection_done = param->redirection_done;
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* 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 */
|
/* Set at postmaster start */
|
||||||
TimestampTz PgStartTime;
|
TimestampTz PgStartTime;
|
||||||
|
/* Set at configuration reload */
|
||||||
|
TimestampTz PgReloadTime;
|
||||||
|
|
||||||
|
|
||||||
static TimeOffset time2t(const int hour, const int min, const int sec, const fsec_t fsec);
|
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
|
Datum
|
||||||
pgsql_postmaster_start_time(PG_FUNCTION_ARGS)
|
pg_postmaster_start_time(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
PG_RETURN_TIMESTAMPTZ(PgStartTime);
|
PG_RETURN_TIMESTAMPTZ(PgStartTime);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Datum
|
||||||
|
pg_conf_load_time(PG_FUNCTION_ARGS)
|
||||||
|
{
|
||||||
|
PG_RETURN_TIMESTAMPTZ(PgReloadTime);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* GetCurrentTimestamp -- get the current operating system time
|
* GetCurrentTimestamp -- get the current operating system time
|
||||||
*
|
*
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
*
|
*
|
||||||
* Copyright (c) 2000-2008, PostgreSQL Global Development Group
|
* 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);
|
PGC_S_FILE, GUC_ACTION_SET, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Remember when we last successfully loaded the config file. */
|
||||||
|
PgReloadTime = GetCurrentTimestamp();
|
||||||
|
|
||||||
cleanup_list:
|
cleanup_list:
|
||||||
free_name_value_list(head);
|
free_name_value_list(head);
|
||||||
if (cvc)
|
if (cvc)
|
||||||
|
@ -37,7 +37,7 @@
|
|||||||
* Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group
|
* Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group
|
||||||
* Portions Copyright (c) 1994, Regents of the University of California
|
* 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 */
|
/* yyyymmddN */
|
||||||
#define CATALOG_VERSION_NO 200804292
|
#define CATALOG_VERSION_NO 200805041
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group
|
* Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group
|
||||||
* Portions Copyright (c) 1994, Regents of the University of California
|
* 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
|
* NOTES
|
||||||
* The script catalog/genbki.sh reads this file and generates .bki
|
* 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");
|
DESCR("current value from last used sequence");
|
||||||
|
|
||||||
/* start time function */
|
/* 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");
|
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 */
|
/* 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_ ));
|
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_ ));
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
* Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group
|
* Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group
|
||||||
* Portions Copyright (c) 1994, Regents of the University of California
|
* 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 */
|
/* Set at postmaster start */
|
||||||
extern TimestampTz PgStartTime;
|
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 statement_timestamp(PG_FUNCTION_ARGS);
|
||||||
extern Datum clock_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) */
|
/* Internal routines (not fmgr-callable) */
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user