diff options
author | Michael Paquier <michael@paquier.xyz> | 2025-01-17 08:26:17 +0900 |
---|---|---|
committer | Michael Paquier <michael@paquier.xyz> | 2025-01-17 08:26:17 +0900 |
commit | 7b6468cc9523d7d923487d212281af51f7f3dae2 (patch) | |
tree | b334d97be7b07466139fff5d93fc7d80a63f421a /src | |
parent | d4a43b283751b23d32bbfa1ecc2cad2d16e3dde9 (diff) | |
download | postgresql-7b6468cc9523d7d923487d212281af51f7f3dae2.tar.gz postgresql-7b6468cc9523d7d923487d212281af51f7f3dae2.zip |
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
Diffstat (limited to 'src')
-rw-r--r-- | src/backend/utils/activity/pgstat_io.c | 8 | ||||
-rw-r--r-- | src/include/pgstat.h | 4 |
2 files changed, 4 insertions, 8 deletions
diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index e03b021af3d..027aad8b24e 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -24,14 +24,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 * stats are tracked for this combination and IO times are non-zero, counts diff --git a/src/include/pgstat.h b/src/include/pgstat.h index a878402f502..2d40fe3e70f 100644 --- a/src/include/pgstat.h +++ b/src/include/pgstat.h @@ -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]; |