From ed44724c9b7bad6dd04766165047d94336dce1ed Mon Sep 17 00:00:00 2001
From: Andres Freund <andres@anarazel.de>
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

