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
0001-Add-basic-infrastructure-for-64-bit-transaction-I-v8.patch
Description: Binary data
0002-Use-FullTransactionId-for-the-transaction-stack-v8.patch
Description: Binary data