pgstat: introduce PgStat_Kind enum.
authorAndres Freund
Thu, 7 Apr 2022 00:56:19 +0000 (17:56 -0700)
committerAndres Freund
Thu, 7 Apr 2022 00:56:19 +0000 (17:56 -0700)
Will be used by following commits to generalize stats infrastructure. Kept
separate to allow commits stand reasonably on their own.

Reviewed-By: Kyotaro Horiguchi
Discussion: https://postgr.es/m/20220404041516[email protected]

src/include/pgstat.h
src/tools/pgindent/typedefs.list

index ed141f2d2fd7221164a40146103e4944d7d4a83d..1bd1c5cf7b0caa5a0e1c58d75046713a2b47fdd4 100644 (file)
 /* 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
+{
+   /* use 0 for INVALID, to catch zero-initialized data */
+   PGSTAT_KIND_INVALID = 0,
+
+   /* stats for variable-numbered objects */
+   PGSTAT_KIND_DATABASE,       /* 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 fixed-numbered objects */
+   PGSTAT_KIND_ARCHIVER,
+   PGSTAT_KIND_BGWRITER,
+   PGSTAT_KIND_CHECKPOINTER,
+   PGSTAT_KIND_SLRU,
+   PGSTAT_KIND_WAL,
+} PgStat_Kind;
+
+#define PGSTAT_KIND_FIRST_VALID 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
index 9b4f77fbf18ecaea8ed5ca0301eb87999127677c..e1684d4caec52b02d0f3fbfc173a5fc6c8d87199 100644 (file)
@@ -1942,6 +1942,7 @@ PgStat_FunctionCallUsage
 PgStat_FunctionCounts
 PgStat_FunctionEntry
 PgStat_GlobalStats
+PgStat_Kind
 PgStat_Msg
 PgStat_MsgAnalyze
 PgStat_MsgAnlAncestors