Re: Pluggable cumulative statistics

Michael Paquier <michael@paquier.xyz>

From: Michael Paquier <michael@paquier.xyz>
To: Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
Cc: Postgres hackers <pgsql-hackers@lists.postgresql.org>
Date: 2024-07-09T06:54:37Z
Lists: pgsql-hackers

Attachments

On Mon, Jul 08, 2024 at 02:07:58PM +0000, Bertrand Drouvot wrote:
> It looks pretty straightforward, just one comment:
> 
> +                       ptr = ((char *) ctl) + kind_info->shared_ctl_off;
> +                       kind_info->init_shmem_cb((void *) ptr);
> 
> I don't think we need to cast ptr to void when calling init_shmem_cb(). Looking
> at some examples in the code, it does not look like we cast the argument to void
> when a function has (void *) as parameter (also there is examples in 0003 where
> it's not done, see next comments for 0003).

Yep.  Fine by me.

Please find attached a rebased patch set for now, to make the
CF bot happy.
--
Michael

Commits

  1. injection_points: Add some fixed-numbered statistics

  2. injection_points: Add some cumulative stats for injection points

  3. Add helper routines to retrieve data for custom fixed-numbered pgstats

  4. Introduce pluggable APIs for Cumulative Statistics

  5. Switch PgStat_Kind from an enum to a uint32 type

  6. Improve comment of pgstat_read_statsfile()

  7. Add a new 'F' entry type for fixed-numbered stats in pgstats file

  8. Add PgStat_KindInfo.init_shmem_cb

  9. Use pgstat_kind_infos to write fixed shared statistics

  10. Replace hardcoded identifiers of pgstats file by #defines