On Wed, Apr 12, 2023 at 4:23 PM Greg Stark <stark@mit.edu> wrote:
> I'm trying to wrap my head around GetOldestNonRemovableTransactionId()
> and whether it's the right thing here. This comment is not helping me:
>
> /*
> * Return the oldest XID for which deleted tuples must be preserved in the
> * passed table.
> *
> * If rel is not NULL the horizon may be considerably more recent than
> * otherwise (i.e. fewer tuples will be removable). In the NULL case a horizon
> * that is correct (but not optimal) for all relations will be returned.
> *
> * This is used by VACUUM to decide which deleted tuples must be preserved in
> * the passed in table.
> */
>
>
> Am I crazy or is the parenthetical comment there exactly backwards? If
> the horizon is *more recent* then fewer tuples are *non*-removable.
> I.e. *more* tuples are removable, no?
Isn't it the non-parenthetical part that's wrong? I would expect that
if we don't know which relation it is, the horizon might be
considerably LESS recent, which would result in fewer tuples being
removable.
--
Robert Haas
EDB: http://www.enterprisedb.com