]> granicus.if.org Git - postgresql/commitdiff
Mark correctly initial slot snapshots with MVCC type when built
authorMichael Paquier <michael@paquier.xyz>
Wed, 20 Feb 2019 03:32:15 +0000 (12:32 +0900)
committerMichael Paquier <michael@paquier.xyz>
Wed, 20 Feb 2019 03:32:15 +0000 (12:32 +0900)
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

src/backend/replication/logical/snapbuild.c

index f66394e421126a52e8a21b158936e9ae8718f68e..7bd4a74225cce709c2a4bc5c6cf76eb35e8db2cc 100644 (file)
@@ -635,6 +635,8 @@ SnapBuildExportSnapshot(SnapBuild *builder)
                TransactionIdAdvance(xid);
        }
 
+       /* adjust remaining snapshot fields as needed */
+       snap->satisfies = HeapTupleSatisfiesMVCC;
        snap->xcnt = newxcnt;
        snap->xip = newxip;