Re: Autogenerate some wait events code and documentation

Michael Paquier <michael@paquier.xyz>

From: Michael Paquier <michael@paquier.xyz>
To: Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
Cc: Noah Misch <noah@leadboat.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2024-04-04T06:50:21Z
Lists: pgsql-hackers

Attachments

On Tue, Mar 19, 2024 at 07:34:09AM +0000, Bertrand Drouvot wrote:
> I'm not sure as v2 used the "version >= 17" wording which I think would not need
> manual refresh each time a new stable branch is forked.
> 
> But to avoid any doubt, I'm following your recommendation in v3 attached (then
> only mentioning the "master branch" and "any other branch").

I don't see why we could not be more generic, TBH.  Note that the
Backpatch region should be empty not only the master branch but also
on stable and unreleased branches (aka REL_XX_STABLE branches from
their fork from master to their .0 release).  I have reworded the
whole, mentioning ABI compatibility, as well.

The position of the Backpatch regions were a bit incorrect (extra one
in LWLock, and the one in Lock was not needed).

We could be stricter with the order of the elements in
pgstat_wait_event.c and wait_event_funcs_data.c, but there's no
consequence feature-wise and I cannot get excited about the extra
complexity this creates in generate-wait_event_types.pl between the
enum generation and the rest.

Is "Backpatch" the best choice we have, though?  It speaks by itself
but I was thinking about something different, like "Stable".  Other
ideas or objections are welcome.  My naming sense is usually not that
good, so there's that.

0001 is the patch with my tweaks.  0002 includes some dummy test data
I've used to validate the whole.
--
Michael

Commits

  1. Add "ABI_compatibility" regions to wait_event_names.txt

  2. Remove column for wait event names in wait_event_names.txt

  3. Use more consistent names for wait event objects and types

  4. Add information about line contents on parsing failure of wait_event_names.txt

  5. Remove double quotes from the second column of wait_event_names.txt

  6. Generate automatically code and documentation related to wait events

  7. Refactor some code related to wait events "BufferPin" and "Extension"

  8. doc: Fix ordering of entries in wait event table for I/O type