Proposed mid-cycle update of typedefs.list

Tom Lane <tgl@sss.pgh.pa.us>

From: Tom Lane <tgl@sss.pgh.pa.us>
To: pgsql-hackers@lists.postgresql.org
Date: 2025-12-14T19:57:48Z
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 →
  1. Update typedefs.list to match what the buildfarm currently reports.

  2. Make "pgoff_t" be a typedef not a #define.

Attachments

I happened to notice that the buildfarm's current typedefs list
adds quite a few names that were not previously being captured,
for example

@@ -48,10 +48,15 @@ AggPath
 AggSplit
 AggState
 AggStatePerAgg
+AggStatePerAggData
 AggStatePerGroup
+AggStatePerGroupData
 AggStatePerHash
+AggStatePerHashData
 AggStatePerPhase
+AggStatePerPhaseData
 AggStatePerTrans
+AggStatePerTransData
 AggStrategy
 AggTransInfo
 Aggref

This is great, because it means that the declarations of these
structs need not look funny anymore.  But I am not quite sure why
this happened.  It's not a BF tooling change as I first thought,
because multiple animals are reporting these names and the
same animals are not capturing these names on the back branches.
The best theory I can come up with is that 1b105f947 et al
used these names in palloc0_array and similar calls, and that
somehow looks like a capturable typedef reference ... but how?

Anyway, I'll gladly take this outcome.  I propose applying the
attached to sync the in-tree typedefs list with what the
buildfarm is currently reporting.

One change I did not apply is that the buildfarm's list omits pgoff_t,
although we certainly still use that.  This is evidently because
pgoff_t is defined as a macro not a typedef name.  I guess we've been
manually preserving that name in the list, but it seems like we should
change "#define pgoff_t off_t" to "typedef off_t pgoff_t;" to avoid
that manual hack.  I've not done that here, though.

			regards, tom lane