diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2014-04-24 13:29:48 -0400 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2014-04-24 13:30:00 -0400 |
commit | ea9ac774198ad097d2d322f81c39bd8cdfa8b04d (patch) | |
tree | f6fa3c6441080ab03a4073015c5dc7caaa7b084b | |
parent | f9cd2b7824f627069f81cbb47d767af039d66a0d (diff) | |
download | postgresql-ea9ac774198ad097d2d322f81c39bd8cdfa8b04d.tar.gz postgresql-ea9ac774198ad097d2d322f81c39bd8cdfa8b04d.zip |
Reset pg_stat_activity.xact_start during PREPARE TRANSACTION.
Once we've completed a PREPARE, our session is not running a transaction,
so its entry in pg_stat_activity should show xact_start as null, rather
than leaving the value as the start time of the now-prepared transaction.
I think possibly this oversight was triggered by faulty extrapolation
from the adjacent comment that says PrepareTransaction should not call
AtEOXact_PgStat, so tweak the wording of that comment.
Noted by Andres Freund while considering bug #10123 from Maxim Boguk,
although this error doesn't seem to explain that report.
Back-patch to all active branches.
-rw-r--r-- | src/backend/access/transam/xact.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/backend/access/transam/xact.c b/src/backend/access/transam/xact.c index 2b103f42559..463a4984047 100644 --- a/src/backend/access/transam/xact.c +++ b/src/backend/access/transam/xact.c @@ -2247,8 +2247,9 @@ PrepareTransaction(void) AtEOXact_Files(); AtEOXact_ComboCid(); AtEOXact_HashTables(true); - /* don't call AtEOXact_PgStat here */ + /* don't call AtEOXact_PgStat here; we fixed pgstat state above */ AtEOXact_Snapshot(true); + pgstat_report_xact_timestamp(0); CurrentResourceOwner = NULL; ResourceOwnerDelete(TopTransactionResourceOwner); |