Re: Autogenerate some wait events code and documentation

Noah Misch <noah@leadboat.com>

From: Noah Misch <noah@leadboat.com>
To: Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
Cc: Michael Paquier <michael@paquier.xyz>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2024-03-18T15:49:34Z
Lists: pgsql-hackers
On Mon, Mar 18, 2024 at 09:04:44AM +0000, Bertrand Drouvot wrote:
> --- a/src/backend/utils/activity/wait_event_names.txt
> +++ b/src/backend/utils/activity/wait_event_names.txt
> @@ -24,7 +24,12 @@
>  #      SGML tables of wait events for inclusion in the documentation.
>  #
>  # When adding a new wait event, make sure it is placed in the appropriate
> -# ClassName section.
> +# ClassName section. If the wait event is backpatched to a version < 17 then
> +# put it under a "Backpatch" delimiter at the end of the related ClassName
> +# section.

Back-patch from v17 to pre-v17 won't use this, because v16 has hand-maintained
enums.  It's back-patch v18->v17 or v22->v17 where this will come up.

> +# Ensure that the wait events under the "Backpatch" delimiter are placed in the
> +# same order as in the pre 17 wait_event_types.h (see VERSION_FILE_SYNC as an
> +# example).

I expect the normal practice will be to put the entry in its natural position
in git master, then put it in the backpatch section for any other branch.  In
other words, the backpatch regions are always empty in git master, and the
non-backpatch regions change in master only.



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