Re: Usage of epoch in txid_current - Mailing list pgsql-hackers

From Tom Lane
Subject Re: Usage of epoch in txid_current
Date
Msg-id 5284.1531180585@sss.pgh.pa.us
Whole thread Raw
In response to Re: Usage of epoch in txid_current  (Andres Freund <andres@anarazel.de>)
Responses Re: Usage of epoch in txid_current
List pgsql-hackers
Andres Freund <andres@anarazel.de> writes:
> On 2018-07-10 11:35:59 +1200, Thomas Munro wrote:
>> I think it's probably a good idea to make it very explicit when moving
>> between big and small transaction IDs, hence the including of the word
>> 'big' in variable and function names and the use of a function-like
>> macro (rather than implicit conversion, which C doesn't give me a good
>> way to prevent).  Otherwise there is a class of bug that is hidden for
>> the first 2^32 transactions.

> You could have BigTransactionId (maybe renamed to FullTransactionId?) be
> a struct type. That'd prevent such issues. Most compilers these days
> should be more than good enough to optimize passing around an 8byte
> struct by value...

Or, perhaps, use a struct in assert builds and int64 otherwise?
You could hide the ensuing notational differences in macros.

            regards, tom lane


pgsql-hackers by date:

Previous
From: RK
Date:
Subject: Costing bug in hash join logic for semi joins
Next
From: Michael Paquier
Date:
Subject: Re: Simplify final sync in pg_rewind's target folder and add--no-sync