On Tue, Mar 26, 2019 at 12:58 PM Thomas Munro <thomas.mu...@gmail.com> wrote:
> On Tue, Mar 26, 2019 at 3:23 AM Heikki Linnakangas <hlinn...@iki.fi> wrote:
> > Looks good.

I did some testing and proof-reading and made a few minor changes:

* I tidied up the code that serialises transaction state.  It was
already hammering round pegs into square holes, and the previous patch
made that even worse, so I added a new struct
SerializedTransactionState to do this properly.

* I open-coded Get{Current,Top}TransactionId[IfAny](), rather than
having them call the "Full" variants, so that nobody could accuse me
of adding an extra function call that might not be inlined.  It's just
a couple of lines anyway.

* I kept the name GetNewTransactionId(), since it's referred to in
many places in comments etc.  Previously I had called it
GetNewFullTransactionId() and had GetNewTransactionId() just call that
and truncate to 32 bits, but there wasn't much point without an
in-tree caller for the narrow version.  If there is any out-of-tree
code calling this, it will now fail to compile thanks to our
non-convertible return type.

These are the patches I'm planning to push tomorrow.

I still need to look into Andres's suggestion about getting rid of
epoch from various user interfaces and showing 64 bit numbers.  I
should probably also find a place in the relevant README to explain
this new scheme.  I will post follow-up patches for those.

-- 
Thomas Munro
https://enterprisedb.com

Attachment: 0001-Add-basic-infrastructure-for-64-bit-transaction-I-v8.patch
Description: Binary data

Attachment: 0002-Use-FullTransactionId-for-the-transaction-stack-v8.patch
Description: Binary data

Reply via email to