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-03-19T00:59:35Z
Lists: pgsql-hackers
On Mon, Mar 18, 2024 at 05:57:02PM +0000, Bertrand Drouvot wrote:
> Thanks for looking at it!
> Oh right, the comment is wrong, re-worded in v2 attached.

I've added a couple of fake events in my txt file, and this results in
an ordering of the wait events in the docs while the backpatched wait
events are added at the end of the enums, based on their order in the
txt file.

 # When adding a new wait event, make sure it is placed in the appropriate
-# ClassName section.
+# ClassName section. If the wait event is backpatched from master to a version
+# >= 17 then put it under a "Backpatch:" delimiter at the end of the related
+# ClassName section (on the non master branches) or at its natural position on
+# the master branch.
+# Ensure that the backpatch regions are always empty on the master branch.

I'd recommend to not mention a version number at all, as this would
need a manual refresh each time a new stable branch is forked.

Your solution is simpler than what I finished in mind when looking at
the code yesterday, with the addition of a second array that's pushed
to be at the end of the "sorted" lines ordered by the second column.
That does the job.

(Note that I'll go silent for some time; I'll handle this thread when
I get back as this is not urgent.)
--
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