Re: Add missing stats_reset column to pg_stat_database_conflicts view
Fujii Masao <masao.fujii@gmail.com>
From: Fujii Masao <masao.fujii@gmail.com>
To: Sami Imseih <samimseih@gmail.com>
Cc: Chao Li <li.evan.chao@gmail.com>, shihao zhong <zhong950419@gmail.com>, Kirill Reshke <reshkekirill@gmail.com>, PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2026-03-12T18:09:19Z
Lists: pgsql-hackers
Attachments
- v6-0001-Add-stats_reset-column-to-pg_stat_database_confli.patch (application/octet-stream) patch v6-0001
On Fri, Mar 13, 2026 at 1:21 AM Sami Imseih <samimseih@gmail.com> wrote: > > Thanks for the updated patch! > > --- Since pg_stat_database stats_reset starts out as NULL, reset it > once first so we have something to compare it to > +-- Since stats_reset in pg_stat_database and pg_stat_database_conflicts starts > +-- out as NULL, reset it once first so we have something to compare it to > SELECT pg_stat_reset(); > -SELECT stats_reset AS db_reset_ts FROM pg_stat_database WHERE datname > = (SELECT current_database()) \gset > +SELECT D.stats_reset AS db_reset_ts, DC.stats_reset AS dbc_reset_ts > +FROM pg_stat_database D, pg_stat_database_conflicts DC > +WHERE D.datname = (SELECT current_database()) AND D.datname = DC.datname \gset > SELECT pg_stat_reset(); > -SELECT stats_reset > :'db_reset_ts'::timestamptz FROM > pg_stat_database WHERE datname = (SELECT current_database()); > +SELECT D.stats_reset > :'db_reset_ts'::timestamptz, > + DC.stats_reset > :'dbc_reset_ts'::timestamptz, > + D.stats_reset = DC.stats_reset > +FROM pg_stat_database D, pg_stat_database_conflicts DC > +WHERE D.datname = (SELECT current_database()) AND D.datname = DC.datname; > > I think the changes to the test are overcomplicated unnecessarly. We should not > have to join pg_stat_database and pg_stat_database_conflicts. We can just > query each fo the stats_reset separately. see v5, I kept the check to > ensure that > pg_stat_database and pg_stat_database_conflicts have the same reset > time. I think > this is good to have as well. I also updated the existing comment for > more clarity. Thanks for updating the patch! I like the simplified test. +SELECT stats_reset AS dbc_reset_ts FROM pg_stat_database_conflicts WHERE datname = (SELECT current_database()) \gset I removed the extra space. I also made some cosmetic indentation fixes in the docs. The v6 patch is attached. Unless there are objections, I'll update the catversion and commit it. Regards, -- Fujii Masao
Commits
-
Simplify redundant current_database() subqueries in stats.sql regression test
- d78a4f0bf058 19 (unreleased) landed
-
Add stats_reset column to pg_stat_database_conflicts.
- 723619eaa3a8 19 (unreleased) landed