]> granicus.if.org Git - postgresql/commit
Use FullTransactionId for the transaction stack.
authorThomas Munro <tmunro@postgresql.org>
Wed, 27 Mar 2019 21:59:19 +0000 (10:59 +1300)
committerThomas Munro <tmunro@postgresql.org>
Thu, 28 Mar 2019 05:24:43 +0000 (18:24 +1300)
commitad308058cc8666c50b43179e64d6bb7aeb3ba169
treebf8c6e0f7d056eba1fa182e26c53dda7e0e72377
parent2fc7af5e966043a412e8e69c135fae55a2db6d4f
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
src/backend/access/transam/varsup.c
src/backend/access/transam/xact.c
src/include/access/transam.h
src/include/access/xact.h
src/tools/pgindent/typedefs.list