Hi, Currently, txid_current and friends export a 64-bit format of transaction id that is extended with an “epoch” counter so that it will not wrap around during the life of an installation. The epoch value it uses is based on the epoch that is maintained by checkpoint (aka only checkpoint increments it).
Now if epoch changes multiple times between two checkpoints (practically the chances of this are bleak, but there is a theoretical possibility), then won't the computation of xids will go wrong? Basically, it can give the same value of txid after wraparound if the checkpoint doesn't occur between the two calls to txid_current. Am I missing something which ensures that epoch gets incremented at or after wraparound? -- With Regards, Amit Kapila. EnterpriseDB: http://www.enterprisedb.com