Re: Add pg_get_injection_points() for information of injection points
Ranier Vilela <ranier.vf@gmail.com>
From: Ranier Vilela <ranier.vf@gmail.com>
To: Michael Paquier <michael@paquier.xyz>
Cc: Postgres hackers <pgsql-hackers@lists.postgresql.org>
Date: 2025-04-14T12:46:12Z
Lists: pgsql-hackers
Hi Michael. Em dom., 13 de abr. de 2025 às 21:36, Michael Paquier <michael@paquier.xyz> escreveu: > Hi all, > > One thing that's been lacking in injection points is the possibility > to look at the state of the injection points in shared memory through > some SQL. This was on my tablets for some time, but I have not taken > the time to do the actual legwork. > > The attached patch adds a SRF that returns a set of tuples made of the > name, library and function for all the injection points attached to > the system. This implementation relies on a new function added in > injection_point.c, called InjectionPointList(), that retrieves a > palloc()'d array of the injection points, hiding from the callers the > internals of what this stuff does with the shmem array lookup. > > This is useful for monitoring or in tests, to make sure for example > that nothing is left around at the end of a script. I have a > different proposal planned for this area of the code, where this > function would be good to have, but I am sending an independent patch > as this stuff is useful on its own. > > The patch includes a couple of tests and some documentation. > I think that it would be more productive to use the "int idx", to store *num_points, avoiding counting inside the loop, no? Function InjectionPointList: + uint32 max_inuse; + int idx; + for (idx = 0; idx < max_inuse; idx++)- (*num_points)++; + *num_points = idx; + return result; The function *InjectionPointList* counts "int", but the function *pg_get_injection_points* expects uint32? best regards, Ranier Vilela
Commits
-
injection_points: Add injection_points_list()
- 4eca711bc991 19 (unreleased) landed
-
Add InjectionPointList() to retrieve list of injection points
- 7b2eb72b1b8c 19 (unreleased) landed