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-04-24T03:15:13Z
Lists: pgsql-hackers
On Sat, Apr 22, 2023 at 03:36:05PM +0200, Drouvot, Bertrand wrote:
> On 4/20/23 3:09 AM, Michael Paquier wrote:
>> It is clear that the format of the file is:
>> - category
>> - C symbol in enums.
>> - Format in the system views.
>> - Description in the docs.
>> Or perhaps it would be better to divide this file by sections (like
>> errcodes.txt) for each category so as we eliminate entirely the first
>> column?
>
> Yeah, that could be an option. V3 is still using the category as the first column
> but I'm ok to change it by a section if you prefer (though I don't really see the need).
It can make the file width shorter, at least..
[ .. thinks .. ]
+my $waitclass;
+my @wait_classes = ("PG_WAIT_ACTIVITY", "PG_WAIT_CLIENT", "PG_WAIT_IPC", "PG_WAIT_TIMEOUT", "PG_WAIT_IO");
Actually, having a "Section" in waiteventnames.txt would remove the
need to store this knowledge in generate-waiteventnames.pl, which is
a duplicate of the txt contents. If somebody adds a new class in the
future, it would be necessary to update this path as well. Well, that
would not be a huge effort in itself, but IMO the script translating
the .txt to the docs and the code should have no need to know the
types of classes. I guess that a format like that would make the most
sense to me, then:
Section: ClassName PG_WAIT_CLASS_NAME
# ClassName would be "IO", "IPC", "Timeout", etc.
WAIT_EVENT_NAME_1 "WaitEventName1" "Description of wait event 1"
WAIT_EVENT_NAME_N "WaitEventNameN" "Description of wait event N"
>> utils/adt/jsonpath_scan.c \
>> + utils/activity/waiteventnames.c \
>> + utils/activity/waiteventnames.h \
>> + utils/adt/jsonpath_scan.c \
>>
>> Looks like a copy-pasto.
>
> Why do you think so? both files have to be removed.
jsonpath_scan.c is listed twice, and that's still the case in v3. The
list of files deleted for maintainer-clean in src/backend/Makefile
should be listed alphabetically (utils/activity/ before utils/adt/),
but that's a nit ;)
--
Michael
Commits
-
Add "ABI_compatibility" regions to wait_event_names.txt
- f98dbdeb51d1 17.0 landed
-
Remove column for wait event names in wait_event_names.txt
- 59cbf60c0f2b 17.0 landed
-
Use more consistent names for wait event objects and types
- 414f6c0fb79a 17.0 landed
-
Add information about line contents on parsing failure of wait_event_names.txt
- aea7fe33fb6a 17.0 landed
-
Remove double quotes from the second column of wait_event_names.txt
- 183a60a628fe 17.0 landed
-
Generate automatically code and documentation related to wait events
- fa88928470b5 17.0 landed
-
Refactor some code related to wait events "BufferPin" and "Extension"
- 2aeaf80e578e 17.0 landed
-
doc: Fix ordering of entries in wait event table for I/O type
- 44e977d7ecb9 16.0 landed