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:29:48 -0400 |
commit | d19bd29f07aef9e508ff047d128a4046cc8bc1e2 (patch) | |
tree | 6c166aa6807b0f56cc864563cf476670c925b623 /src | |
parent | b2c9b161b8ae36dd9972e77297274afb9a675782 (diff) | |
download | postgresql-d19bd29f07aef9e508ff047d128a4046cc8bc1e2.tar.gz postgresql-d19bd29f07aef9e508ff047d128a4046cc8bc1e2.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.
Diffstat (limited to 'src')
-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 b20d9732e78..9ee11f34f2c 100644 --- a/src/backend/access/transam/xact.c +++ b/src/backend/access/transam/xact.c @@ -2280,8 +2280,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); |