Thanks for working on this. I was just trying to find something like
"pg_stat_checkpointer".
You wrote beentry++ at the start of two loops, but I think that's wrong; it
should be at the end, as in the rest of the file (or as a loop increment).
BackendStatusArray[0] is actually used (even though its backend has
backendId==1, not 0). "MyBEEntry = &BackendStatusArray[MyBackendId - 1];"
You could put *_NUM_TYPES as the last value in these enums, like
NUM_AUXPROCTYPES, NUM_PMSIGNALS, and NUM_PROCSIGNALS:
+#define IOOP_NUM_TYPES (IOOP_WRITE + 1)
+#define IOPATH_NUM_TYPES (IOPATH_STRATEGY + 1)
+#define BACKEND_NUM_TYPES (B_LOGGER + 1)
There's extraneous blank lines in these functions:
+pgstat_sum_io_path_ops
+pgstat_report_live_backend_io_path_ops
+pgstat_recv_resetsharedcounter
+GetIOPathDesc
+StrategyRejectBuffer
This function is doubly-indented:
+pgstat_send_buffers_reset
As support for C99 is now required by postgres, variables can be declared as
part of various loops.
+ int io_path;
+ for (io_path = 0; io_path < IOPATH_NUM_TYPES; io_path++)
Rather than memset(), you could initialize msg like this.
PgStat_MsgIOPathOps msg = {0};
+pgstat_send_buffers(void)
+{
+ PgStat_MsgIOPathOps msg;
+
+ PgBackendStatus *beentry = MyBEEntry;
+
+ if (!beentry)
+ return;
+
+ memset(&msg, 0, sizeof(msg));
--
Justin