Re: Potential ABI breakage in upcoming minor releases
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Matthias van de Meent <boekewurm+postgres@gmail.com>
Cc: "David E. Wheeler" <david@justatheory.com>,
Noah Misch <noah@leadboat.com>,
Aleksander Alekseev <aleksander@timescale.com>,
pgsql-hackers <pgsql-hackers@postgresql.org>,
Marco Slot <marco.slot@gmail.com>,
Alvaro Herrera <alvherre@alvh.no-ip.org>,
Christoph Berg <myon@debian.org>,
Pavan Deolasee <pavan.deolasee@gmail.com>
Date: 2024-11-26T18:24:35Z
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 →
-
Undo unintentional ABI break in struct ResultRelInfo.
- ee33d58471de 16.6 landed
- 6bfacd368bb4 17.2 landed
- 17db248f318f 15.10 landed
- 099e711b77b8 14.15 landed
-
For inplace update durability, make heap_update() callers wait.
- 51ff46de29f6 16.5 cited
-
Fix btmarkpos/btrestrpos array key wraparound bug.
- 3fa81b62e09b 16.1 cited
-
Fix calculation of which GENERATED columns need to be updated.
- 8cd190e13a22 14.7 cited
Matthias van de Meent <boekewurm+postgres@gmail.com> writes: > I would also add something like the following, to protect against > corruption and deserialization errors of the catalog pg_node_tree > fields, because right now the generated readfuncs.c code ignores field > names, assumes ABI field order, and is generally quite sensitive to > binary changes, which can cause corruption and/or errors during > readback of those nodes: > * If you update the contents of Nodes which are stored on disk as > pg_node_tree, you also have to make sure that the read function for > that node type is able to read both the old and the new serialized > format. No, actually that policy is "You cannot change the contents of Node structs at all if they could appear in stored views, rules, default expressions, etc". We don't do catversion bumps in back branches, which means that catalog contents have to be backwards as well as forwards compatible across minor releases. That's not really something that belongs under the heading of ABI breaks, I think. It's about "the on-disk representation of catalogs is frozen within a release series", which extends to more things than Nodes. Still, maybe a parenthetical remark wouldn't hurt. Perhaps: (Keep in mind also that Node structs can't be changed at all if they might appear in stored views, rules, etc.) regards, tom lane