Commit 3428ef79 authored by Simon Riggs's avatar Simon Riggs

Reverting 42b4b0b2

Buildfarm issues and other reported issues
parent 70adf2fb
...@@ -2137,7 +2137,7 @@ CommitTransaction(void) ...@@ -2137,7 +2137,7 @@ CommitTransaction(void)
AtEOXact_ComboCid(); AtEOXact_ComboCid();
AtEOXact_HashTables(true); AtEOXact_HashTables(true);
AtEOXact_PgStat(true); AtEOXact_PgStat(true);
AtEOXact_Snapshot(true, false); AtEOXact_Snapshot(true);
AtCommit_ApplyLauncher(); AtCommit_ApplyLauncher();
pgstat_report_xact_timestamp(0); pgstat_report_xact_timestamp(0);
...@@ -2409,7 +2409,7 @@ PrepareTransaction(void) ...@@ -2409,7 +2409,7 @@ PrepareTransaction(void)
AtEOXact_ComboCid(); AtEOXact_ComboCid();
AtEOXact_HashTables(true); AtEOXact_HashTables(true);
/* don't call AtEOXact_PgStat here; we fixed pgstat state above */ /* don't call AtEOXact_PgStat here; we fixed pgstat state above */
AtEOXact_Snapshot(true, true); AtEOXact_Snapshot(true);
pgstat_report_xact_timestamp(0); pgstat_report_xact_timestamp(0);
CurrentResourceOwner = NULL; CurrentResourceOwner = NULL;
...@@ -2640,7 +2640,7 @@ CleanupTransaction(void) ...@@ -2640,7 +2640,7 @@ CleanupTransaction(void)
* do abort cleanup processing * do abort cleanup processing
*/ */
AtCleanup_Portals(); /* now safe to release portal memory */ AtCleanup_Portals(); /* now safe to release portal memory */
AtEOXact_Snapshot(false, false); /* and release the transaction's snapshots */ AtEOXact_Snapshot(false); /* and release the transaction's snapshots */
CurrentResourceOwner = NULL; /* and resource owner */ CurrentResourceOwner = NULL; /* and resource owner */
if (TopTransactionResourceOwner) if (TopTransactionResourceOwner)
......
...@@ -954,12 +954,7 @@ xmin_cmp(const pairingheap_node *a, const pairingheap_node *b, void *arg) ...@@ -954,12 +954,7 @@ xmin_cmp(const pairingheap_node *a, const pairingheap_node *b, void *arg)
* *
* If there are no more snapshots, we can reset our PGXACT->xmin to InvalidXid. * If there are no more snapshots, we can reset our PGXACT->xmin to InvalidXid.
* Note we can do this without locking because we assume that storing an Xid * Note we can do this without locking because we assume that storing an Xid
* is atomic. We do this because it will allow multi-statement transactions to * is atomic.
* reset their xmin and prevent us from holding back removal of dead rows;
* this has little purpose when we are dealing with very fast statements in
* read committed mode since the xmin will advance quickly anyway. It has no
* use at all when we are running single statement transactions since the xmin
* is reset as part of end of transaction anyway.
* *
* Even if there are some remaining snapshots, we may be able to advance our * Even if there are some remaining snapshots, we may be able to advance our
* PGXACT->xmin to some degree. This typically happens when a portal is * PGXACT->xmin to some degree. This typically happens when a portal is
...@@ -1056,7 +1051,7 @@ AtSubAbort_Snapshot(int level) ...@@ -1056,7 +1051,7 @@ AtSubAbort_Snapshot(int level)
* Snapshot manager's cleanup function for end of transaction * Snapshot manager's cleanup function for end of transaction
*/ */
void void
AtEOXact_Snapshot(bool isCommit, bool isPrepare) AtEOXact_Snapshot(bool isCommit)
{ {
/* /*
* In transaction-snapshot mode we must release our privately-managed * In transaction-snapshot mode we must release our privately-managed
...@@ -1141,17 +1136,7 @@ AtEOXact_Snapshot(bool isCommit, bool isPrepare) ...@@ -1141,17 +1136,7 @@ AtEOXact_Snapshot(bool isCommit, bool isPrepare)
FirstSnapshotSet = false; FirstSnapshotSet = false;
/*
* During normal commit and abort processing, we call
* ProcArrayEndTransaction() or ProcArrayClearTransaction() to
* reset the PgXact->xmin. That call happens prior to the call to
* AtEOXact_Snapshot(), so we need not touch xmin here at all,
* accept when we are preparing a transaction.
*/
if (isPrepare)
SnapshotResetXmin(); SnapshotResetXmin();
Assert(MyPgXact->xmin == 0);
} }
......
...@@ -85,7 +85,7 @@ extern void UnregisterSnapshotFromOwner(Snapshot snapshot, ResourceOwner owner); ...@@ -85,7 +85,7 @@ extern void UnregisterSnapshotFromOwner(Snapshot snapshot, ResourceOwner owner);
extern void AtSubCommit_Snapshot(int level); extern void AtSubCommit_Snapshot(int level);
extern void AtSubAbort_Snapshot(int level); extern void AtSubAbort_Snapshot(int level);
extern void AtEOXact_Snapshot(bool isCommit, bool isPrepare); extern void AtEOXact_Snapshot(bool isCommit);
extern void ImportSnapshot(const char *idstr); extern void ImportSnapshot(const char *idstr);
extern bool XactHasExportedSnapshots(void); extern bool XactHasExportedSnapshots(void);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment