Re: Our ABI diff infrastructure ignores enum SysCacheIdentifier
Michael Paquier <michael@paquier.xyz>
From: Michael Paquier <michael@paquier.xyz>
To: Andres Freund <andres@anarazel.de>
Cc: Andreas Karlsson <andreas@proxel.se>, Tom Lane <tgl@sss.pgh.pa.us>, pgsql-hackers@lists.postgresql.org
Date: 2026-04-06T00:01:24Z
Lists: pgsql-hackers
Attachments
- 0001-Remove-some-syscache-includes.patch (text/plain) patch 0001
On Fri, Mar 27, 2026 at 05:17:49PM -0400, Andres Freund wrote: > With ee642cccc43c a change to syscache.h rebuilds 632 files. With ee642cccc43c > reverted, it's just 196. Point received. > Leaving build impact aside, I don't think it's good to expose a relatively low > level detail like syscache.h to most of the backend. It's imo something that > only .c, never .h files should need. And as we already define SysCacheIdentifier in its own header, this can be answered with the attached, removing the need for syscache.h in objectaddress.h and inval.h. The trick in genbki.pl was needed to avoid some noise due to -Wenum-compare in a couple of files. Would you prefer a different option? That would protect from large rebuilds should syscache.h be touched in some way. A different option would be to move get_object_catcache_oid() and get_object_catcache_name() out of objectaddress.h to a different header, limiting the scope of what's pulled in objectaddress.h. Anyway, the attached should take care of your main concern, I guess? -- Michael
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Reduce presence of syscache.h in src/include/
- e0fa5bd14656 19 (unreleased) landed
-
Switch SysCacheIdentifier to a typedef enum
- ee642cccc43c 19 (unreleased) landed
-
Add concept of invalid value to SysCacheIdentifier
- c06b5b99bbb0 19 (unreleased) landed