files were last loaded.
George Gensure
-<!-- $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>
        <entry>server start time</entry>
       </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>
    </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>
 
  *
  *
  * 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
  *
    InheritableSocket pgStatSock;
    pid_t       PostmasterPid;
    TimestampTz PgStartTime;
+   TimestampTz PgReloadTime;
    bool        redirection_done;
 #ifdef WIN32
    HANDLE      PostmasterHandle;
 
    param->PostmasterPid = PostmasterPid;
    param->PgStartTime = PgStartTime;
+   param->PgReloadTime = PgReloadTime;
 
    param->redirection_done = redirection_done;
 
 
    PostmasterPid = param->PostmasterPid;
    PgStartTime = param->PgStartTime;
+   PgReloadTime = param->PgReloadTime;
 
    redirection_done = param->redirection_done;
 
 
  *
  *
  * 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 $
  *
  *-------------------------------------------------------------------------
  */
 
 /* 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);
 }
 
 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
  *
 
  *
  * 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 $
  */
 
 %{
                          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)
 
  * 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 $
  *
  *-------------------------------------------------------------------------
  */
  */
 
 /*                         yyyymmddN */
-#define CATALOG_VERSION_NO 200804292
+#define CATALOG_VERSION_NO 200805041
 
 #endif
 
  * 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
 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_ ));
 
  * 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 $
  *
  *-------------------------------------------------------------------------
  */
 
 /* Set at postmaster start */
 extern TimestampTz PgStartTime;
+/* Set at configuration reload */
+extern TimestampTz PgReloadTime;
 
 
 /*
 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) */