]> git.ipfire.org Git - thirdparty/postgresql.git/commit
Lower bounds related to pgstats kinds
authorMichael Paquier <michael@paquier.xyz>
Fri, 25 Jul 2025 02:17:48 +0000 (11:17 +0900)
committerMichael Paquier <michael@paquier.xyz>
Fri, 25 Jul 2025 02:17:48 +0000 (11:17 +0900)
commitac000fca743eff923d1feb4bc722d905901ae540
treea09c0f2c86aee74a40adbfde4f6ed4823fbf1727
parent15d33eb1924c1093102b8ce142ede4cb3912e85e
Lower bounds related to pgstats kinds

This commit changes stats kinds to have the following bounds, making
their handling in core cheaper by default:
- PGSTAT_KIND_CUSTOM_MIN 128 -> 24
- PGSTAT_KIND_MAX 256 -> 32

The original numbers were rather high, and showed an impact on
performance in pgstat_report_stat() for the case of simple queries with
its early-exit path if there are no pending statistics to flush.  This
logic will be improved more in a follow-up commit to bring the
performance of pgstat_report_stat() on par with v17 and older versions.
Lowering the bounds is a change worth doing on its own, independently of
the other improvement.

These new numbers should be enough to leave some room for the following
years for built-in and custom stats kinds, with stable ID numbers.  At
least that should be enough to start with this facility for extension
developers.  It can be always increased in the tree depending on the
requirements wanted.

Per discussion with Andres Freund and Bertrand Drouvot.

Discussion: https://postgr.es/m/eb224uegsga2hgq7dfq3ps5cduhpqej7ir2hjxzzozjthrekx5@dysei6buqthe
Backpatch-through: 18
src/include/utils/pgstat_kind.h
src/test/modules/injection_points/injection_stats.c
src/test/modules/injection_points/injection_stats_fixed.c