From ed44724c9b7bad6dd04766165047d94336dce1ed Mon Sep 17 00:00:00 2001 From: Andres Freund Date: Fri, 1 Apr 2022 13:43:49 -0700 Subject: [PATCH v70 06/27] pgstat: introduce PgStat_Kind enum. Will be used by following commits to generalize stats infrastructure. Kept separate to allow commits stand reasonably on their own. --- src/include/pgstat.h | 27 +++++++++++++++++++++++++++ src/tools/pgindent/typedefs.list | 1 + 2 files changed, 28 insertions(+) diff --git a/src/include/pgstat.h b/src/include/pgstat.h index 45eb217958e..dde76f237de 100644 --- a/src/include/pgstat.h +++ b/src/include/pgstat.h @@ -33,6 +33,33 @@ /* Default directory to store temporary statistics data in */ #define PG_STAT_TMP_DIR "pg_stat_tmp" +/* The types of statistics entries */ +typedef enum PgStat_Kind +{ + /* + * Don't define an INVALID value so switch() statements can warn if some + * cases aren't covered. But define the first member to 1 so that + * uninitialized values can be detected more easily. + */ + + /* stats for variable-numbered objects */ + PGSTAT_KIND_DATABASE = 1, /* database-wide statistics */ + PGSTAT_KIND_RELATION, /* per-table statistics */ + PGSTAT_KIND_FUNCTION, /* per-function statistics */ + PGSTAT_KIND_REPLSLOT, /* per-slot statistics */ + PGSTAT_KIND_SUBSCRIPTION, /* per-subscription statistics */ + + /* stats for constant-numbered objects */ + PGSTAT_KIND_ARCHIVER, + PGSTAT_KIND_BGWRITER, + PGSTAT_KIND_CHECKPOINTER, + PGSTAT_KIND_SLRU, + PGSTAT_KIND_WAL, +} PgStat_Kind; + +#define PGSTAT_KIND_FIRST PGSTAT_KIND_DATABASE +#define PGSTAT_KIND_LAST PGSTAT_KIND_WAL +#define PGSTAT_NUM_KINDS (PGSTAT_KIND_LAST + 1) /* Values for track_functions GUC variable --- order is significant! */ typedef enum TrackFunctionsLevel diff --git a/src/tools/pgindent/typedefs.list b/src/tools/pgindent/typedefs.list index 9b4f77fbf18..e1684d4caec 100644 --- a/src/tools/pgindent/typedefs.list +++ b/src/tools/pgindent/typedefs.list @@ -1942,6 +1942,7 @@ PgStat_FunctionCallUsage PgStat_FunctionCounts PgStat_FunctionEntry PgStat_GlobalStats +PgStat_Kind PgStat_Msg PgStat_MsgAnalyze PgStat_MsgAnlAncestors -- 2.35.1.677.gabf474a5dd