summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Paquier <michael@paquier.xyz>2019-02-20 12:32:23 +0900
committerMichael Paquier <michael@paquier.xyz>2019-02-20 12:32:23 +0900
commit2ad57e9e9faf5e8a6fdec048636581df7210478f (patch)
treefbb8d17405c3784f4491ac7481bcaa306038c560
parent64f6a65a00b0b6d768fc3fc49047524f4f99a54d (diff)
Mark correctly initial slot snapshots with MVCC type when built
When building an initial slot snapshot, snapshots are marked with historic MVCC snapshots as type with the marker field being set in SnapBuildBuildSnapshot() but not overriden in SnapBuildExportSnapshot(). Existing callers of SnapBuildBuildSnapshot() do not care about the type of snapshot used, but extensions calling it actually may, as reported. Author: Antonin Houska Reviewed-by: Álvaro Herrera, Michael Paquier Discussion: https://postgr.es/m/23215.1527665193@localhost Backpatch-through: 9.4
-rw-r--r--src/backend/replication/logical/snapbuild.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/backend/replication/logical/snapbuild.c b/src/backend/replication/logical/snapbuild.c
index 7fb7057fa32..98bdecfcfaf 100644
--- a/src/backend/replication/logical/snapbuild.c
+++ b/src/backend/replication/logical/snapbuild.c
@@ -636,6 +636,8 @@ SnapBuildExportSnapshot(SnapBuild *builder)
TransactionIdAdvance(xid);
}
+ /* adjust remaining snapshot fields as needed */
+ snap->satisfies = HeapTupleSatisfiesMVCC;
snap->xcnt = newxcnt;
snap->xip = newxip;