pgstat: prepare APIs used by pgstatfuncs for shared memory stats.
authorAndres Freund <andres@anarazel.de>
Thu, 7 Apr 2022 00:56:19 +0000 (17:56 -0700)
committerAndres Freund <andres@anarazel.de>
Thu, 7 Apr 2022 00:56:19 +0000 (17:56 -0700)
commit8fb580a35ce358063dfdd10991d017498283c767
tree425767a0d794844d09fe549f89def74783ba6f05
parent997afad89d12f314555600feee8189d753e105d1
pgstat: prepare APIs used by pgstatfuncs for shared memory stats.

With the introduction of PgStat_Kind PgStat_Single_Reset_Type,
PgStat_Shared_Reset_Target don't make sense anymore. Replace them with
PgStat_Kind.

Instead of having dedicated reset functions for different kinds of stats, use
two generic helper routines (one to reset all stats of a kind, one to reset
one stats entry).

A number of reset functions were named pgstat_reset_*_counter(), despite
affecting multiple counters. The generic helper routines get rid of
pgstat_reset_single_counter(), pgstat_reset_subscription_counter().

Rename pgstat_reset_slru_counter(), pgstat_reset_replslot_counter() to
pgstat_reset_slru(), pgstat_reset_replslot() respectively, and have them only
deal with a single SLRU/slot. Resetting all SLRUs/slots goes through the
generic pgstat_reset_of_kind().

Previously pg_stat_reset_replication_slot() used SearchNamedReplicationSlot()
to check if a slot exists. API wise it seems better to move that to
pgstat_replslot.c.

This is done separately from the - quite large - shared memory statistics
patch to make review easier.

Reviewed-By: Kyotaro Horiguchi <horikyota.ntt@gmail.com>
Discussion: https://postgr.es/m/20220404041516.cctrvpadhuriawlq@alap3.anarazel.de
src/backend/postmaster/pgstat.c
src/backend/utils/activity/pgstat_replslot.c
src/backend/utils/activity/pgstat_slru.c
src/backend/utils/activity/pgstat_subscription.c
src/backend/utils/adt/pgstatfuncs.c
src/include/pgstat.h
src/tools/pgindent/typedefs.list