Fix oversight in my patch of yesterday: forgot to ensure that stats would

still be forced out at backend exit.
This commit is contained in:
Tom Lane 2007-04-30 16:37:08 +00:00
parent 957d08c81f
commit 641912b4d1
3 changed files with 10 additions and 9 deletions

View File

@ -13,7 +13,7 @@
* *
* Copyright (c) 2001-2007, PostgreSQL Global Development Group * Copyright (c) 2001-2007, PostgreSQL Global Development Group
* *
* $PostgreSQL: pgsql/src/backend/postmaster/pgstat.c,v 1.154 2007/04/30 03:23:49 tgl Exp $ * $PostgreSQL: pgsql/src/backend/postmaster/pgstat.c,v 1.155 2007/04/30 16:37:08 tgl Exp $
* ---------- * ----------
*/ */
#include "postgres.h" #include "postgres.h"
@ -615,7 +615,7 @@ void allow_immediate_pgstat_restart(void)
* ---------- * ----------
*/ */
void void
pgstat_report_tabstat(void) pgstat_report_tabstat(bool force)
{ {
static TimestampTz last_report = 0; static TimestampTz last_report = 0;
TimestampTz now; TimestampTz now;
@ -627,10 +627,11 @@ pgstat_report_tabstat(void)
/* /*
* Don't send a message unless it's been at least PGSTAT_STAT_INTERVAL * Don't send a message unless it's been at least PGSTAT_STAT_INTERVAL
* msec since we last sent one. * msec since we last sent one, or the caller wants to force stats out.
*/ */
now = GetCurrentTransactionStopTimestamp(); now = GetCurrentTransactionStopTimestamp();
if (!TimestampDifferenceExceeds(last_report, now, PGSTAT_STAT_INTERVAL)) if (!force &&
!TimestampDifferenceExceeds(last_report, now, PGSTAT_STAT_INTERVAL))
return; return;
last_report = now; last_report = now;
@ -1491,7 +1492,7 @@ pgstat_beshutdown_hook(int code, Datum arg)
{ {
volatile PgBackendStatus *beentry = MyBEEntry; volatile PgBackendStatus *beentry = MyBEEntry;
pgstat_report_tabstat(); pgstat_report_tabstat(true);
/* /*
* Clear my status entry, following the protocol of bumping st_changecount * Clear my status entry, following the protocol of bumping st_changecount

View File

@ -8,7 +8,7 @@
* *
* *
* IDENTIFICATION * IDENTIFICATION
* $PostgreSQL: pgsql/src/backend/tcop/postgres.c,v 1.532 2007/04/16 18:21:07 tgl Exp $ * $PostgreSQL: pgsql/src/backend/tcop/postgres.c,v 1.533 2007/04/30 16:37:08 tgl Exp $
* *
* NOTES * NOTES
* this is the "main" module of the postgres backend and * this is the "main" module of the postgres backend and
@ -3444,7 +3444,7 @@ PostgresMain(int argc, char *argv[], const char *username)
} }
else else
{ {
pgstat_report_tabstat(); pgstat_report_tabstat(false);
set_ps_display("idle", false); set_ps_display("idle", false);
pgstat_report_activity("<IDLE>"); pgstat_report_activity("<IDLE>");

View File

@ -5,7 +5,7 @@
* *
* Copyright (c) 2001-2007, PostgreSQL Global Development Group * Copyright (c) 2001-2007, PostgreSQL Global Development Group
* *
* $PostgreSQL: pgsql/src/include/pgstat.h,v 1.57 2007/03/30 18:34:55 mha Exp $ * $PostgreSQL: pgsql/src/include/pgstat.h,v 1.58 2007/04/30 16:37:08 tgl Exp $
* ---------- * ----------
*/ */
#ifndef PGSTAT_H #ifndef PGSTAT_H
@ -416,7 +416,7 @@ extern void PgstatCollectorMain(int argc, char *argv[]);
*/ */
extern void pgstat_ping(void); extern void pgstat_ping(void);
extern void pgstat_report_tabstat(void); extern void pgstat_report_tabstat(bool force);
extern void pgstat_vacuum_tabstat(void); extern void pgstat_vacuum_tabstat(void);
extern void pgstat_drop_database(Oid databaseid); extern void pgstat_drop_database(Oid databaseid);
extern void pgstat_drop_relation(Oid relid); extern void pgstat_drop_relation(Oid relid);