Re: Add 64-bit XIDs into PostgreSQL 15
Maxim Orlov <orlovmg@gmail.com>
From: Maxim Orlov <orlovmg@gmail.com>
To: Zhang Mingli <zmlpostgres@gmail.com>
Cc: Michael Paquier <michael@paquier.xyz>,
Justin Pryzby <pryzby@telsasoft.com>, Dilip Kumar <dilipbalaut@gmail.com>, Pavel Borisov <pashkin.elfe@gmail.com>, Aleksander Alekseev <aleksander@timescale.com>,
pgsql-hackers@lists.postgresql.org, Stephen Frost <sfrost@snowman.net>,
Alexander Korotkov <aekorotkov@gmail.com>, Andres Freund <andres@anarazel.de>, Ilya Anfimov <ilan@tzirechnoy.com>
Date: 2022-11-03T08:11:33Z
Lists: pgsql-hackers
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Add SLRU tests for 64-bit page case
- a60b8a58f435 17.0 landed
-
Make use FullTransactionId in 2PC filenames
- 5a1dfde8334b 17.0 landed
-
Use larger segment file names for pg_notify
- 2cdf131c46e6 17.0 landed
-
Index SLRUs by 64-bit integers rather than by 32-bit integers
- 4ed8f0913bfd 17.0 landed
Attachments
- v49-0004-Use-64-bit-pages-representation-in-SLRU-callers.patch (application/octet-stream) patch v49-0004
- v49-0001-Use-64-bit-numbering-of-SLRU-pages.patch (application/octet-stream) patch v49-0001
- v49-0005-Add-initdb-option-to-initialize-cluster-with-non.patch (application/octet-stream) patch v49-0005
- v49-0002-Use-64-bit-format-to-output-XIDs.patch (application/octet-stream) patch v49-0002
- v49-0003-Use-64-bit-FullTransactionId-instead-of-Epoch-xi.patch (application/octet-stream) patch v49-0003
- v49-0006-README.XID64.patch (application/octet-stream) patch v49-0006
- v49-0007-Use-64-bit-GUCs.patch (application/octet-stream) patch v49-0007
- v49-0008-Use-64-bit-XIDs.patch (application/octet-stream) patch v49-0008
Hi! I attach an additional V48-0009 patch as they are just comments, apply it > if you want to. > Big thank you for your review. I've applied your addition in the recent patch set below. Besides, mentioned above, next changes are made: - rename HeapTupleCopyBaseFromPage to HeapTupleCopyXidsFromPage, since this old name came from the time when еру "t_xid_base" was stored in tuple, and not correspond to recent state of the code; - replace ToastTupleHeader* calls with HeapHeader* with the "is_toast" argument. This reduces diff and make the code more readable; - put HeapTupleSetZeroXids calls in several places for the sake of redundancy; - in heap_tuple_would_freeze add case to reset xmax without reading clog; - rename SeqTupleHeaderSetXmax/Xmin to SeqTupleSetXmax/min and refactoring of the function; Now it will set HeapTuple and HeapTupleHeader xmax; - add case of int64 values in check_GUC_init; - massive refactoring in htup_details.h to use inline functions with type control over macro; - reorder code in htup_details.h to reduce overall diff. As always, reviews and opinions are very welcome! -- Best regards, Maxim Orlov.