Re: Autogenerate some wait events code and documentation - Mailing list pgsql-hackers

From Drouvot, Bertrand
Subject Re: Autogenerate some wait events code and documentation
Date
Msg-id 1f74adab-5ed8-450a-853a-f0b4bfe0e751@gmail.com
Whole thread Raw
In response to Re: Autogenerate some wait events code and documentation  (Michael Paquier <michael@paquier.xyz>)
Responses Re: Autogenerate some wait events code and documentation
List pgsql-hackers
Hi,

On 7/9/23 6:32 AM, Michael Paquier wrote:
> 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.

Thanks!

>  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?

That's great and it does simplify the wait_event_names.txt format (and the
impact on "MQ" does not seem like a big deal).

I also noticed that you now provide the culprit line in case of parsing
failure (thanks for that).

  #
-#   "C symbol in enums" "format in the system views" "description in the docs"
+#   "format in the system views" "description in the docs"

Should we add a note here about the impact of the "format in the system views" on
the auto generated enum? (aka how it is generated based on its format)?

Regards,

-- 
Bertrand Drouvot
PostgreSQL Contributors Team
RDS Open Source Databases
Amazon Web Services: https://aws.amazon.com



pgsql-hackers by date:

Previous
From: Peter Eisentraut
Date:
Subject: Re: [PATCH] Remove unnecessary unbind in LDAP search+bind mode
Next
From: Peter Eisentraut
Date:
Subject: Re: Fix last unitialized memory warning