Re: Autogenerate some wait events code and documentation

Michael Paquier <michael@paquier.xyz>

From: Michael Paquier <michael@paquier.xyz>
To: Alvaro Herrera <alvherre@alvh.no-ip.org>
Cc: Andres Freund <andres@anarazel.de>, "Drouvot, Bertrand" <bertranddrouvot.pg@gmail.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2024-03-18T23:59:30Z
Lists: pgsql-hackers
On Mon, Mar 18, 2024 at 10:24:00AM +0100, Alvaro Herrera wrote:
> FTR I had a rather unpleasant time last week upon finding a wait event
> named PgSleep.  If you grep for that, there are no matches at all; and I
> spent ten minutes (for real) trying to figure out where that was coming
> from, until I remembered this thread.
> 
> Now you have to guess that not only random lowercasing is happening, but
> also underscore removal.  This is not a good developer experience and I
> think we should rethink this choice.  It would be infinitely more
> usable, and not one bit more difficult, to make these lines be
> 
> WAIT_EVENT_FOO_BAR	FooBar	"Waiting on Foo Bar."
> 
> then there is no guessing involved.

This has already gone through a couple of adjustments in 59cbf60c0f2b
and 183a60a628fe.  The latter has led to the elimination of one column
in the txt file, as a reply to the same kind of comments about the
format of this file:
https://www.postgresql.org/message-id/20230705215939.ulnfbr4zavb2x7ri%40awork3.anarazel.de

FWIW, I still like better what we have currently, where it is possible
to grep the enum values in the source code.
--
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