Re: Autogenerate some wait events code and documentation

Michael Paquier <michael@paquier.xyz>

From: Michael Paquier <michael@paquier.xyz>
To: "Drouvot, Bertrand" <bertranddrouvot.pg@gmail.com>
Cc: PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2023-05-06T02:23:17Z
Lists: pgsql-hackers
On Thu, May 04, 2023 at 08:39:49AM +0200, Drouvot, Bertrand wrote:
> On 5/1/23 1:59 AM, Michael Paquier wrote:
> I'm not sure I like it. First, it does break the "Note" ordering as compare
> to the current documentation. That's not a big deal though.
> 
> Secondly, what If we need to add some note(s) in the future for
> another wait class? Having all the notes after all the tables are
> generated would sound weird to me.

Appending these notes at the end of all the tables does not strike me
as a big dea, TBH.  But, well, my sole opinion is not the final choice
either.  For now, I am mostly tempted to keep the generation script as
minimalistic as possible.

> We could discuss another approach for the "Note" part if there is a
> need to add one for an existing/new wait class though.

Documenting what's expected from the wait event classes is critical in
the .txt file as that's what developers are going to look at when
adding a new wait event.  Adding them in the header is less appealing
to me considering that is it now generated, and the docs provide a lot
of explanation as well.

>> This has as extra consequence to require a change in
>> wait_event.h so as PG_WAIT_BUFFER_PIN is renamed to PG_WAIT_BUFFERPIN,
>> equally fine by me.  Logically, this rename should be done in a patch
>> of its own, for clarity.
> 
> Yes, I can look at it.
> [...]
> Agree, I'll look at this.

Thanks!

> I'll look at v7 when the v17 branch opens and propose the separate patch
> mentioned above at that time too.

Thanks, again.
--
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