Re: Autogenerate some wait events code and documentation

From: Michael Paquier <michael(at)paquier(dot)xyz>
To: Andres Freund <andres(at)anarazel(dot)de>
Cc: "Drouvot, Bertrand" <bertranddrouvot(dot)pg(at)gmail(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: Re: Autogenerate some wait events code and documentation
Date: 2023-07-09 04:32:47
Message-ID: ZKo4b1bDI5+FoTex@paquier.xyz
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Fri, Jul 07, 2023 at 01:49:24PM +0900, Michael Paquier wrote:
> Hmm. If we go down this road I would make the choice of simplicity
> and remove entirely a column, then, generating the snakecase from the
> camelcase or vice-versa (say like a $string =~ s/([a-z]+)/$1_/g;),
> even if it means having slightly incompatible strings showing to the
> users. And I'd rather minimize the number of exceptions we need to
> handle in this automation (aka no exception rules for some keywords
> like "SSL" or "WAL", etc.).

After pondering more about that, the attached patch set does exactly
that. Patch 0001 includes an update of the wait event names so as
these are more consistent with the enum elements generated. With this
change, users can apply lower() or upper() across monitoring queries
and still get the same results as before. An exception was the
message queue events, which the enums used "MQ" but the event names
used "MessageQueue", but this concerns only four lines of code in the
backend. The newly-generated enum elements match with the existing
ones, except for MQ.

Patch 0002 introduces a set of simplifications for the format of
wait_event_names.txt:
- Removal of the first column for the enums.
- Removal of the quotes for the event name. We have a single keyword
for these, so that's kind of annoying to cope with that for new
entries.
- Build of the enum elements using the event names, by applying a
rebuild as simple as that:
+ $waiteventenumname =~ s/([a-z])([A-Z])/$1_$2/g;
+ $waiteventenumname = uc($waiteventenumname);

Thoughts?
--
Michael

Attachment Content-Type Size
0001-Rename-wait-events-with-more-consistent-camelcase-st.patch text/x-diff 19.0 KB
0002-Simplify-format-of-wait_event_names.txt.patch text/x-diff 53.0 KB

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Nathan Bossart 2023-07-09 04:47:08 Re: Preventing non-superusers from altering session authorization
Previous Message David Rowley 2023-07-09 04:17:03 Re: Check lateral references within PHVs for memoize cache keys