1
0
mirror of https://github.com/postgres/postgres.git synced 2025-07-15 19:21:59 +03:00

Rework macro pgstat_is_ioop_tracked_in_bytes()

As written, it was triggering a compilation warning for old versions of
clang, as reported by buildfarm members ayu, batfish and demoiselle.
Forcing a cast with "unsigned int" should fix the warning.

While on it, the macro is moved to pgstat.h, closer to the declaration
of IOOp, per suggestion from Tom Lane.

Reported-by: Tom Lane
Reviewed-by: Bertrand Drouvot, Tom Lane, Nazir Bilal Yavuz
Discussion: https://postgr.es/m/1272824.1736961543@sss.pgh.pa.us
This commit is contained in:
Michael Paquier
2025-01-17 08:26:17 +09:00
parent d4a43b2837
commit 7b6468cc95
2 changed files with 4 additions and 8 deletions

View File

@ -23,14 +23,6 @@
static PgStat_PendingIO PendingIOStats;
static bool have_iostats = false;
/*
* Check if an IOOp is tracked in bytes. This relies on the ordering of IOOp
* defined in pgstat.h, so make sure to update this check when changing its
* elements.
*/
#define pgstat_is_ioop_tracked_in_bytes(io_op) \
((io_op) < IOOP_NUM_TYPES && (io_op) >= IOOP_EXTEND)
/*
* Check that stats have not been counted for any combination of IOObject,
* IOContext, and IOOp which are not tracked for the passed-in BackendType. If

View File

@ -314,6 +314,10 @@ typedef enum IOOp
#define IOOP_NUM_TYPES (IOOP_WRITE + 1)
#define pgstat_is_ioop_tracked_in_bytes(io_op) \
(((unsigned int) (io_op)) < IOOP_NUM_TYPES && \
((unsigned int) (io_op)) >= IOOP_EXTEND)
typedef struct PgStat_BktypeIO
{
uint64 bytes[IOOBJECT_NUM_TYPES][IOCONTEXT_NUM_TYPES][IOOP_NUM_TYPES];