Re: [Proposal] Adding callback support for custom statistics kinds

Michael Paquier <michael@paquier.xyz>

From: Michael Paquier <michael@paquier.xyz>
To: Sami Imseih <samimseih@gmail.com>
Cc: Chao Li <li.evan.chao@gmail.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2025-12-08T06:35:23Z
Lists: pgsql-hackers

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Fix const correctness in pgstat data serialization callbacks

  2. test_custom_stats: Add tests with read/write of auxiliary data

  3. Allow cumulative statistics to read/write auxiliary data from/to disk

  4. test_custom_stats: Test module for custom cumulative statistics

  5. injection_points: Remove portions related to custom pgstats

  6. Rename routines for write/read of pgstats file

On Fri, Dec 05, 2025 at 07:27:50PM -0600, Sami Imseih wrote:
> Attached is the new test module that replaces the custom statistics
> tests currently in the injection points tests. Under test_custom_stats, there
> are two separate modules: one for variable-amount stats and one for
> fixed-amount stats. With this, we can completely remove the
> stats-related tests and supporting code under
> src/test/modules/injection_points/.

Yes, thanks.  Structurally, this is better and more flexible than what
we had originally, and I have noticed that you have copied the
original files while adding more comments and renaming a bit things:
the structure of the functions was exactly the same.  Anyway, I have
worked on that for a good portion of the day, splitting the module
drop and the new module into two commits, and applied the result after
tweaking quite a few things in terms of names and comments (no
pgstat_*, a bit more "Var" and "Fixed", etc.), applying a much more
consistent set of names across the board for the functions and the
structures.  This cleanup part is moved out of the way now, so that
you ease the introduction of the next pieces you are proposing. 

The tests for the reset of fixed-sized stats was a nice addition,
indeed.  If you have more areas that you think could be improved,
ideas are of course welcome.
--
Michael