Skip to content

Commit 56fadbe

Browse files
committed
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 SnapBuildInitialSnapshot(). Existing callers of SnapBuildBuildSnapshot() do not care about the type of snapshot used, but extensions calling it actually may, as reported. While on it, mark correctly the snapshot type when importing one. This is cosmetic as the field is enforced to 0. Author: Antonin Houska Reviewed-by: Álvaro Herrera, Michael Paquier Discussion: https://postgr.es/m/23215.1527665193@localhost Backpatch-through: 9.4
1 parent 90cfa49 commit 56fadbe

File tree

2 files changed

+4
-0
lines changed

2 files changed

+4
-0
lines changed

src/backend/replication/logical/snapbuild.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -616,6 +616,8 @@ SnapBuildInitialSnapshot(SnapBuild *builder)
616616
TransactionIdAdvance(xid);
617617
}
618618

619+
/* adjust remaining snapshot fields as needed */
620+
snap->snapshot_type = SNAPSHOT_MVCC;
619621
snap->xcnt = newxcnt;
620622
snap->xip = newxip;
621623

src/backend/utils/time/snapmgr.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1509,6 +1509,8 @@ ImportSnapshot(const char *idstr)
15091509
src_isolevel = parseIntFromText("iso:", &filebuf, path);
15101510
src_readonly = parseIntFromText("ro:", &filebuf, path);
15111511

1512+
snapshot.snapshot_type = SNAPSHOT_MVCC;
1513+
15121514
snapshot.xmin = parseXidFromText("xmin:", &filebuf, path);
15131515
snapshot.xmax = parseXidFromText("xmax:", &filebuf, path);
15141516

0 commit comments

Comments
 (0)