Fix incorrect pg_stat_io output on 32-bit machines.
authorTom Lane
Fri, 6 Sep 2024 15:57:57 +0000 (11:57 -0400)
committerTom Lane
Fri, 6 Sep 2024 15:58:10 +0000 (11:58 -0400)
pg_stat_get_io() applied TimestampTzGetDatum twice to the
stat_reset_timestamp value.  On 64-bit builds that's harmless because
TimestampTzGetDatum is a no-op, but on 32-bit builds it results in
displaying garbage in the stats_reset column of the pg_stat_io view.

Bug dates to commit a9c70b46d which introduced pg_stat_io, so
back-patch to v16 where that came in.

Bertrand Drouvot

Discussion: https://postgr.es/m/[email protected]

src/backend/utils/adt/pgstatfuncs.c

index 3876339ee1b4b1b7227ecf0cc37af8b160843b38..2575dba87b9d28fef8f76be0663d23617fb76f97 100644 (file)
@@ -1408,7 +1408,7 @@ pg_stat_get_io(PG_FUNCTION_ARGS)
                values[IO_COL_BACKEND_TYPE] = bktype_desc;
                values[IO_COL_CONTEXT] = CStringGetTextDatum(context_name);
                values[IO_COL_OBJECT] = CStringGetTextDatum(obj_name);
-               values[IO_COL_RESET_TIME] = TimestampTzGetDatum(reset_time);
+               values[IO_COL_RESET_TIME] = reset_time;
 
                /*
                 * Hard-code this to the value of BLCKSZ for now. Future