On Wed, Feb 16, 2022 at 3:21 PM Peter Geoghegan <p...@bowt.ie> wrote: > On Wed, Feb 16, 2022 at 12:11 PM Robert Haas <robertmh...@gmail.com> wrote: > > No, I think it's PostgreSQL 13, because before the vacuum failsafe > > thing you could end up truncating enough tables during vacuum > > operations to actually wrap around. > > Why wouldn't the xidStopLimit thing prevent actual incorrect answers > to queries, even on Postgres 13? Why wouldn't that be enough, even if > we make the most pessimistic possible assumptions? > > To me it looks like it's physically impossible to advance an XID past > xidStopLimit, unless you're in single user mode. Does your concern > have something to do with the actual xidStopLimit value in shared > memory not being sufficiently protective in practice?
No, what I'm saying is that people running older versions routinely run VACUUM in single-user mode because otherwise it fails due to the truncation issue. But once they go into single-user mode they lose protection. > > And even in 14+, you can still do that, if you use single user mode. > > So what you're saying is that there is *some* reason for vacuuming in > single user mode after all, and so we should keep the advice about > that in place? :-) We could perhaps amend the text slightly, e.g. "This is a great idea if you like pain." -- Robert Haas EDB: http://www.enterprisedb.com