aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2017-04-23 13:10:57 -0400
committerTom Lane <tgl@sss.pgh.pa.us>2017-04-23 13:10:57 -0400
commita66e01bbcc8808674ade41d38cfba711a36b8b15 (patch)
treeca9707d31a05ba7b69e425ded892031bb0ea2afc /src
parentf91160c56e71df112209b15212deb8adf46e0680 (diff)
downloadpostgresql-a66e01bbcc8808674ade41d38cfba711a36b8b15.tar.gz
postgresql-a66e01bbcc8808674ade41d38cfba711a36b8b15.zip
Fix order of arguments to SubTransSetParent().
ProcessTwoPhaseBuffer (formerly StandbyRecoverPreparedTransactions) mixed up the parent and child XIDs when calling SubTransSetParent to record the transactions' relationship in pg_subtrans. Remarkably, analysis by Simon Riggs suggests that this doesn't lead to visible problems (at least, not in non-Assert builds). That might explain why we'd not noticed it before. Nonetheless, it's surely wrong. This code was born broken, so back-patch to all supported branches. Discussion: https://postgr.es/m/20110.1492905318@sss.pgh.pa.us
Diffstat (limited to 'src')
-rw-r--r--src/backend/access/transam/twophase.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/backend/access/transam/twophase.c b/src/backend/access/transam/twophase.c
index 6f82e546cb3..a2804c8f033 100644
--- a/src/backend/access/transam/twophase.c
+++ b/src/backend/access/transam/twophase.c
@@ -1934,7 +1934,7 @@ StandbyRecoverPreparedTransactions(bool overwriteOK)
TransactionId subxid = subxids[i];
Assert(TransactionIdFollows(subxid, xid));
- SubTransSetParent(xid, subxid, overwriteOK);
+ SubTransSetParent(subxid, xid, overwriteOK);
}
}
}