From: | "Drouvot, Bertrand" <bertranddrouvot(dot)pg(at)gmail(dot)com> |
---|---|
To: | Michael Paquier <michael(at)paquier(dot)xyz>, Andres Freund <andres(at)anarazel(dot)de> |
Cc: | PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org> |
Subject: | Re: Autogenerate some wait events code and documentation |
Date: | 2023-07-09 07:15:34 |
Message-ID: | 1f74adab-5ed8-450a-853a-f0b4bfe0e751@gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | 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
From | Date | Subject | |
---|---|---|---|
Next Message | Peter Eisentraut | 2023-07-09 07:23:24 | Re: Fix last unitialized memory warning |
Previous Message | Gurjeet Singh | 2023-07-09 07:01:03 | Re: BUG #18016: REINDEX TABLE failure |