Re: Change the signature of pgstat_report_vacuum() so that it's passed a Relation
Chao Li <li.evan.chao@gmail.com>
From: Chao Li <li.evan.chao@gmail.com>
To: Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
Cc: Michael Paquier <michael@paquier.xyz>,
pgsql-hackers@lists.postgresql.org
Date: 2025-12-16T13:32:23Z
Lists: pgsql-hackers
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Change pgstat_report_vacuum() to use Relation
- f4e797171eac 19 (unreleased) landed
> On Dec 16, 2025, at 17:45, Bertrand Drouvot <bertranddrouvot.pg@gmail.com> wrote: > > Hi, > > On Tue, Dec 16, 2025 at 04:39:05PM +0900, Michael Paquier wrote: >> On Tue, Dec 16, 2025 at 06:49:13AM +0000, Bertrand Drouvot wrote: >>> While working on relfilenode statistics, Andres suggested that we pass the Relation >>> to pgstat_report_vacuum() (instead of the parameters inherited from the Relation, >>> (See [1])). >>> >>> That looks like a good idea to me as it reduces the number of parameters and it's >>> consistent with pgstat_report_analyze(). >> >> Fine by me. > > Thank you both for looking at it! > > I'm just thinking that we could mark the new "Relation rel" parameter as a > const one. Indeed we are in a "report" function that only makes use of the > Relation as read only. > > But, we can't do the same for pgstat_report_analyze() because pgstat_should_count_relation() > can modify the relation through pgstat_assoc_relation(). So I'm inclined to > let it as in v1. Thoughts? > I guess you don’t have to. I search over the code base, and cannot find a “const Ration” parameter. And actually, Relation is typedef of “structure RelationData *”, so if you want to make it const, then you have to do “const structure RelationData *rel”, because “const Relation rel” won’t behave as your intention. Best regards, -- Chao Li (Evan) HighGo Software Co., Ltd. https://www.highgo.com/