Re: XID formatting and SLRU refactorings (was: Add 64-bit XIDs into PostgreSQL 15)

Peter Eisentraut <peter.eisentraut@enterprisedb.com>

From: Peter Eisentraut <peter.eisentraut@enterprisedb.com>
To: Aleksander Alekseev <aleksander@timescale.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Cc: Kyotaro Horiguchi <horikyota.ntt@gmail.com>, Maxim Orlov <orlovmg@gmail.com>, Pavel Borisov <pashkin.elfe@gmail.com>, Alexander Korotkov <aekorotkov@gmail.com>, Ilya Anfimov <ilan@tzirechnoy.com>
Date: 2022-03-17T13:23:36Z
Lists: pgsql-hackers
On 17.03.22 14:12, Aleksander Alekseev wrote:
> v19-0001 changes the format string for XIDs from %u to XID_FMT. This
> refactoring allows us to switch to UINT64_FORMAT by changing one
> #define in the future patches.
> 
> Kyotaro suggested using `errmsg("blah blah  %lld ..", (long long)
> xid)` instead in order to simplify localization of the error messages.
> Personally I don't have a strong opinion here. Either approach will
> work and will affect the error messages eventually. Please let us know
> what you think.

This is not a question of simplification.  Translatable messages with 
embedded macros won't work.  This patch isn't going to be acceptable.



Commits

  1. Fix more holes with SLRU code in need of int64 for segment numbers

  2. Use more consistently int64 for page numbers in SLRU-related code

  3. Improve comments in slru.{c,h} about segment name format

  4. Reorder actions in ProcArrayApplyRecoveryInfo()

  5. Fix typo in 5a1dfde8334b

  6. Fix warning due non-standard inline declaration in 4ed8f0913bfdb5f355

  7. Add SLRU tests for 64-bit page case

  8. Make use FullTransactionId in 2PC filenames

  9. Use larger segment file names for pg_notify

  10. Index SLRUs by 64-bit integers rather than by 32-bit integers

  11. Keep track of transaction commit timestamps

  12. Handle 5-char filenames in SlruScanDirectory