mirror of
https://github.com/postgres/postgres.git
synced 2025-06-10 09:21:54 +03:00
Fix stats_fetch_consistency with stats for fixed-numbered objects
This impacts the statistics retrieved in transactions for the following
views when updating the value of stats_fetch_consistency, leading to
behaviors contrary to what is documented since 605994651b
as an update
of this parameter should discard all statistics snapshot data:
- pg_stat_archiver
- pg_stat_bgwriter
- pg_stat_checkpointer
- pg_stat_io
- pg_stat_slru
- pg_stat_wal
For example, updating stats_fetch_consistency from "snapshot" to "cache"
in a transaction did not re-fetch any fresh data, using data cached from
the time when "snapshot" was in use.
Author: Shinya Kato
Discussion: https://postgr.es/m/d77fc5190d4dbe1738d77231488e768b@oss.nttdata.com
Backpatch-through: 15
This commit is contained in:
@ -943,6 +943,9 @@ pgstat_snapshot_fixed(PgStat_Kind kind)
|
|||||||
Assert(pgstat_is_kind_valid(kind));
|
Assert(pgstat_is_kind_valid(kind));
|
||||||
Assert(pgstat_get_kind_info(kind)->fixed_amount);
|
Assert(pgstat_get_kind_info(kind)->fixed_amount);
|
||||||
|
|
||||||
|
if (force_stats_snapshot_clear)
|
||||||
|
pgstat_clear_snapshot();
|
||||||
|
|
||||||
if (pgstat_fetch_consistency == PGSTAT_FETCH_CONSISTENCY_SNAPSHOT)
|
if (pgstat_fetch_consistency == PGSTAT_FETCH_CONSISTENCY_SNAPSHOT)
|
||||||
pgstat_build_snapshot();
|
pgstat_build_snapshot();
|
||||||
else
|
else
|
||||||
|
Reference in New Issue
Block a user