pg_stat_reset_slru(name) doesn't seem to work as documented

Atsushi Torikoshi <atorik@gmail.com>

From: Atsushi Torikoshi <atorik@gmail.com>
To: PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2020-05-01T10:10:23Z
Lists: pgsql-hackers

Attachments

Hi,

When I tried to reset a counter in pg_stat_slru using
pg_stat_reset_slru(name),
not only the specified counter but all the counters were reset.

  postgres=# SELECT * FROM pg_stat_slru ;
         name       | blks_zeroed | blks_hit | blks_read | blks_written |
blks_exists | flushes | truncates |          stats_reset

------------------+-------------+----------+-----------+--------------+-------------+---------+-----------+-------------------------------
   async            |           3 |        0 |         0 |            3 |
        0 |       0 |         0 | 2020-05-01 17:36:26.073433+09
   clog             |           0 |       56 |         0 |            0 |
        0 |       0 |         0 | 2020-05-01 17:36:26.073433+09
   commit_timestamp |           0 |        0 |         0 |            0 |
        0 |       0 |         0 | 2020-05-01 17:36:26.073433+09
   (snip)


  postgres=# SELECT pg_stat_reset_slru('clog');


  postgres=# SELECT * FROM pg_stat_slru ;
         name       | blks_zeroed | blks_hit | blks_read | blks_written |
blks_exists | flushes | truncates |          stats_reset

------------------+-------------+----------+-----------+--------------+-------------+---------+-----------+-------------------------------
   async            |           0 |        0 |         0 |            0 |
        0 |       0 |         0 | 2000-01-01 09:00:00+09
   clog             |           0 |        0 |         0 |            0 |
        0 |       0 |         0 | 2020-05-01 17:37:02.525006+09
   commit_timestamp |           0 |        0 |         0 |            0 |
        0 |       0 |         0 | 2000-01-01 09:00:00+09
   (snip)


Attached a patch.

Regards,

--
Atsushi Torikoshi
NTT DATA CORPORATION

Commits

  1. Remove superfluous memset from pgstat_recv_resetslrucounter