summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndres Freund2017-08-06 03:52:53 +0000
committerAndres Freund2017-08-06 21:20:55 +0000
commit5af4456a56472e1928e838c893eb0022f7ab28fb (patch)
treebac23f67dbb8bb5c2c5337f67b25b7b66f315002
parent0d1f98b80e094827199da8a3dea51f04d134b7bf (diff)
Fix thinko introduced in 2bef06d516460 et al.
The callers for GetOldestSafeDecodingTransactionId() all inverted the argument for the argument introduced in 2bef06d516460. Luckily this appears to be inconsequential for the moment, as we wait for concurrent in-progress transaction when assembling a snapshot. Additionally this could only make a difference when adding a second logical slot, because only a pre-existing slot could cause an issue by lowering the returned xid dangerously much. Reported-By: Antonin Houska Discussion: https://postgr.es/m/32704.1496993134@localhost Backport: 9.4-, where 2bef06d516460 was backpatched to.
-rw-r--r--src/backend/replication/logical/logical.c2
-rw-r--r--src/backend/replication/logical/snapbuild.c2
2 files changed, 2 insertions, 2 deletions
diff --git a/src/backend/replication/logical/logical.c b/src/backend/replication/logical/logical.c
index 85721ead3e..efb9785f25 100644
--- a/src/backend/replication/logical/logical.c
+++ b/src/backend/replication/logical/logical.c
@@ -288,7 +288,7 @@ CreateInitDecodingContext(char *plugin,
*/
LWLockAcquire(ProcArrayLock, LW_EXCLUSIVE);
- xmin_horizon = GetOldestSafeDecodingTransactionId(need_full_snapshot);
+ xmin_horizon = GetOldestSafeDecodingTransactionId(!need_full_snapshot);
slot->effective_catalog_xmin = xmin_horizon;
slot->data.catalog_xmin = xmin_horizon;
diff --git a/src/backend/replication/logical/snapbuild.c b/src/backend/replication/logical/snapbuild.c
index 281b7ab869..153d1712ef 100644
--- a/src/backend/replication/logical/snapbuild.c
+++ b/src/backend/replication/logical/snapbuild.c
@@ -574,7 +574,7 @@ SnapBuildInitialSnapshot(SnapBuild *builder)
TransactionId safeXid;
LWLockAcquire(ProcArrayLock, LW_SHARED);
- safeXid = GetOldestSafeDecodingTransactionId(true);
+ safeXid = GetOldestSafeDecodingTransactionId(false);
LWLockRelease(ProcArrayLock);
Assert(TransactionIdPrecedesOrEquals(safeXid, snap->xmin));