Re: Our ABI diff infrastructure ignores enum SysCacheIdentifier

Andres Freund <andres@anarazel.de>

From: Andres Freund <andres@anarazel.de>
To: Michael Paquier <michael@paquier.xyz>
Cc: Andreas Karlsson <andreas@proxel.se>, Tom Lane <tgl@sss.pgh.pa.us>, pgsql-hackers@lists.postgresql.org
Date: 2026-03-27T21:17:49Z
Lists: pgsql-hackers
Hi,

On 2026-02-18 11:34:19 +0900, Michael Paquier wrote:
> The buildfarm is not complaining after c06b5b99bbb0 and ee642cccc43c,
> meaning that we are hopefully good for v19 and future versions.

I'm not happy that this change exposed syscache.h much more widely. Before
ee642cccc43c syscache.h was not included by any header. Now it is very widely
included, via objectaddress.h, which in turn is included by a lot of other
headers.

With ee642cccc43c a change to syscache.h rebuilds 632 files. With ee642cccc43c
reverted, it's just 196.

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.

Greetings,

Andres Freund



Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Reduce presence of syscache.h in src/include/

  2. Switch SysCacheIdentifier to a typedef enum

  3. Add concept of invalid value to SysCacheIdentifier