Use FullTransactionId for the transaction stack.
Provide GetTopFullTransactionId() and GetCurrentFullTransactionId().
The intended users of these interfaces are access methods that use
xids for visibility checks but don't want to have to go back and
"freeze" existing references some time later before the 32 bit xid
counter wraps around.
Use a new struct to serialize the transaction state for parallel
query, because FullTransactionId doesn't fit into the previous
serialization scheme very well.
Author: Thomas Munro
Reviewed-by: Heikki Linnakangas
Discussion: https://postgr.es/m/CAA4eK1%2BMv%2Bmb0HFfWM9Srtc6MVe160WFurXV68iAFMcagRZ0dQ%40mail.gmail.com
Branch
------
master
Details
-------
https://git.postgresql.org/pg/commitdiff/ad308058cc8666c50b43179e64d6bb7aeb3ba169
Modified Files
--------------
src/backend/access/transam/varsup.c | 13 +-
src/backend/access/transam/xact.c | 229 ++++++++++++++++++++++++------------
src/include/access/transam.h | 3 +-
src/include/access/xact.h | 5 +
src/tools/pgindent/typedefs.list | 1 +
5 files changed, 170 insertions(+), 81 deletions(-)