On Sun, Apr 2, 2023 at 3:30 PM Andres Freund <and...@anarazel.de> wrote: > > Actually, I suppose that isn't quite true, since you'd still need to > > find a way to pass the heap relation down to nbtree VACUUM. Say by > > adding it to IndexVacuumInfo. > > It has been added to that already, so it should really be as trivial as you > suggested earlier...
Oh yeah, I missed it because you put it at the end of the struct, rather than at the start, next to the existing Relation. This page deletion issue matters a lot more after the Postgres 14 optimization added by commit e5d8a99903, which came after your GlobalVisCheckRemovableFullXid() snapshot scalability work (well, a few months after, at least). I really don't like the idea of something like that being much less effective due to logical decoding. Granted, the optimization in commit e5d8a99903 was itself kind of a hack, which should be replaced by a scheme that explicitly makes recycle safety the responsibility of the FSM itself, not the responsibility of VACUUM. -- Peter Geoghegan