Re: Change the signature of pgstat_report_vacuum() so that it's passed a Relation

Andres Freund <andres@anarazel.de>

From: Andres Freund <andres@anarazel.de>
To: Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
Cc: Michael Paquier <michael@paquier.xyz>, Chao Li <li.evan.chao@gmail.com>, pgsql-hackers@lists.postgresql.org
Date: 2025-12-16T14:55:09Z
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 →
  1. Change pgstat_report_vacuum() to use Relation

Hi,

On 2025-12-16 09:45:34 +0000, Bertrand Drouvot wrote:
> 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.

-1.

> 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 think const markings for things like this just means more code churn or ugly
casts when it inevitably ends up not working at some point.

Greetings,

Andres Freund