diff options
| author | Michael Paquier | 2023-11-12 07:43:12 +0000 |
|---|---|---|
| committer | Michael Paquier | 2023-11-12 07:43:12 +0000 |
| commit | 23c8c0c8f4721db693ef908c22f7cf754e6852a9 (patch) | |
| tree | e341cde26bef880bd33b4c5eb542c139f4ccac25 /src/test | |
| parent | a9f19c1349c22819038842a0debba2c86b4832b8 (diff) | |
Add ability to reset all shared stats types in pg_stat_reset_shared()
Currently, pg_stat_reset_shared() can use an argument to specify the
target of statistics to reset, doing nothing for NULL as it is strict.
This patch adds to pg_stat_reset_shared() the possibility to reset all
the stats types already handled in this function rather than do nothing
if the argument value given is NULL or if nothing is specified
(proisstrict is switched to false). Like previously, SLRUs are not
included in what gets reset.
The idea to use NULL or no argument to control if all the shared stats
already covered by this function should be reset has been proposed by
Andres Freund.
Bump catalog version.
Author: Atsushi Torikoshi
Reviewed-by: Kyotaro Horiguchi, Michael Paquier, Bharath Rupireddy,
Matthias van de Meent
Discussion: https://postgr.es/m/4291a55137ddda77cf7cc5f46e846daf@oss.nttdata.com
Diffstat (limited to 'src/test')
| -rw-r--r-- | src/test/regress/expected/stats.out | 15 | ||||
| -rw-r--r-- | src/test/regress/sql/stats.sql | 15 |
2 files changed, 16 insertions, 14 deletions
diff --git a/src/test/regress/expected/stats.out b/src/test/regress/expected/stats.out index 494cef07d31..0694de736a0 100644 --- a/src/test/regress/expected/stats.out +++ b/src/test/regress/expected/stats.out @@ -975,38 +975,39 @@ SELECT stats_reset > :'wal_reset_ts'::timestamptz FROM pg_stat_wal; (1 row) SELECT stats_reset AS wal_reset_ts FROM pg_stat_wal \gset --- Test that reset_shared with no specified stats type doesn't reset anything -SELECT pg_stat_reset_shared(NULL); +-- Test that reset_shared with no argument resets all the stats types +-- supported (providing NULL as argument has the same effect). +SELECT pg_stat_reset_shared(); pg_stat_reset_shared ---------------------- (1 row) -SELECT stats_reset = :'archiver_reset_ts'::timestamptz FROM pg_stat_archiver; +SELECT stats_reset > :'archiver_reset_ts'::timestamptz FROM pg_stat_archiver; ?column? ---------- t (1 row) -SELECT stats_reset = :'bgwriter_reset_ts'::timestamptz FROM pg_stat_bgwriter; +SELECT stats_reset > :'bgwriter_reset_ts'::timestamptz FROM pg_stat_bgwriter; ?column? ---------- t (1 row) -SELECT stats_reset = :'checkpointer_reset_ts'::timestamptz FROM pg_stat_checkpointer; +SELECT stats_reset > :'checkpointer_reset_ts'::timestamptz FROM pg_stat_checkpointer; ?column? ---------- t (1 row) -SELECT stats_reset = :'recovery_prefetch_reset_ts'::timestamptz FROM pg_stat_recovery_prefetch; +SELECT stats_reset > :'recovery_prefetch_reset_ts'::timestamptz FROM pg_stat_recovery_prefetch; ?column? ---------- t (1 row) -SELECT stats_reset = :'wal_reset_ts'::timestamptz FROM pg_stat_wal; +SELECT stats_reset > :'wal_reset_ts'::timestamptz FROM pg_stat_wal; ?column? ---------- t diff --git a/src/test/regress/sql/stats.sql b/src/test/regress/sql/stats.sql index 7ae8b8a2762..13db45d4dc4 100644 --- a/src/test/regress/sql/stats.sql +++ b/src/test/regress/sql/stats.sql @@ -488,13 +488,14 @@ SELECT pg_stat_reset_shared('wal'); SELECT stats_reset > :'wal_reset_ts'::timestamptz FROM pg_stat_wal; SELECT stats_reset AS wal_reset_ts FROM pg_stat_wal \gset --- Test that reset_shared with no specified stats type doesn't reset anything -SELECT pg_stat_reset_shared(NULL); -SELECT stats_reset = :'archiver_reset_ts'::timestamptz FROM pg_stat_archiver; -SELECT stats_reset = :'bgwriter_reset_ts'::timestamptz FROM pg_stat_bgwriter; -SELECT stats_reset = :'checkpointer_reset_ts'::timestamptz FROM pg_stat_checkpointer; -SELECT stats_reset = :'recovery_prefetch_reset_ts'::timestamptz FROM pg_stat_recovery_prefetch; -SELECT stats_reset = :'wal_reset_ts'::timestamptz FROM pg_stat_wal; +-- Test that reset_shared with no argument resets all the stats types +-- supported (providing NULL as argument has the same effect). +SELECT pg_stat_reset_shared(); +SELECT stats_reset > :'archiver_reset_ts'::timestamptz FROM pg_stat_archiver; +SELECT stats_reset > :'bgwriter_reset_ts'::timestamptz FROM pg_stat_bgwriter; +SELECT stats_reset > :'checkpointer_reset_ts'::timestamptz FROM pg_stat_checkpointer; +SELECT stats_reset > :'recovery_prefetch_reset_ts'::timestamptz FROM pg_stat_recovery_prefetch; +SELECT stats_reset > :'wal_reset_ts'::timestamptz FROM pg_stat_wal; -- Test error case for reset_shared with unknown stats type SELECT pg_stat_reset_shared('unknown'); |
