diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2013-02-07 14:44:15 -0500 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2013-02-07 14:44:15 -0500 |
commit | d6f9b2cac36da23373946ff382db0e6217c813a1 (patch) | |
tree | 37b675007d8dd240a3f4692a2d11a6b344c06048 /src | |
parent | 69c026512f1141a92dca118768d858e59d76a994 (diff) | |
download | postgresql-d6f9b2cac36da23373946ff382db0e6217c813a1.tar.gz postgresql-d6f9b2cac36da23373946ff382db0e6217c813a1.zip |
Fix possible failure to send final transaction counts to stats collector.
Normally, we suppress sending a tabstats message to the collector unless
there were some actual table stats to send. However, during backend exit
we should force out the message if there are any transaction commit/abort
counts to send, else the session's last few commit/abort counts will never
get reported at all. We had logic for this, but the short-circuit test
at the top of pgstat_report_stat() ignored the "force" flag, with the
consequence that session-ending transactions that touched no database-local
tables would not get counted. Seems to be an oversight in my commit
641912b4d17fd214a5e5bae4e7bb9ddbc28b144b, which added the "force" flag.
That was back in 8.3, so back-patch to all supported versions.
Diffstat (limited to 'src')
-rw-r--r-- | src/backend/postmaster/pgstat.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/backend/postmaster/pgstat.c b/src/backend/postmaster/pgstat.c index 1d80c311d87..77e195e554d 100644 --- a/src/backend/postmaster/pgstat.c +++ b/src/backend/postmaster/pgstat.c @@ -682,8 +682,8 @@ pgstat_report_stat(bool force) int i; /* Don't expend a clock check if nothing to do */ - if ((pgStatTabList == NULL || pgStatTabList->tsa_used == 0) - && !have_function_stats) + if ((pgStatTabList == NULL || pgStatTabList->tsa_used == 0) && + !have_function_stats && !force) return; /* |