On Wed, Apr 08, 2026 at 02:53:20PM -0400, Tom Lane wrote:
> Oh. I'm not happy that any part of autovacuum.c is now reachable from
> SQL: that's the sort of modularity violation that will bite us on the
> ass (indeed just did). Aside from this problem, the elog's that
> relation_needs_vacanalyze emits seem 100% inappropriate and misleading
> when it's being called from the view.
FWIW that elog() shouldn't be emitting anything from the view, unless
something is broken.
> I think perhaps the right way forward is to rethink the API
> guarantees for pgstat_fetch_stat_tabentry_ext, as I speculated
> about in 02502c1bc:
>
> [...]
>
> 2. Add a "bool *should_free" parameter, like we have in tuplestores
> and some other places. It's on the caller to pfree if should_free
> gets set, but since we'd have to touch every caller, we'd not miss
> any.
This sounds most similar to the "bool *may_free" idea that Andres just
posted. IIUC the idea is that callers can free the result if they want,
but they aren't required to do so.
--
nathan